postgis/postgis
2012-12-05 18:50:42 +00:00
..
DEBUG Change the name of the main source directory. This is going to break the build for a little while until I fix all the references, but I want to do it atomically to ensure version history is preserved. 2009-02-11 18:22:32 +00:00
geography.h Stop relying on private projects.h PROJ header (#1541) 2012-02-08 18:51:32 +00:00
geography.sql.in.c #945, expose and add selectivity to the 3d/4d index (&&&) bindings 2012-12-04 19:54:29 +00:00
geography_btree.c Move floating points comparator macros from liblwgeom.h to liblwgeom_internal.h (not prefixed symbols) [RT-SIGTA] 2011-08-09 14:19:12 +00:00
geography_estimate.c #1828, geography stats are really sensitive to narrow dimensionality issues, 2012-11-23 06:13:40 +00:00
geography_inout.c #799, make geographic coordinates in range 2012-11-14 20:45:16 +00:00
geography_measurement.c (#2026) fix performance regression in geography distance calculation 2012-10-23 22:17:12 +00:00
geography_measurement_trees.c Error in ST_Intersects: lwgeom_covers_lwgeom_sphere: only POLYGON and POINT types are currently supported (#1949) 2012-08-17 19:15:57 +00:00
geography_measurement_trees.h Complete geography performance work (#1796), move testing functions into _ST_* name space for privacy, add regression tests for issues encountered during development. 2012-07-11 18:15:50 +00:00
geometry_estimate.c Of course we're going to do real joinsel... 2012-11-21 23:26:44 +00:00
geometry_inout.c Add casts from geometry::path, geometry::point, geometry::polygon, polygon::geometry, path::geometry, point::geometry to allow easier migration to PostGIS for folks who start with the Pg types. 2012-09-28 17:03:46 +00:00
gserialized_estimate.c #2132, _postgis_stats crashes backend on missing stats 2012-12-05 18:50:42 +00:00
gserialized_gist_2d.c #2035, Strange behavior when using left (<<) and right (>>) operators 2012-11-14 23:01:32 +00:00
gserialized_gist_nd.c Remove code in #ifdefs for PgSQL 8.4 and under, per #1880 2012-09-13 20:11:16 +00:00
gserialized_typmod.c Fix comment per rcoup 2012-10-09 22:04:57 +00:00
legacy.sql.in.c Fix ST_AsGML prototype in legacy. Related to #1823 2012-05-23 21:41:26 +00:00
legacy_gist.sql.in #1287: legacy script to reinstall old PostGIS gist op. Added to FAQ when you need to use it and stress to try not to use it and reindex if you do. 2012-11-20 09:49:30 +00:00
legacy_minimal.sql.in.c #1869 take care of ST_AsBinary(unknown/text), ST_AsText(unknown/text) is not unique errors 2012-11-25 22:36:15 +00:00
long_xact.c #1820 part fix 9.2 language is case sensitive if quoted -- change 'C' and 'SQL' to 'c' and 'sql' 2012-05-16 08:29:14 +00:00
long_xact.sql.in.c #1820 part fix 9.2 language is case sensitive if quoted -- change 'C' and 'SQL' to 'c' and 'sql' 2012-05-16 08:29:14 +00:00
lwgeom_accum.c Remove code in #ifdefs for PgSQL 8.4 and under, per #1880 2012-09-13 20:11:16 +00:00
lwgeom_box.c Drop postgis_config.h include from lwgeom_pg.h header. 2012-02-09 17:00:23 +00:00
lwgeom_box3d.c Add an SRID to box3d to allow lossless casts. 2012-03-02 23:35:32 +00:00
lwgeom_btree.c Drop postgis_config.h include from lwgeom_pg.h header. 2012-02-09 17:00:23 +00:00
lwgeom_dump.c Drop postgis_config.h include from lwgeom_pg.h header. 2012-02-09 17:00:23 +00:00
lwgeom_dumppoints.c Remove many warnings from -pedantic build, and clean up parser globals a little more thoroughly. 2012-11-09 00:09:35 +00:00
lwgeom_export.c Get OUT_* export macros out of liblwgeom.h (#2053) 2012-10-17 13:38:49 +00:00
lwgeom_export.h Add ST_GeomFromGeoJSON (#376) 2011-11-18 00:17:56 +00:00
lwgeom_functions_analytic.c Ensure ST_Line_Interpolate_Point always returns POINT (#2108) 2012-11-29 18:30:48 +00:00
lwgeom_functions_analytic.h merged fix from r7136 in 1.5 branch, fixes broken point_in_multipolygon_rtree, for #884 2011-05-12 18:51:57 +00:00
lwgeom_functions_basic.c Move some ptarray functions out of postgis and back into liblwgeom from silly old function that shouldn't even exist anymore (LWGEOM_inside_circle_point) 2012-09-28 20:30:26 +00:00
lwgeom_functions_lrs.c Drop postgis_config.h include from lwgeom_pg.h header. 2012-02-09 17:00:23 +00:00
lwgeom_geos.c Ensure ST_PointOnSurface always returns POINT (#2117) 2012-11-29 18:13:47 +00:00
lwgeom_geos.h Update the caching infrastructure to allow for arbitrary new caching systems to be combined into one fn_extra pointer slot. Clean up the 1-d r-tree code a little bit. Make the cache handling code for geometry caching generic so it can be re-used across different internal indexing approaches 2012-06-15 23:11:03 +00:00
lwgeom_geos_clean.c Really accept collections and multipoints from ST_MakeValid (#1719) 2012-06-12 09:30:34 +00:00
lwgeom_geos_prepared.c Remove dead code, add commentary on caching system. 2012-06-18 17:44:33 +00:00
lwgeom_geos_prepared.h Remove dead code, add commentary on caching system. 2012-06-18 17:44:33 +00:00
lwgeom_geos_relatematch.c More postgis_config.h inclusion removal from headers 2012-02-09 17:16:29 +00:00
lwgeom_in_geojson.c Fix memory error in MultiPolygon GeoJson parsing (#2130) 2012-12-03 16:19:04 +00:00
lwgeom_in_gml.c Fix #2092 for trunk branch 2012-11-29 22:33:21 +00:00
lwgeom_in_kml.c Fix #2092 for trunk branch 2012-11-29 22:33:21 +00:00
lwgeom_inout.c Simplify ST_AsLatLonText code and possily fix #1657 2012-03-14 13:13:23 +00:00
lwgeom_ogc.c Update the caching infrastructure to allow for arbitrary new caching systems to be combined into one fn_extra pointer slot. Clean up the 1-d r-tree code a little bit. Make the cache handling code for geometry caching generic so it can be re-used across different internal indexing approaches 2012-06-15 23:11:03 +00:00
lwgeom_rtree.c Remove dead code, add commentary on caching system. 2012-06-18 17:44:33 +00:00
lwgeom_rtree.h Update caching code to be more generic, using call-backs to allocate/build/free specific cache structures. 2012-06-18 17:12:22 +00:00
lwgeom_spheroid.c Drop postgis_config.h include from lwgeom_pg.h header. 2012-02-09 17:00:23 +00:00
lwgeom_sqlmm.c #2001, ST_CurveToLine has no effect if the geometry doesn't actually contain an arc 2012-11-14 21:25:52 +00:00
lwgeom_transform.c Do not take PROJ4 errno value as a sign of error (#1580, #1690) 2012-03-16 11:58:49 +00:00
lwgeom_triggers.c #1820 part fix 9.2 language is case sensitive if quoted -- change 'C' and 'SQL' to 'c' and 'sql' 2012-05-16 08:29:14 +00:00
Makefile.in #945, expose and add selectivity to the 3d/4d index (&&&) bindings 2012-12-04 19:54:29 +00:00
Makefile.pgxs Add missing MODULE_big section for #311 which was preventing the main PostGIS library from being installed on older versions of PostgreSQL. 2010-01-12 10:33:49 +00:00
postgis.sql.in.c #945, expose and add selectivity to the 3d/4d index (&&&) bindings 2012-12-04 19:54:29 +00:00
postgis_drop_after.sql Drop postgis_uses_stats (#1632) 2012-03-01 08:54:38 +00:00
postgis_drop_before.sql Rename drop files to be hopefully clearer, add copyright headers 2012-03-01 08:26:34 +00:00
postgis_module.c Fix call to GEOS_interruptRegisterCallback (win32) 2012-06-12 13:11:03 +00:00
README Change the name of the main source directory. This is going to break the build for a little while until I fix all the references, but I want to do it atomically to ensure version history is preserved. 2009-02-11 18:22:32 +00:00
sqldefines.h.in Use more compatible '#define' syntax 2012-04-12 14:09:10 +00:00
TODO Drop extraneous task (if it referred to loader we do have a switch for index creation now) 2010-03-12 15:25:33 +00:00
uninstall_geography.sql.in.c Drop operator families, not classes (#543) 2011-12-22 11:20:10 +00:00
uninstall_legacy.sql.in.c Set appropriate mime types and text file types on all files. (#1605) 2012-02-27 20:58:36 +00:00
uninstall_long_xact.sql.in.c Merge Paul's geodetic (geography) branch into trunk, as per discussions on postgis-devel. Most of the merge was automatic (albeit quite slow), with a few manual touch-ups where the merge algorithm couldn't handle this automatically. "make check" runs and passes, so I hope I haven't managed to break too much ;) 2009-09-14 10:54:33 +00:00
uninstall_sqlmm.sql.in.c Stub in ST_LocateAlong and ST_LocateBetween for implementation before 2.0 2011-12-30 13:23:23 +00:00

Welcome to the Initial version of LWGEOM.

More information is available on the PostGIS user's mailing list and 
the PostGIS developer's mailing list.  

Differences
-----------

The LWGEOM is very much like the original PostGIS GEOMETRY type.  The 
main differences are:

a) LWGEOMs are much smaller than the PostGIS GEOMETRY
b) LWGEOMs natively support 2d, 3d, and 4d points
c) LWGEOMs are indexed using single-precision bounding boxes.  This
   make the indexes significantly smaller than PostGIS GEOMETRY
   indexes.
d) LWGEOMs are internally very similar to OGC WKB   
e) The "normal" view of LWGEOMs is OGC WKB - PostGIS GEOMETRY is OGC WKT
f) PostGIS geometries have a built-in BOX3D.  LWGEOMs have an *optional*
   BOX2D (see below).


Also included with the LWGEOMs is a type called 'box2d'.  This is
very similar to PostGIS BOX3D type:

a) BOX2Ds are 2D - BOX3D is 3D
b) BOX2Ds are represented by single-precision floating point numbers,
   while BOX3Ds are double-precision floating point numbers.
c) BOX2Ds will sometimes be slightly larger than you might expect.
   This is because the conversion from double-precision to 
   single-precision is inexact.  When this happens, the BOX2D will
   automatically expand itself.
   

Bounding Boxes
--------------

<this section for advanced users.  Ignore it if you don't understand
 what its saying.>

Bounding boxes are optional in LWGEOMs.  By not having one, you are
saving a small amount of space per LWGEOM geometry (16 bytes).

Bounding boxes are attached to any non-POINT geometry by default.

You can disable this automatic addition setting AUTOCACHE_BBOX to 0
in the top-builddir Makefile.config and read BBOXCACHE_BEHAVIOURS
for function-by-function behaviour explanation.

Manual control of bbox cache is available using DropBBOX() and AddBBOX().

UPDATE <table> SET <geomcol> = DropBBOX(<geomcol>);
UPDATE <table> SET <geomcol> = AddBBOX(<geomcol>);

Note that if you don't cache a BBOX spatial operators will be much slower,
as they'll need to compute all the boxes at every invokation.
If you use GiST indexes you will still note a slow down as a RECHECK
clause is specified for GiST operators. Also, GiST index updating
will be slower w/out a BBOX cache.


Space Saving
------------

LWGEOM indexes are approximately 40% smaller than PostGIS indexes.

A LWGEOM 'POINT(0 0)' takes up 21 bytes, a POSTGIS 'POINT(0 0)' takes
up 140 bytes.  This shows that LWGEOMs have a much smaller overhead.

LWGEOMs will store 2D points as 2 double precision numbers (16 bytes) -
PostGIS will store 2D points with 3 numbers (24 bytes).   This can be 
another big savings.