postgis/postgis
2011-07-04 15:34:50 +00:00
..
.cvsignore 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
BBOXCACHE_BEHAVIOURS 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
compat.h 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
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 Partial typmod support for PostGIS geometry (#944) 2011-06-16 21:01:53 +00:00
geography.sql.in.c Change ST_Length, ST_Perimeter for geography to use default parameters, document ST_Perimeter(geography,use_spheroid) 2011-06-18 03:41:35 +00:00
geography_btree.c Replace variable-length-key 2D index with fixed-length-key for GSERIALIZED case. 2011-03-17 13:44:27 +00:00
geography_estimate.c Clean out scruft from my G_ phase and start attempting to separate _internal from external liblwgeom functions. 2010-10-31 02:31:34 +00:00
geography_inout.c Partial typmod support for PostGIS geometry (#944) 2011-06-16 21:01:53 +00:00
geography_measurement.c Define alias ST_Perimeter (for geography ST_Length) (#526) 2011-06-17 21:11:05 +00:00
geometry_gist_selectivity.c Fix up selectivity and operators a little 2011-06-15 23:59:40 +00:00
geometry_inout.c Partial typmod support for PostGIS geometry (#944) 2011-06-16 21:01:53 +00:00
gserialized.h Move from GSERIALIZED off by default to on by default. Adjust minor regression changes as necessary. 2011-06-13 21:31:49 +00:00
gserialized_gist.c Replace variable-length-key 2D index with fixed-length-key for GSERIALIZED case. 2011-03-17 13:44:27 +00:00
gserialized_gist.h Replace variable-length-key 2D index with fixed-length-key for GSERIALIZED case. 2011-03-17 13:44:27 +00:00
gserialized_gist_2d.c Fix mis-named debugging global 2011-03-17 19:27:39 +00:00
gserialized_gist_nd.c Fix typo in gserialized_overlaps (contains->overlaps). Fixes ticket #869. 2011-04-06 14:30:58 +00:00
gserialized_typmod.c Error message change 2011-06-18 18:24:36 +00:00
legacy.sql.in.c #944, #1081, #1083, #1088, #1084: Convert geometry_columns to a view, revise management functions to not update/delete from geometry_columns and to support typmod. Will use typmod behavior as default 2011-07-02 08:58:38 +00:00
legacy_chip.sql.in.c #914 separate chip legacy functions from rest of legacy functions (regular legacy will be converted to legacy.sql, but chip won't for now) 2011-04-19 16:51:29 +00:00
long_xact.c astyle --style=ansi --indent=tab (#133) 2009-06-11 16:44:03 +00:00
long_xact.sql.in.c replace _VOLATILE_STRICT with VOLATILE STRICT 2009-06-12 15:30:40 +00:00
lwgeom_accum.c apply astyle 2011-05-13 08:46:04 +00:00
lwgeom_box.c Alter the in-built casts between the internal PostgreSQL BOX type and the PostGIS geometry/BOX3D types so that they do not go through an intermediate BOX2DFLOAT4 first. This prevents the float4 rounding errors appearing in the numbers when invoking the casts. 2009-03-08 16:36:20 +00:00
lwgeom_box2dfloat4.c Add a couple more GBOX functions to map to B2DF4 requirements 2011-06-15 20:22:13 +00:00
lwgeom_box3d.c Fix up selectivity and operators a little 2011-06-15 23:59:40 +00:00
lwgeom_btree.c Add the &&& operator and index binding for 'gist_geometry_ops_nd'. Operator behavior in mixed-dimension query situations still to be determined. 2011-03-18 16:16:05 +00:00
lwgeom_chip.c Cut down reliance on TYPE_GETTYPE macro in favor of a function we can repoint later in the serialization change process 2010-12-08 20:54:45 +00:00
lwgeom_debug.c Don't interpret types as flags in ST_Summary. Fixes bug #1054 (needs automated testing) 2011-06-23 11:01:56 +00:00
lwgeom_dump.c ST_Dump with GSerialized POINT EMPTY and EWKT/AsText mismatch (#746) 2011-06-20 21:15:48 +00:00
lwgeom_estimate.c ST_Estimated_Extent: make exception message about lack of stats clearer 2011-02-01 13:53:48 +00:00
lwgeom_export.c Remove some compile warnings 2011-06-09 21:12:28 +00:00
lwgeom_export.h Change SRID to srid in LWGEOM struct (and also in CHIP too). Rename some functions related to SRID from Camel notation to lower case: errorIfSRIDMismatch, pglwgeom_getSRID, pglwgeom_setSRID, LWGEOM_getSRID, LWGEOM_setSRID, hasSRID. Related to #658 2010-11-25 17:34:21 +00:00
lwgeom_functions_analytic.c Prototype segmentation code and move lwalgorith.h prototypes into liblwgeom.h and liblwgeom_internal.h 2011-06-25 22:36:51 +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 Prototype segmentation code and move lwalgorith.h prototypes into liblwgeom.h and liblwgeom_internal.h 2011-06-25 22:36:51 +00:00
lwgeom_functions_lrs.c Add in #defines to allow conditional switch-over to GSERIALIZED 2010-12-15 21:31:54 +00:00
lwgeom_geos.c Fix unused variable warning when building against GEOS >= 3.3 2011-07-04 10:02:49 +00:00
lwgeom_geos.h Export geos error logger 2010-03-10 10:07:37 +00:00
lwgeom_geos_clean.c Re-orgs to push the geodetic/cartesian divide a little further under the covers as part of the geometry/geography group hug at the index bindings level. 2010-12-17 20:10:36 +00:00
lwgeom_geos_prepared.c Strip out more instances of SERIALIZED_FORM 2010-12-15 00:12:12 +00:00
lwgeom_geos_prepared.h Make GEOS 3.1 the mandatory minimum (#385) 2010-01-15 17:54:52 +00:00
lwgeom_geos_relatematch.c Don't release memory associated with arguments. Fixes #725. 2010-12-21 17:36:05 +00:00
lwgeom_geos_sharedpaths.c Remove more appeals to pglwgeom->type 2010-12-08 23:58:51 +00:00
lwgeom_geos_snap.c Remove more appeals to pglwgeom->type 2010-12-08 23:58:51 +00:00
lwgeom_geos_split.c Prototype segmentation code and move lwalgorith.h prototypes into liblwgeom.h and liblwgeom_internal.h 2011-06-25 22:36:51 +00:00
lwgeom_gist.c Add a couple more GBOX functions to map to B2DF4 requirements 2011-06-15 20:22:13 +00:00
lwgeom_in_gml.c Fix #933. Update related unit test. Add a convenient way to trace error in ST_GeomFromGML function 2011-04-30 08:29:09 +00:00
lwgeom_in_kml.c Remove some calls to memcpy in favor of API functions. 2010-12-15 00:24:34 +00:00
lwgeom_inout.c Arg, there's regression breaks in the last commit! 2010-12-20 19:31:28 +00:00
lwgeom_ogc.c ST_ExteriorRing POLYGON EMPTY crash (#708) 2010-12-29 18:51:56 +00:00
lwgeom_pg.c Have pglwgeom_getbox2d_p compute a bounding box when not cached. Fixes #1023. 2011-07-04 15:34:50 +00:00
lwgeom_pg.h Document pglwgeom_getbox2d_p. See http://trac.osgeo.org/postgis/ticket/1023 2011-07-04 15:12:44 +00:00
lwgeom_rtree.c additional bug fix for #844 2011-05-13 01:04:34 +00:00
lwgeom_rtree.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_spheroid.c Quiet some debug-level warnings. 2011-03-17 19:30:53 +00:00
lwgeom_sqlmm.c Clean out some more calls to SERIALIZED_FORM 2010-12-10 22:45:39 +00:00
lwgeom_transform.c Arg, there's regression breaks in the last commit! 2010-12-20 19:31:28 +00:00
lwgeom_transform.h Change SRID to srid in LWGEOM struct (and also in CHIP too). Rename some functions related to SRID from Camel notation to lower case: errorIfSRIDMismatch, pglwgeom_getSRID, pglwgeom_setSRID, LWGEOM_getSRID, LWGEOM_setSRID, hasSRID. Related to #658 2010-11-25 17:34:21 +00:00
lwgeom_triggers.c astyle --style=ansi --indent=tab (#133) 2009-06-11 16:44:03 +00:00
Makefile.in Make all PostGIS object files depend upon liblwgeom, so that if liblwgeom is 2011-07-04 09:26:10 +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
MISSING_OBJECTS 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
pgsql_compat.h 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
postgis.sql.in.c Fix support for MULTICURVEZM and make TIN spelling conformant to other (MixedCase). Add cohomprensive regress test for postgis_type_name(). Closes bug #1096 once again. 2011-07-04 11:24:46 +00:00
postgis_drop.sql.in.c #944, #1081, #1083, #1088, #1084: Convert geometry_columns to a view, revise management functions to not update/delete from geometry_columns and to support typmod. Will use typmod behavior as default 2011-07-02 08:58:38 +00:00
profile.h 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
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
SERIALIZED_FORM Change CompoundString to CompoundCurve 2011-06-27 19:24:00 +00:00
sqldefines.h.in Add gserialized.h. Later this can be the central place for index/object utilities, for now it just holds the switch to turn the gserialized code on and off while we develop 2010-12-18 05:06:52 +00:00
sqlmm.sql.in.c #774: regress fails - Oops forgot to commit this file on last commit 2011-01-16 09:10:45 +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 Updated SQL files for uninstallation to match current state. 2009-11-30 19:56:27 +00:00
uninstall_legacy.sql.in.c #944, #1081, #1083, #1088, #1084: Convert geometry_columns to a view, revise management functions to not update/delete from geometry_columns and to support typmod. Will use typmod behavior as default 2011-07-02 08:58:38 +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_postgis.sql.in.c Renaming of 3D functions, #817 2011-03-27 17:50:58 +00:00
uninstall_sqlmm.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

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.