Chapter 7. PostGIS Reference
The functions given below are the ones which a user of PostGIS is
likely to need. There are other functions which are required support
functions to the PostGIS objects which are not of use to a general
user.
| |
---|
PostGIS has begun a transition from the existing naming convention
to an SQL-MM-centric convention. As a result, most of the functions that
you know and love have been renamed using the standard spatial type (ST)
prefix. Previous functions are still available, though are not listed in
this document where updated functions are equivalent. These will be
deprecated in a future release. |
7.1. Management Functions
7.2. Geometry Constructors
- ST_BdPolyFromText — Construct a Polygon given an arbitrary collection of closed
linestrings as a MultiLineString Well-Known text representation.
- ST_BdMPolyFromText — Construct a MultiPolygon given an arbitrary collection of
closed linestrings as a MultiLineString text
representation Well-Known text representation.
- ST_GeomCollFromText — Makes a collection Geometry from collection WKT with the given SRID. If SRID is
not give, it defaults to -1.
- ST_GeomFromEWKB — Return a specified ST_Geometry value from Extended Well-Known Binary representation (EWKB).
- ST_GeomFromEWKT — Return a specified ST_Geometry value from Extended Well-Known Text representation (EWKT).
- ST_GeometryFromText — Return a specified ST_Geometry value from Well-Known Text representation (WKT). This is an alias name for ST_GeomFromText
- ST_GeomFromText — Return a specified ST_Geometry value from Well-Known Text representation (WKT).
- ST_GeomFromWKB — Creates a geometry instance from a Well-Known Binary geometry
representation (WKB) and optional SRID.
- ST_LineFromMultiPoint — Creates a LineString from a MultiPoint geometry.
- ST_LineFromText — Makes a Geometry from WKT representation with the given SRID. If SRID is
not given, it defaults to -1.
- ST_LineFromWKB — Makes a
LINESTRING
from WKB with the given SRID - ST_LinestringFromWKB — Makes a geometry from WKB with the given SRID.
- ST_MakeBox2D — Creates a BOX2D defined by the given point
geometries.
- ST_MakeBox3D — Creates a BOX3D defined by the given 3d point
geometries.
- ST_MakeLine — Creates a Linestring from point geometries.
- ST_MakePolygon — Creates a Polygon formed by the given shell. Input
geometries must be closed LINESTRINGS.
- ST_MakePoint — Creates a 2D,3DZ or 4D point geometry.
- ST_MakePointM — Creates a point geometry with an x y and m coordinate.
- ST_MLineFromText — Return a specified ST_MultiLineString value from WKT representation.
- ST_MPointFromText — Makes a Geometry from WKT with the given SRID. If SRID is
not give, it defaults to -1.
- ST_MPolyFromText — Makes a MultiPolygon Geometry from WKT with the given SRID. If SRID is
not give, it defaults to -1.
- ST_Point — Returns an ST_Point with the given coordinate values. OGC alias for ST_MakePoint.
- ST_PointFromText — Makes a point Geometry from WKT with the given SRID. If SRID is
not given, it defaults to unknown.
- ST_PointFromWKB — Makes a geometry from WKB with the given SRID
- ST_Polygon — Returns a polygon built from the specified linestring and SRID.
- ST_PolygonFromText — Makes a Geometry from WKT with the given SRID. If SRID is
not give, it defaults to -1.
- ST_WKBToSQL — Return a specified ST_Geometry value from Well-Known Binary representation (WKB). This is an alias name for ST_GeomFromWKB that takes no srid
- ST_WKTToSQL — Return a specified ST_Geometry value from Well-Known Text representation (WKT). This is an alias name for ST_GeomFromText
- GeometryType — Returns the type of the geometry as a string. Eg:
'LINESTRING', 'POLYGON', 'MULTIPOINT', etc.
- ST_Boundary — Returns the closure of the combinatorial boundary of this
Geometry.
- ST_CoordDim —
Return the coordinate dimension of the ST_Geometry value.
- ST_Dimension — The inherent dimension of this Geometry object, which must
be less than or equal to the coordinate dimension.
- ST_EndPoint — Returns the last point of a
LINESTRING
geometry as a POINT
. - ST_Envelope — Returns a geometry representing the bounding box of the
supplied geometry.
- ST_ExteriorRing — Returns a line string representing the exterior ring of the
POLYGON
geometry. Return
NULL if the geometry is not a polygon. Will not work with MULTIPOLYGON - ST_GeometryN — Return the 1-based Nth geometry if the geometry is a
GEOMETRYCOLLECTION, MULTIPOINT, MULTILINESTRING, MULTICURVE or MULTIPOLYGON.
Otherwise, return NULL.
- ST_GeometryType — Return the geometry type of the ST_Geometry value.
- ST_InteriorRingN — Return the Nth interior linestring ring of the polygon geometry.
Return NULL if the geometry is not a polygon or the given N is out
of range.
- ST_IsClosed — Returns
TRUE
if the
LINESTRING
's start and end points are coincident.
- ST_IsEmpty — Returns true if this Geometry is an empty geometry . If
true, then this Geometry represents the empty point set - i.e.
GEOMETRYCOLLECTION(EMPTY).
- ST_IsRing — Returns
TRUE
if this
LINESTRING
is both closed and simple. - ST_IsSimple — Returns (TRUE) if this Geometry has no anomalous geometric
points, such as self intersection or self tangency.
- ST_IsValid — Returns
true
if the
ST_Geometry
is well formed.
- ST_IsValidReason — Returns text stating if a geometry is valid or not and if not valid, a reason why.
- ST_M — Return the M coordinate of the point, or NULL if not
available. Input must be a point.
- ST_NDims — Returns coordinate dimension of the geometry as a small int.
Values are: 2,3 or 4.
- ST_NPoints — Return the number of points (vertexes) in a geometry.
- ST_NRings — If the geometry is a polygon or multi-polygon returns the number of rings.
- ST_NumGeometries — If geometry is a GEOMETRYCOLLECTION (or MULTI*) return the
number of geometries, otherwise return NULL.
- ST_NumInteriorRings — Return the number of interior rings of the first polygon in
the geometry. This will work with both POLYGON and MULTIPOLYGON types but only looks at the first polygon.
Return NULL if there is no polygon in the
geometry.
- ST_NumInteriorRing — Return the number of interior rings of the first polygon in
the geometry. Synonym to ST_NumInteriorRings.
- ST_NumPoints — Return the number of points in an ST_LineString or
ST_CircularString value.
- ST_PointN — Return the Nth point in the first linestring or circular linestring in the
geometry. Return NULL if there is no linestring in the
geometry.
- ST_SRID — Returns the spatial reference identifier for the ST_Geometry as defined in spatial_ref_sys table.
- ST_StartPoint — Returns the first point of a
LINESTRING
geometry as a POINT
. - ST_Summary — Returns a text summary of the contents of the
ST_Geometry
.
- ST_X — Return the X coordinate of the point, or NULL if not
available. Input must be a point.
- ST_Y — Return the Y coordinate of the point, or NULL if not
available. Input must be a point.
- ST_Z — Return the Z coordinate of the point, or NULL if not
available. Input must be a point.
- ST_Zmflag — Returns ZM (dimension semantic) flag of the geometries as a
small int. Values are: 0=2d, 1=3dm, 2=3dz, 3=4d.
- ST_AddPoint — Adds a point to a LineString before point <position>
(0-based index).
- ST_Affine — Applies a 3d affine transformation to the geometry to do things like translate, rotate, scale in one step.
- ST_Force_2D — Forces the geometries into a "2-dimensional mode" so that
all output representations will only have the X and Y coordinates.
- ST_Force_3D — Forces the geometries into XYZ mode. This is an alias for ST_Force_3DZ.
- ST_Force_3DZ — Forces the geometries into XYZ mode. This is a synonym for ST_Force_3D.
- ST_Force_3DM — Forces the geometries into XYM mode.
- ST_Force_4D — Forces the geometries into XYZM mode.
- ST_Force_Collection — Converts the geometry into a GEOMETRYCOLLECTION.
- ST_ForceRHR — Forces the orientation of the vertices in a polygon to follow the
Right-Hand-Rule.
- ST_LineMerge — Returns a (set of) LineString(s) formed by sewing together
a MULTILINESTRING.
- ST_Multi — Returns the geometry as a MULTI* geometry. If the geometry
is already a MULTI*, it is returned unchanged.
- ST_RemovePoint — Removes point from a linestring. Offset is 0-based.
- ST_Reverse — Returns the geometry with vertex order reversed.
- ST_Rotate — This is a synonym for ST_RotateZ
- ST_RotateX — Rotate a geometry rotRadians about the X axis.
- ST_RotateY — Rotate a geometry rotRadians about the Y axis.
- ST_RotateZ — Rotate a geometry rotRadians about the Z axis.
- ST_Scale — Scales the geometry to a new size by multiplying the
ordinates with the parameters. Ie: ST_Scale(geom, Xfactor, Yfactor,
Zfactor).
- ST_Segmentize — Return a modified geometry having no segment longer than the
given distance. Distance computation is performed in 2d
only.
- ST_SetPoint — Replace point N of linestring with given point. Index is
0-based.
- ST_SetSRID — Sets the SRID on a geometry to a particular integer
value.
- ST_SnapToGrid — Snap all points of the input geometry to the grid defined by
its origin and cell size. Remove consecutive points falling on the
same cell, eventually returning NULL if output points are not
enough to define a geometry of the given type. Collapsed
geometries in a collection are stripped from it. Useful for reducing precision.
- ST_Transform — Returns a new geometry with its coordinates transformed to
the SRID referenced by the integer parameter.
- ST_Translate — Translates the geometry to a new location using the numeric
parameters as offsets. Ie: ST_Translate(geom, X, Y) or ST_Translate(geom, X, Y,Z).
- ST_TransScale — Translates the geometry using the deltaX and deltaY args,
then scales it using the XFactor, YFactor args, working in 2D only.
- ST_AsBinary — Return the Well-Known Binary (WKB) representation of the geometry without SRID meta data.
- ST_AsEWKB — Return the Well-Known Binary (WKB) representation of the geometry with SRID meta data.
- ST_AsEWKT — Return the Well-Known Text (WKT) representation of the geometry with SRID meta data.
- ST_AsGeoJSON — Return the geometry as a GeoJSON element.
- ST_AsGML — Return the geometry as a GML version 2 or 3 element.
- ST_AsHEXEWKB — Returns a Geometry in HEXEWKB format (as text) using either
little-endian (NDR) or big-endian (XDR) encoding.
- ST_AsKML — Return the geometry as a KML element. Several variants. Default version=2, default precision=15
- ST_AsSVG — Returns a Geometry in SVG path data.
- ST_GeoHash — Return a GeoHash representation (geohash.org) of the geometry.
- ST_AsText — Return the Well-Known Text (WKT) representation of the geometry without SRID metadata.
- && — Returns
TRUE
if A's bounding box overlaps B's. - &< — Returns
TRUE
if A's bounding box overlaps or is to the left of B's. - &<| — Returns
TRUE
if A's bounding box overlaps or is below B's. - &> — Returns
TRUE
if A' bounding box overlaps or is to the right of B's. - << — Returns
TRUE
if A's bounding box is strictly to the left of B's. - <<| — Returns
TRUE
if A's bounding box is strictly below B's. - = — Returns
TRUE
if A's bounding box is the same as B's. - >> — Returns
TRUE
if A's bounding box is strictly to the right of B's. - @ — Returns
TRUE
if A's bounding box is contained by B's. - |&> — Returns
TRUE
if A's bounding box overlaps or is above B's. - |>> — Returns
TRUE
if A's bounding box is strictly above B's. - ~ — Returns
TRUE
if A's bounding box contains B's. - ~= — Returns
TRUE
if the geometry A is the same as B.
7.7. Spatial Relationships and Measurements
- ST_Area — Returns the area of the geometry if it is a polygon or
multi-polygon.
- ST_Azimuth — Returns the angle in radians from the horizontal of the vector defined by pointA and pointB
- ST_Centroid — Returns the geometric center of a geometry.
- ST_Contains — Returns true if and only if no points of B lie in the exterior of A, and at least one point of the interior of B lies in the interior of A.
- ST_ContainsProperly — Returns true if B intersects the interior of A but not the boundary (or exterior). A does not contain properly itself, but does contain itself.
- ST_Covers — Returns 1 (TRUE) if no point in Geometry B is outside
Geometry A
- ST_CoveredBy — Returns 1 (TRUE) if no point in Geometry A is outside
Geometry B
- ST_Crosses — Returns
TRUE
if the supplied geometries have some, but not all,
interior points in common. - ST_LineCrossingDirection — Given 2 linestrings, returns a number between -3 and 3 denoting what kind of crossing behavior. 0 is no crossing.
- ST_Disjoint — Returns TRUE if the Geometries do not "spatially
intersect" - if they do not share any space together.
- ST_Distance — Returns the 2-dimensional cartesian minimum distance between two geometries in
projected units.
- ST_Distance_Sphere — Returns linear distance in meters between two lon/lat
points. Uses a spherical earth and radius of 6370986 meters.
Faster than ST_Distance_Spheroid, but less
accurate. Only implemented for points.
- ST_Distance_Spheroid — Returns linear distance between two lon/lat points given a
particular spheroid.
Currently only implemented for points.
- ST_DWithin — Returns true if the geometries are within the specified
distance of one another
- ST_Equals — Returns true if the given geometries represent the same geometry. Directionality
is ignored.
- ST_HasArc — Returns true if a geometry or geometry collection contains a circular string
- ST_Intersects — Returns TRUE if the Geometries "spatially
intersect" - (share any portion of space) and FALSE if they don't (they are Disjoint).
- ST_Length — Returns the 2d length of the geometry if it is a linestring or multilinestring.
- ST_Length2D — Returns the 2-dimensional length of the geometry if it is a
linestring or multi-linestring. This is an alias for
ST_Length
- ST_Length3D — Returns the 3-dimensional or 2-dimensional length of the geometry if it is a
linestring or multi-linestring.
- ST_Length_Spheroid — Calculates the 2D or 3D length of a linestring/multilinestring on an ellipsoid. This
is useful if the coordinates of the geometry are in
longitude/latitude and a length is desired without reprojection.
- ST_Length2D_Spheroid — Calculates the 2D length of a linestring/multilinestring on an ellipsoid. This
is useful if the coordinates of the geometry are in
longitude/latitude and a length is desired without reprojection.
- ST_Length3D_Spheroid — Calculates the length of a geometry on an ellipsoid,
taking the elevation into account. This is just an alias for ST_Length_Spheroid.
- ST_Max_Distance — Returns the 2-dimensional largest distance between two geometries in
projected units.
- ST_OrderingEquals — Returns true if the given geometries represent the same geometry
and points are in the same directional order.
- ST_Overlaps — Returns TRUE if the Geometries share space, are of the same dimension, but are not completely contained by each other.
- ST_Perimeter — Return the length measurement of the boundary of an ST_Surface
or ST_MultiSurface value. (Polygon, Multipolygon)
- ST_Perimeter2D — Returns the 2-dimensional perimeter of the geometry, if it
is a polygon or multi-polygon. This is currently an alias for ST_Perimeter.
- ST_Perimeter3D — Returns the 3-dimensional perimeter of the geometry, if it
is a polygon or multi-polygon.
- ST_PointOnSurface — Returns a
POINT
guaranteed to lie on the surface. - ST_Relate — Returns true if this Geometry is spatially related to
anotherGeometry, by testing for intersections between the
Interior, Boundary and Exterior of the two geometries as specified
by the values in the intersectionMatrixPattern. If no intersectionMatrixPattern
is passed in, then returns the maximum intersectionMatrixPattern that relates the 2 geometries.
- ST_Touches — Returns
TRUE
if the geometries have at least one point in common,
but their interiors do not intersect. - ST_Within — Returns true if the geometry A is completely inside geometry B
7.8. Geometry Processing Functions
- ST_Buffer — Returns a geometry that represents all points whose distance
from this Geometry is less than or equal to distance. Calculations
are in the Spatial Reference System of this Geometry. The optional
third parameter sets the number of segments used to approximate a
quarter circle (defaults to 8).
- ST_BuildArea — Creates an areal geometry formed by the constituent linework
of given geometry
- ST_Collect — Return a specified ST_Geometry value from a collection of other geometries.
- ST_ConvexHull — The convex hull of a geometry represents the minimum convex
geometry that encloses all geometries within the set.
- ST_CurveToLine — Converts a CIRCULARSTRING/CURVEDPOLYGON to a LINESTRING/POLYGON
- ST_Difference — Returns a geometry that represents that part of geometry A
that does not intersect with geometry B.
- ST_Dump — Returns a set of geometry_dump (geom,path) rows, that make up a geometry g1.
- ST_DumpRings — Returns a set of
geometry_dump
rows, representing
the exterior and interior rings of a polygon. - ST_Intersection — Returns a geometry that represents the shared portion of geomA and geomB
- ST_LineToCurve — Converts a LINESTRING/POLYGON to a CIRCULARSTRING, CURVED POLYGON
- ST_MemUnion — Same as ST_Union, only memory-friendly (uses less memory
and more processor time).
- ST_MinimumBoundingCircle — Returns the smallest circle polygon that can fully contain a geometry. Default
uses 48 segments per quarter circle.
- ST_Polygonize — Aggregate. Creates a GeometryCollection containing possible
polygons formed from the constituent linework of a set of
geometries.
- ST_Shift_Longitude — Reads every point/vertex in every component of every feature
in a geometry, and if the longitude coordinate is <0, adds 360
to it. The result would be a 0-360 version of the data to be
plotted in a 180 centric map
- ST_Simplify — Returns a "simplified" version of the given geometry using
the Douglas-Peuker algorithm.
- ST_SimplifyPreserveTopology — Returns a "simplified" version of the given geometry using
the Douglas-Peuker algorithm. Will avoid creating derived
geometries (polygons in particular) that are invalid.
- ST_SymDifference — Returns a geometry that represents the portions of A and B
that do not intersect. It is called a symmetric difference because
ST_SymDifference(A,B) = ST_SymDifference(B,A).
- ST_Union — Returns a geometry that represents the point set union of
the Geometries.
- ST_Line_Interpolate_Point — Returns a point interpolated along a line. Second argument is a float8 between 0 and 1
representing fraction of total length of linestring the point has to be located.
- ST_Line_Locate_Point — Returns a float between 0 and 1 representing the location of
the closest point on LineString to the given Point, as a fraction
of total 2d line length.
- ST_Line_Substring — Return a linestring being a substring of the input one
starting and ending at the given fractions of total 2d length.
Second and third arguments are float8 values between 0 and
1.
- ST_Locate_Along_Measure — Return a derived geometry collection value with elements
that match the specified measure. Polygonal elements are not
supported.
- ST_Locate_Between_Measures — Return a derived geometry collection value with elements
that match the specified range of measures inclusively. Polygonal
elements are not supported.
- ST_LocateBetweenElevations — Return a derived geometry (collection) value with elements
that intersect the specified range of elevations inclusively. Only 3D, 4D LINESTRINGS and MULTILINESTRINGS
are supported.
7.10. Long Transactions Support
- AddAuth — Add an authorization token to be used in current transaction.
- CheckAuth — Creates trigger on a table to prevent/allow updates and deletes of rows based on authorization token.
- DisableLongTransactions — Disable long transaction support. This function removes the
long transaction support metadata tables, and drops all triggers
attached to lock-checked tables.
- EnableLongTransactions — Enable long transaction support. This function creates the
required metadata tables, needs to be called once before using the
other functions in this section. Calling it twice is
harmless.
- LockRow — Set lock/authorization for specific row in table
- UnlockRows — Remove all locks held by specified authorization id. Returns
the number of locks released.
This module and associated pl/pgsql functions have been
implemented to provide long locking support required by Web Feature Service specification.
7.11. Miscellaneous Functions
- ST_Accum — Aggregate. Constructs an array of geometries.
- ST_Box2D — Returns a BOX2D representing the maximum extents of the geometry.
- ST_Box3D — Returns a BOX3D representing the maximum extents of the geometry.
- ST_Estimated_Extent — Return the 'estimated' extent of the given spatial table.
The estimated is taken from the geometry column's statistics. The
current schema will be used if not specified.
- ST_Expand — Returns bounding box expanded in all directions from the bounding box of the input geometry
- ST_Extent — an aggregate function that returns the bounding box that bounds rows of geometries.
- ST_Extent3D — an aggregate function that returns the box3D bounding box that bounds rows of geometries.
- Find_SRID — 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.
- ST_Mem_Size — Returns the amount of space (in bytes) the geometry takes.
- ST_Point_Inside_Circle — Is the point geometry insert circle defined by center_x, center_y , radius
- ST_XMax — Returns X maxima of a bounding box 2d or 3d or a geometry.
- ST_XMin — Returns X minima of a bounding box 2d or 3d or a geometry.
- ST_YMax — Returns Y maxima of a bounding box 2d or 3d or a geometry.
- ST_YMin — Returns Y minima of a bounding box 2d or 3d or a geometry.
- ST_ZMax — Returns Z minima of a bounding box 2d or 3d or a geometry.
- ST_ZMin — Returns Z minima of a bounding box 2d or 3d or a geometry.
7.12. Exceptional Functions
- ST_AddBBox — Add bounding box to the geometry.
- ST_DropBBox — Drop the bounding box cache from the geometry.
- ST_HasBBox — Returns TRUE if the bbox of this geometry is cached, FALSE otherwise.
These functions are rarely used functions that should only be used if your data is corrupted in someway. They are used for troubleshooting corruption
and also fixing things that should under normal circumstances, never happen.