The following tables represent an (incomplete) attempt to map some commonly used spatial functions among major open source database and the SQL/MM Spatial specification. I am not attempting to be exhaustive, but merely provide some practical information to assist myself in others in writing implementation-agnostic SQL. If others want to contribute to the concordance with information about other FOSS RDBMSs (particularly MySQL Spatial), please feel free to contact me.
Geometry Constructors - (MULTI)POINTs
Task | PostGIS 2.0 | SpatiaLite 4.0 | OGC Compliance |
---|---|---|---|
Construct POINT from coordinates | ST_Point(x dp, y dp) ST_MakePoint(x dp, y dp) | ST_Point(x dp, y dp) MakePoint(x dp, y dp[, SRID int]) | ST_Point(...) --SQL-MM 3: 6.1.2 |
Construct 3DZ POINT from coordinates | ST_MakePoint(x dp, y dp, z dp) | MakePointZ(x dp, y dp, z dp[, SRID int]) | Non-compliant |
Construct 3DM POINT from coordinates | ST_MakePointM(x dp, y dp, m dp) | MakePointM(x dp, y dp, m dp[, SRID int]) | Non-compliant |
Construct 4D POINT from coordinates | ST_MakePoint(x dp, y dp, z dp, m dp) | MakePointZM(x dp, y dp, z dp, m dp[, SRID int]) | Non-compliant |
--Contrary to the PostGIS documentation, the previous four functions do not require x and y to be longitude and latitude. --SRID cannot be passed as a parameter (as in SpatiaLite and the SQL/MM specification), and must be assigned with ST_Set_SRID(). --Generally faster and more precise than ST_GeomFromText and ST_PointFromText |
|||
Construct POINT from Well-Known Text Ex: 'POINT(1 2)' | ST_PointFromText(WKT text[, SRID int]) --Slower than ST_GeomFromText() | [ST_]PointFromText(WKT text[, SRID int]) | ST_PointFromText(...) --SQL-MM 3: 6.1.8 |
Construct (MULTI)POINT from Well-Known Text Ex: 'MULTIPOINT(1 2, 3 4)' | ST_MPointFromText(WKT text[, SRID int]) --Slower than ST_GeomFromText() | [ST_]M[ulti]PointFromText(WKT text[, SRID int]) | ST_MPointFromText(...) --SQL-MM 3: 9.2.4 |
Construct POINT from Well-Known Binary | ST_PointFromWKB(WKB bytea[, SRID int]) | [ST_]PointFromWKB(WKB binary[, SRID int]) | ST_PointFromWKB(...) --SQL-MM 3: 6.1.9 |
Construct MULTIPOINT from Well-Known Binary | ? | [ST_]M[ulti]PointFromWKB(WKB binary[, SRID int]) | ST_MPointFromWKB(...) --SQL-MM 3: 9.2.5 |