</sect1>
<sect1>
- <title>Other Functions</title>
+ <title>Postgis Extensions</title>
+
+ <sect2>
+ <title>Management Functions</title>
+ <variablelist>
+ <varlistentry>
+ <term>DropGeometryTable([<schema_name>],
+ <table_name>)</term>
+
+ <listitem>
+ <para>Drops a table and all its references in geometry_columns.
+ Note: uses current_schema() on schema-aware pgsql installations if
+ schema is not provided.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>update_geometry_stats([<table_name>,
+ <column_name>])</term>
+
+ <listitem>
+ <para>Update statistics about spatial tables for use by the query
+ planner. You will also need to run "VACUUM ANALYZE [table_name]
+ [column_name]" for the statistics gathering process to be
+ complete. NOTE: starting with PostgreSQL 8.0 statistics gathering
+ is automatically performed running "VACUUM ANALYZE".</para>
+ </listitem>
+ </varlistentry>
- <variablelist>
<varlistentry>
- <term>DropGeometryTable([<schema_name>],
- <table_name>)</term>
+ <term>postgis_version()</term>
<listitem>
- <para>Drops a table and all its references in geometry_columns.
- Note: uses current_schema() on schema-aware pgsql installations if
- schema is not provided.</para>
+ <para>Returns the version number of the PostGIS functions
+ installed in this database (deprecated, use postgis_full_version()
+ instead).</para>
</listitem>
</varlistentry>
<varlistentry>
- <term>update_geometry_stats([<table_name>,
- <column_name>])</term>
+ <term>postgis_lib_version()</term>
<listitem>
- <para>Update statistics about spatial tables for use by the query
- planner. You will also need to run "VACUUM ANALYZE [table_name]
- [column_name]" for the statistics gathering process to be
- complete. NOTE: starting with PostgreSQL 8.0 statistics gathering
- is automatically performed running "VACUUM ANALYZE".</para>
+ <para>Returns the version number of the PostGIS library.</para>
</listitem>
</varlistentry>
<varlistentry>
- <term>A &< B</term>
+ <term>postgis_scripts_installed()</term>
<listitem>
- <para>The "&<" operator returns true if A's bounding box
- overlaps or is to the left of B's bounding box.</para>
+ <para>Returns the version number of the postgis.sql script
+ installed in this database.</para>
</listitem>
</varlistentry>
<varlistentry>
- <term>A &> B</term>
+ <term>postgis_scripts_released()</term>
<listitem>
- <para>The "&>" operator returns true if A's bounding box
- overlaps or is to the right of B's bounding box.</para>
+ <para>Returns the version number of the postgis.sql script
+ released with the installed postgis lib.</para>
</listitem>
</varlistentry>
<varlistentry>
- <term>A << B</term>
+ <term>postgis_geos_version()</term>
<listitem>
- <para>The "<<" operator returns true if A's bounding box is
- strictly to the left of B's bounding box.</para>
+ <para>Returns the version number of the GEOS library, or NULL if
+ GEOS support is not enabled.</para>
</listitem>
</varlistentry>
<varlistentry>
- <term>A >> B</term>
+ <term>postgis_proj_version()</term>
<listitem>
- <para>The ">>" operator returns true if A's bounding box is
- strictly to the right of B's bounding box.</para>
+ <para>Returns the version number of the PROJ4 library, or NULL if
+ PROJ4 support is not enabled.</para>
</listitem>
</varlistentry>
<varlistentry>
- <term>A ~= B</term>
+ <term>postgis_uses_stats()</term>
<listitem>
- <para>The "~=" operator is the "same as" operator. It tests actual
- geometric equality of two features. So if A and B are the same
- feature, vertex-by-vertex, the operator returns true.</para>
+ <para>Returns true if STATS usage has been enabled, false
+ otherwise.</para>
</listitem>
</varlistentry>
<varlistentry>
- <term>A @ B</term>
+ <term>postgis_full_version()</term>
<listitem>
- <para>The "@" operator returns true if A's bounding box is
- completely contained by B's bounding box.</para>
+ <para>Reports full postgis version and build configuration
+ infos.</para>
</listitem>
</varlistentry>
- <varlistentry>
- <term>A ~ B</term>
+ </variablelist>
- <listitem>
- <para>The "~" operator returns true if A's bounding box completely
- contains B's bounding box.</para>
- </listitem>
- </varlistentry>
+ </sect2>
- <varlistentry>
- <term>A && B</term>
+ <sect2>
+ <title>Operators</title>
+ <variablelist>
- <listitem>
- <para>The "&&" operator is the "overlaps" operator. If A's
- bounding boux overlaps B's bounding box the operator returns
- true.</para>
- </listitem>
- </varlistentry>
+ <varlistentry>
+ <term>A &< B</term>
- <varlistentry>
- <term>area2d(geometry)</term>
+ <listitem>
+ <para>The "&<" operator returns true if A's bounding box
+ overlaps or is to the left of B's bounding box.</para>
+ </listitem>
+ </varlistentry>
- <listitem>
- <para>Returns the area of the geometry if it is a polygon or
- multi-polygon.</para>
- </listitem>
- </varlistentry>
+ <varlistentry>
+ <term>A &> B</term>
- <varlistentry>
- <term>asbinary(geometry,'NDR')</term>
+ <listitem>
+ <para>The "&>" operator returns true if A's bounding box
+ overlaps or is to the right of B's bounding box.</para>
+ </listitem>
+ </varlistentry>
- <listitem>
- <para>Returns the geometry in the OGC "well-known-binary" format,
- using little-endian encoding. This is useful in binary cursors to
- pull data out of the database without converting it to a string
- representation.</para>
- </listitem>
- </varlistentry>
+ <varlistentry>
+ <term>A << B</term>
- <varlistentry>
- <term>isvalid(geometry)</term>
+ <listitem>
+ <para>The "<<" operator returns true if A's bounding box is
+ strictly to the left of B's bounding box.</para>
+ </listitem>
+ </varlistentry>
- <listitem>
- <para>returns true if this geometry is valid.</para>
- </listitem>
- </varlistentry>
+ <varlistentry>
+ <term>A >> B</term>
- <varlistentry>
- <term>asbinary(geometry,'XDR')</term>
+ <listitem>
+ <para>The ">>" operator returns true if A's bounding box is
+ strictly to the right of B's bounding box.</para>
+ </listitem>
+ </varlistentry>
- <listitem>
- <para>Returns the geometry in the OGC "well-known-binary" format,
- using big-endian encoding. This is useful in binary cursors to
- pull data out of the database without converting it to a string
- representation.</para>
- </listitem>
- </varlistentry>
+ <varlistentry>
+ <term>A ~= B</term>
- <varlistentry>
- <term>box3d(geometry)</term>
+ <listitem>
+ <para>The "~=" operator is the "same as" operator. It tests actual
+ geometric equality of two features. So if A and B are the same
+ feature, vertex-by-vertex, the operator returns true.</para>
+ </listitem>
+ </varlistentry>
- <listitem>
- <para>Returns a BOX3D representing the maximum extents of the
- geometry.</para>
- </listitem>
- </varlistentry>
+ <varlistentry>
+ <term>A @ B</term>
- <varlistentry>
- <term>expand(geometry, float)</term>
+ <listitem>
+ <para>The "@" operator returns true if A's bounding box is
+ completely contained by B's bounding box.</para>
+ </listitem>
+ </varlistentry>
- <listitem>
- <para>This function returns a bounding box expanded in all
- directions from the bounding box of the input geometry, by an
- amount specified in the second argument. Very useful for
- distance() queries, to add an index filter to the query.</para>
- </listitem>
- </varlistentry>
+ <varlistentry>
+ <term>A ~ B</term>
- <varlistentry>
- <term>collect(geometry set)</term>
+ <listitem>
+ <para>The "~" operator returns true if A's bounding box completely
+ contains B's bounding box.</para>
+ </listitem>
+ </varlistentry>
- <listitem>
- <para>This function returns a GEOMETRYCOLLECTION object from a set
- of geometries. The collect() function is an "aggregate" function
- in the terminology of PostgreSQL. That means that it operators on
- lists of data, in the same way the sum() and mean() functions do.
- For example, "SELECT COLLECT(GEOM) FROM GEOMTABLE GROUP BY
- ATTRCOLUMN" will return a separate GEOMETRYCOLLECTION for each
- distinct value of ATTRCOLUMN.</para>
- </listitem>
- </varlistentry>
+ <varlistentry>
+ <term>A && B</term>
- <varlistentry>
- <term>memcollect(geometry set)</term>
+ <listitem>
+ <para>The "&&" operator is the "overlaps" operator. If A's
+ bounding boux overlaps B's bounding box the operator returns
+ true.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </sect2>
- <listitem>
- <para>This does the the same of collect(geometry), only more
- memory-friendly (uses less memory and more processor time).</para>
- </listitem>
- </varlistentry>
+ <sect2>
+ <title>Misurement functions</title>
+ <variablelist>
+
+ <varlistentry>
+ <term>area2d(geometry)</term>
+
+ <listitem>
+ <para>Returns the area of the geometry if it is a polygon or
+ multi-polygon.</para>
+ </listitem>
+ </varlistentry>
<varlistentry>
<term>distance_sphere(point, point)</term>
</listitem>
</varlistentry>
- <varlistentry>
- <term>extent(geometry set)</term>
-
- <listitem>
- <para>The extent() function is an "aggregate" function in the
- terminology of PostgreSQL. That means that it operators on lists
- of data, in the same way the sum() and mean() functions do. For
- example, "SELECT EXTENT(GEOM) FROM GEOMTABLE" will return a BOX3D
- giving the maximum extend of all features in the table. Similarly,
- "SELECT EXTENT(GEOM) FROM GEOMTABLE GROUP BY CATEGORY" will return
- one extent result for each category.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>find_srid(varchar,varchar,varchar)</term>
-
- <listitem>
- <para>The syntax is find_srid(<db/schema>, <table>,
- <column>) and the function returns the integer SRID of the
- specified column by searching through the GEOMETRY_COLUMNS table.
- If the geometry column has not been properly added with the
- AddGeometryColumns() function, this function will not work
- either.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>force_collection(geometry)</term>
-
- <listitem>
- <para>Converts the geometry into a GEOMETRYCOLLECTION. This is
- useful for simplifying the WKB representation.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry id="force_2d">
- <term>force_2d(geometry)</term>
-
- <listitem>
- <para>Forces the geometries into a "2-dimensional mode" so that
- all output representations will only have the X and Y coordinates.
- This is useful for force OGC-compliant output (since OGC only
- specifies 2-D geometries).</para>
- </listitem>
- </varlistentry>
-
- <varlistentry id="force_3dz">
- <term>force_3dz(geometry)</term>
- <term>force_3d(geometry)</term>
-
- <listitem>
- <para>Forces the geometries into XYZ mode.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry id="force_3dm">
- <term>force_3dm(geometry)</term>
-
- <listitem>
- <para>Forces the geometries into XYM mode.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry id="force_4d">
- <term>force_4d(geometry)</term>
-
- <listitem>
- <para>Forces the geometries into XYZM mode.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry id="zmflag">
- <term>zmflag(geometry)</term>
-
- <listitem>
- <para>Returns ZM (dimension semantic) flag of the geometries as
- a small int. Values are: 0=2d, 1=3dm, 2=3dz, 3=4d.
- </para>
- </listitem>
- </varlistentry>
-
-
<varlistentry>
<term>length2d(geometry)</term>
</listitem>
</varlistentry>
+ <varlistentry>
+ <term>distance(geometry, geometry)</term>
+
+ <listitem>
+ <para>Returns the smaller distance between two geometries.</para>
+ </listitem>
+ </varlistentry>
+
<varlistentry>
<term>max_distance(linestring,linestring)</term>
</varlistentry>
<varlistentry>
- <term>mem_size(geometry)</term>
+ <term>perimeter(geometry)</term>
<listitem>
- <para>Returns the amount of space (in bytes) the geometry
- takes.</para>
+ <para>Returns the 2-dimensional perimeter of the geometry, if it
+ is a polygon or multi-polygon.</para>
</listitem>
</varlistentry>
<varlistentry>
- <term>multi(geometry)</term>
+ <term>perimeter2d(geometry)</term>
<listitem>
- <para>Returns the geometry as a MULTI* geometry. If the geometry
- is already a MULTI*, it is returned unchanged.</para>
+ <para>Returns the 2-dimensional perimeter of the geometry, if it
+ is a polygon or multi-polygon.</para>
</listitem>
</varlistentry>
<varlistentry>
- <term>nrings(geometry)</term>
+ <term>perimeter3d(geometry)</term>
<listitem>
- <para>If the geometry is a polygon or multi-polygon returns the
- number of rings.</para>
+ <para>Returns the 3-dimensional perimeter of the geometry, if it
+ is a polygon or multi-polygon.</para>
</listitem>
</varlistentry>
+
+ </variablelist>
+
+ </sect2>
+
+ <sect2>
+ <title>Geometry Constructors</title>
+ <variablelist>
+ <varlistentry>
+ <term>MakePoint(<x>, <y>, [<z>], [<m>])</term>
+
+ <listitem>
+ <para>Creates a 2d,3dz or 4d point geometry.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>MakePointM(<x>, <y>, <m>)</term>
+
+ <listitem>
+ <para>Creates a 3dm point geometry.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>MakeLine(geometry set)</term>
+
+ <listitem>
+ <para>Creates a Linestring from a set of point geometries.
+ You might want to use a subselect to order points before
+ feeding them to this aggregate.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>MakePoly(geometry set)</term>
+
+ <listitem>
+ <para>Aggregate. Creates a MultiPolygon from the costituent
+ linework of a set of geometries. Only available when compiled
+ agains GEOS >= 2.1.0.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>LineFromMultiPoint(multipoint)</term>
+
+ <listitem>
+ <para>Creates a LineString from a MultiPoint geometry.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </sect2>
+
+ <sect2>
+ <title>Misc</title>
+ <variablelist>
+
+ <varlistentry>
+ <term>asbinary(geometry,'NDR')</term>
+
+ <listitem>
+ <para>Returns the geometry in the OGC "well-known-binary" format,
+ using little-endian encoding. This is useful in binary cursors to
+ pull data out of the database without converting it to a string
+ representation.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>asbinary(geometry,'XDR')</term>
+
+ <listitem>
+ <para>Returns the geometry in the OGC "well-known-binary" format,
+ using big-endian encoding. This is useful in binary cursors to
+ pull data out of the database without converting it to a string
+ representation.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>isvalid(geometry)</term>
+
+ <listitem>
+ <para>returns true if this geometry is valid.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>box3d(geometry)</term>
+
+ <listitem>
+ <para>Returns a BOX3D representing the maximum extents of the
+ geometry.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>expand(geometry, float)</term>
+
+ <listitem>
+ <para>This function returns a bounding box expanded in all
+ directions from the bounding box of the input geometry, by an
+ amount specified in the second argument. Very useful for
+ distance() queries, to add an index filter to the query.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>collect(geometry set)</term>
+
+ <listitem>
+ <para>This function returns a GEOMETRYCOLLECTION object from a set
+ of geometries. The collect() function is an "aggregate" function
+ in the terminology of PostgreSQL. That means that it operators on
+ lists of data, in the same way the sum() and mean() functions do.
+ For example, "SELECT COLLECT(GEOM) FROM GEOMTABLE GROUP BY
+ ATTRCOLUMN" will return a separate GEOMETRYCOLLECTION for each
+ distinct value of ATTRCOLUMN.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>memcollect(geometry set)</term>
+
+ <listitem>
+ <para>This does the the same of collect(geometry), only more
+ memory-friendly (uses less memory and more processor time).</para>
+ </listitem>
+ </varlistentry>
+
<varlistentry>
- <term>npoints(geometry)</term>
+ <term>extent(geometry set)</term>
<listitem>
- <para>Returns the number of points in the geometry.</para>
+ <para>The extent() function is an "aggregate" function in the
+ terminology of PostgreSQL. That means that it operators on lists
+ of data, in the same way the sum() and mean() functions do. For
+ example, "SELECT EXTENT(GEOM) FROM GEOMTABLE" will return a BOX3D
+ giving the maximum extend of all features in the table. Similarly,
+ "SELECT EXTENT(GEOM) FROM GEOMTABLE GROUP BY CATEGORY" will return
+ one extent result for each category.</para>
</listitem>
</varlistentry>
<varlistentry>
- <term>numb_sub_objects(geometry)</term>
+ <term>find_srid(varchar,varchar,varchar)</term>
<listitem>
- <para>Returns the number of objects stored in the geometry. This
- is useful for MULTI-geometries and GEOMETRYCOLLECTIONs.</para>
+ <para>The syntax is find_srid(<db/schema>, <table>,
+ <column>) and the function returns the integer SRID of the
+ specified column by searching through the GEOMETRY_COLUMNS table.
+ If the geometry column has not been properly added with the
+ AddGeometryColumns() function, this function will not work
+ either.</para>
</listitem>
</varlistentry>
<varlistentry>
- <term>perimeter(geometry)</term>
+ <term>force_collection(geometry)</term>
<listitem>
- <para>Returns the 2-dimensional perimeter of the geometry, if it
- is a polygon or multi-polygon.</para>
+ <para>Converts the geometry into a GEOMETRYCOLLECTION. This is
+ useful for simplifying the WKB representation.</para>
</listitem>
</varlistentry>
- <varlistentry>
- <term>perimeter2d(geometry)</term>
+ <varlistentry id="force_2d">
+ <term>force_2d(geometry)</term>
<listitem>
- <para>Returns the 2-dimensional perimeter of the geometry, if it
- is a polygon or multi-polygon.</para>
+ <para>Forces the geometries into a "2-dimensional mode" so that
+ all output representations will only have the X and Y coordinates.
+ This is useful for force OGC-compliant output (since OGC only
+ specifies 2-D geometries).</para>
</listitem>
</varlistentry>
- <varlistentry>
- <term>perimeter3d(geometry)</term>
+ <varlistentry id="force_3dz">
+ <term>force_3dz(geometry)</term>
+ <term>force_3d(geometry)</term>
<listitem>
- <para>Returns the 3-dimensional perimeter of the geometry, if it
- is a polygon or multi-polygon.</para>
+ <para>Forces the geometries into XYZ mode.</para>
</listitem>
</varlistentry>
- <varlistentry>
- <term>point_inside_circle(geometry,float,float,float)</term>
+ <varlistentry id="force_3dm">
+ <term>force_3dm(geometry)</term>
<listitem>
- <para>The syntax for this functions is
- point_inside_circle(<geometry>,<circle_center_x>,<circle_center_y>,<radius>).
- Returns the true if the geometry is a point and is inside the
- circle. Returns false otherwise.</para>
+ <para>Forces the geometries into XYM mode.</para>
</listitem>
</varlistentry>
- <varlistentry>
- <term>postgis_version()</term>
+ <varlistentry id="force_4d">
+ <term>force_4d(geometry)</term>
<listitem>
- <para>Returns the version number of the PostGIS functions
- installed in this database (deprecated, use postgis_full_version()
- instead).</para>
+ <para>Forces the geometries into XYZM mode.</para>
</listitem>
</varlistentry>
- <varlistentry>
- <term>postgis_lib_version()</term>
+ <varlistentry id="zmflag">
+ <term>zmflag(geometry)</term>
<listitem>
- <para>Returns the version number of the PostGIS library.</para>
+ <para>Returns ZM (dimension semantic) flag of the geometries as
+ a small int. Values are: 0=2d, 1=3dm, 2=3dz, 3=4d.
+ </para>
</listitem>
</varlistentry>
+
<varlistentry>
- <term>postgis_scripts_installed()</term>
+ <term>mem_size(geometry)</term>
<listitem>
- <para>Returns the version number of the postgis.sql script
- installed in this database.</para>
+ <para>Returns the amount of space (in bytes) the geometry
+ takes.</para>
</listitem>
</varlistentry>
<varlistentry>
- <term>postgis_scripts_released()</term>
+ <term>multi(geometry)</term>
<listitem>
- <para>Returns the version number of the postgis.sql script
- released with the installed postgis lib.</para>
+ <para>Returns the geometry as a MULTI* geometry. If the geometry
+ is already a MULTI*, it is returned unchanged.</para>
</listitem>
</varlistentry>
<varlistentry>
- <term>postgis_geos_version()</term>
+ <term>nrings(geometry)</term>
<listitem>
- <para>Returns the version number of the GEOS library, or NULL if
- GEOS support is not enabled.</para>
+ <para>If the geometry is a polygon or multi-polygon returns the
+ number of rings.</para>
</listitem>
</varlistentry>
<varlistentry>
- <term>postgis_proj_version()</term>
+ <term>npoints(geometry)</term>
<listitem>
- <para>Returns the version number of the PROJ4 library, or NULL if
- PROJ4 support is not enabled.</para>
+ <para>Returns the number of points in the geometry.</para>
</listitem>
</varlistentry>
<varlistentry>
- <term>postgis_uses_stats()</term>
+ <term>numb_sub_objects(geometry)</term>
<listitem>
- <para>Returns true if STATS usage has been enabled, false
- otherwise.</para>
+ <para>Returns the number of objects stored in the geometry. This
+ is useful for MULTI-geometries and GEOMETRYCOLLECTIONs.</para>
</listitem>
</varlistentry>
<varlistentry>
- <term>postgis_full_version()</term>
+ <term>point_inside_circle(geometry,float,float,float)</term>
<listitem>
- <para>Reports full postgis version and build configuration
- infos.</para>
+ <para>The syntax for this functions is
+ point_inside_circle(<geometry>,<circle_center_x>,<circle_center_y>,<radius>).
+ Returns the true if the geometry is a point and is inside the
+ circle. Returns false otherwise.</para>
</listitem>
</varlistentry>
</listitem>
</varlistentry>
- </variablelist>
+ </variablelist>
+ </sect2>
+
+
</sect1>
</chapter>
</book>