Glossary

Types

Types described in OGC Standards or in ISO/IEC 13249-3:2016

The ISO/IEC 13249-3 International Standard defines multimedia and application specific types and their associated routines using the user-defined features in ISO/IEC 9075. The third part of ISO/IEC 13249 defines spatial user-defined types and their associated routines.

In doctrine spatial extensions, some of all normalized spatial user-defined types are implemented.

This section lists them.

Spatial types COORDINATES Implemented MySql PostgreSql
Geometric X, Y YES YES YES
Point X, Y YES YES YES
LineString X, Y YES YES YES
Polygon X, Y YES YES YES
MultiPoint X, Y YES YES YES
MultiLineString X, Y YES YES YES
MultiPolygon X, Y YES YES YES
GeomCollection X, Y NO    
Curve X, Y NO    
Surface X, Y NO    
PolyHedralSurface X, Y NO    
GeometricZ X, Y, Z NO    
PointZ X, Y, Z NO    
LineStringZ X, Y, Z NO    
PolygonZ X, Y, Z NO    
MultiPointZ X, Y, Z NO    
MultiLineStringZ X, Y, Z NO    
MultiPolygonZ X, Y, Z NO    
GeomCollectionZ X, Y, Z NO    
CurveZ X, Y, Z NO    
SurfaceZ X, Y, Z NO    
PolyHedralSurfaceZ X, Y, Z NO    
GeometricM X, Y, M NO    
PointM X, Y, M NO    
LineStringM X, Y, M NO    
PolygonM X, Y, M NO    
MultiPointM X, Y, M NO    
MultiLineStringM X, Y, M NO    
MultiPolygonM X, Y, M NO    
GeomCollectionM X, Y, M NO    
CurveM X, Y, M NO    
SurfaceM X, Y, M NO    
PolyHedralSurfaceM X, Y, M NO    
GeometricZM X, Y, Z, M NO    
PointZM X, Y, Z, M NO    
LineStringZM X, Y, Z, M NO    
PolygonZM X, Y, Z, M NO    
MultiPointZM X, Y, Z, M NO    
MultiLineStringZM X, Y, Z, M NO    
MultiPolygonZM X, Y, Z, M NO    
GeomCollectionZM X, Y, Z, M NO    
CurveZM X, Y, Z, M NO    
SurfaceZM X, Y, Z, M NO    
PolyHedralSurfaceZM X, Y, Z, M NO    

Functions

Functions described in OGC Standards or in ISO/IEC 13249-3:2016

The ISO/IEC 13249-3 International Standard defines multimedia and application specific types and their associated routines using the user-defined features in ISO/IEC 9075. The third part of ISO/IEC 13249 defines spatial user-defined types and their associated routines.

Associated routines of this document are considered as the “Standard functions” for this doctrine spatial extension. I try to maintain this documentation up-to-date. In any case, you will find under the Functions/Standards directory a set of classes. Each class implement the spatial function of the same name.

The below table shows the defined functions:

Spatial functions Implemented Type MySql PostgreSql
ST_Area YES Numeric YES YES
ST_AsBinary YES String YES YES
ST_Boundary YES String YES YES
ST_Buffer YES Numeric NO* YES
ST_Centroid YES String YES YES
ST_Contains YES Numeric YES YES
ST_ConvexHull YES String NO YES
ST_Crosses YES Numeric YES YES
ST_Difference YES String YES YES
ST_Dimension YES Numeric YES YES
ST_Disjoint YES Numeric YES YES
ST_Distance YES Numeric NO* YES
ST_Equals YES Numeric YES YES
ST_Intersects YES Numeric YES YES
ST_Intersection YES String YES YES
ST_IsClosed YES Numeric YES YES
ST_IsEmpty YES Numeric YES YES
ST_IsRing YES Numeric NO YES
ST_IsSimple YES Numeric YES YES
ST_EndPoint YES String YES YES
ST_Envelope YES String YES YES
ST_ExteriorRing YES String YES YES
ST_GeometryN YES String YES YES
ST_GeometryN YES String YES YES
ST_EndPoint YES String YES YES
ST_GeometryType YES Numeric NO* YES
ST_GeomFromWkb YES String YES YES
ST_GeomFromText YES String YES YES
ST_InteriorRingN YES String YES YES
ST_Length YES Numeric YES YES
ST_LineStringFromWkb YES String YES YES
ST_MPointFromWkb YES String YES YES
ST_MLineFromWkb YES String YES YES
ST_MPolyFromWkb YES String YES YES
ST_NumInteriorRing YES String YES YES
ST_NumGeometries YES String YES YES
ST_NumPoints YES String YES YES
ST_Overlaps YES String YES YES
ST_Perimeter YES String YES YES
ST_Point YES String YES YES
ST_PointFromWkb YES String YES YES
ST_PointN YES String YES YES
ST_PointOnSurface YES String NO YES
ST_PolyFromWkb YES String YES YES
ST_Relate YES String YES YES
ST_SetSRID YES Numeric YES YES
ST_StartPoint YES Numeric YES YES
ST_SymDifference YES String YES YES
ST_Touches YES Numeric YES YES
ST_Union YES String YES YES
ST_Within YES Numeric YES YES
ST_X YES Numeric YES YES
ST_Y YES Numeric YES YES

Specific functions of the PostgreSql database server

If your application can be used with another database server than PostgreSql, you should avoid to use these functions. It’s a good practice to name function with the SP prefix, but do not forget that you can name all functions as you want when you declare it into your configuration files or in your bootstrap.

Specific PostgreSQL Spatial functions Implemented Type
Sp_AsGeoJson YES String
Sp_Azimuth YES String
Sp_ClosestPoint YES String
Sp_Collect YES String
Sp_ContainsProperly YES Numeric
Sp_CoveredBy YES Numeric
Sp_Covers YES Numeric
Sp_Distance_Sphere YES Numeric
Sp_DWithin YES Numeric
Sp_Expand YES Numeric
Sp_GeogFromText YES String
Sp_GeographyFromText YES String
Sp_GeomFromEwkt YES Numeric
Sp_GeometryType YES Numeric
Sp_LineCrossingDirection YES Numeric
Sp_LineSubstring YES Numeric
Sp_LineLocatePoint YES Numeric
Sp_LineInterpolatePoint YES String
Sp_MakeEnvelope YES String
Sp_MakeBox2D YES String
Sp_MakeLine YES String
Sp_MakePoint YES String
Sp_NPoints YES Numeric
Sp_Scale YES Numeric
Sp_Simplify YES Numeric
Sp_Split YES Numeric
Sp_SnapToGrid YES String
Sp_Summary YES String
Sp_Transform YES Numeric
Sp_Translate YES Numeric

Specific functions of the MySql database server

If your application can be used with another database server than MySql, you should avoid to use these functions.

Specific MySQL Spatial functions Implemented Type
Sp_Distance YES Numeric
Sp_Buffer YES Numeric
Sp_BufferStrategy YES Numeric
Sp_GeometryType YES Numeric
Sp_LineString YES Numeric
Sp_MBRContains YES Numeric
Sp_MBRDisjoint YES Numeric
Sp_MBREquals YES Numeric
Sp_MBRDisjoint YES Numeric
Sp_MBRIntersects YES Numeric
Sp_MBROverlaps YES Numeric
Sp_MBRTouches YES Numeric
Sp_MBRWithin YES Numeric
Sp_Point YES Numeric

Nota: Since MySql 5.7, a lot of functions are deprecated. These functions have been removed from doctrine spatial extensions, because they are replaced by their new names. As example, the GeomFromText function does no more exist. It has been replaced by the Standard function ST_GeomFromText since MySql 5.7. So if you was using GeomFromText, removed it and use the standard function declared in the StGeomFromText class.