# # NULL values. # # At least one NULL parameter. Should return NULL. SELECT ST_TRANSFORM(NULL, NULL); ST_TRANSFORM(NULL, NULL) NULL SELECT ST_TRANSFORM(NULL, 4326); ST_TRANSFORM(NULL, 4326) NULL SELECT ST_TRANSFORM(ST_GEOMFROMTEXT('POINT(0 0)', 4326), NULL); ST_TRANSFORM(ST_GEOMFROMTEXT('POINT(0 0)', 4326), NULL) NULL # # Invalid parameters. # # Invalid geometry. Should raise error. DO ST_TRANSFORM(x'00000000DEADBEEF', 4326); ERROR 22023: Invalid GIS data provided to function st_transform. # Non-existing SRID. Should raise error. DO ST_TRANSFORM( x'94007735010100000000000000000000000000000000000000', 4326 ); ERROR SR001: There's no spatial reference system with SRID 896991380. DO ST_TRANSFORM(ST_GEOMFROMTEXT('POINT(0 0)', 4326), 1000000000); ERROR SR001: There's no spatial reference system with SRID 1000000000. # # Transformation to/from SRID 0. # # Transformation from SRID 0 to SRID 0 is a no-op. Should return true. SELECT ST_EQUALS( ST_GEOMFROMTEXT('POINT(0 0)'), ST_TRANSFORM(ST_GEOMFROMTEXT('POINT(0 0)'), 0) ) AS is_noop; is_noop 1 # Transformation between SRID 0 and geographic SRS. Should raise error. DO ST_TRANSFORM(ST_GEOMFROMTEXT('POINT(0 0)'), 4326); ERROR 22S00: Transformation from SRID 0 is not supported. DO ST_TRANSFORM(ST_GEOMFROMTEXT('POINT(0 0)', 4326), 0); ERROR 22S00: Transformation to SRID 0 is not supported. DO ST_TRANSFORM(ST_GEOMFROMTEXT('POINT(0 0)'), 4047); ERROR 22S00: Transformation from SRID 0 is not supported. DO ST_TRANSFORM(ST_GEOMFROMTEXT('POINT(0 0)', 4047), 0); ERROR 22S00: Transformation to SRID 0 is not supported. # Transformation between SRID 0 and projected SRS. Should raise error. DO ST_TRANSFORM(ST_GEOMFROMTEXT('POINT(0 0)'), 3857); ERROR 22S00: Transformation from SRID 0 is not supported. DO ST_TRANSFORM(ST_GEOMFROMTEXT('POINT(0 0)', 3857), 0); ERROR 22S00: Transformation to SRID 0 is not supported. # # Transformation between geographic SRSs. # # Transformation of every geometry type. Should succeed. DO ST_TRANSFORM(ST_GEOMFROMTEXT('POINT(0 0)', 4326), 3819); DO ST_TRANSFORM(ST_GEOMFROMTEXT('LINESTRING(0 0, 1 1)', 4326), 3819); DO ST_TRANSFORM(ST_GEOMFROMTEXT('POLYGON((0 0, 0 1, 1 1, 0 0))', 4326), 3819); DO ST_TRANSFORM(ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(POINT(0 0))', 4326), 3819); DO ST_TRANSFORM(ST_GEOMFROMTEXT('MULTIPOINT((0 0))', 4326), 3819); DO ST_TRANSFORM(ST_GEOMFROMTEXT('MULTILINESTRING((0 0, 1 1))', 4326), 3819); DO ST_TRANSFORM( ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0, 0 1, 1 1, 0 0)))', 4326), 3819 ); # Beginning of tests to verify that WGS 84 is recognized. # WGS 84 with no authority codes. Should raise error. CREATE SPATIAL REFERENCE SYSTEM 1000004326 NAME 'foo' DEFINITION 'GEOGCS["WGS 84",DATUM["World Geodetic System 1984",SPHEROID["WGS 84",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["degree",0.017453292519943278],AXIS["Lat",NORTH],AXIS["Lon",EAST]]'; DO ST_TRANSFORM(ST_GEOMFROMTEXT('POINT(0 0)', 1000004326), 4326); ERROR 22S00: Transformation from SRID 1000004326 is not supported. The spatial reference system has no TOWGS84 clause. DO ST_TRANSFORM(ST_GEOMFROMTEXT('POINT(0 0)', 4326), 1000004326); ERROR 22S00: Transformation to SRID 1000004326 is not supported. The spatial reference system has no TOWGS84 clause. DROP SPATIAL REFERENCE SYSTEM 1000004326; # WGS 84 with no authority codes exept EPSG 4326 for the entire SRS. # Should succeed. CREATE SPATIAL REFERENCE SYSTEM 1000004326 NAME 'foo' DEFINITION 'GEOGCS["WGS 84",DATUM["World Geodetic System 1984",SPHEROID["WGS 84",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["degree",0.017453292519943278],AXIS["Lat",NORTH],AXIS["Lon",EAST],AUTHORITY["EPSG","4326"]]'; DO ST_TRANSFORM(ST_GEOMFROMTEXT('POINT(0 0)', 1000004326), 4326); DO ST_TRANSFORM(ST_GEOMFROMTEXT('POINT(0 0)', 4326), 1000004326); DROP SPATIAL REFERENCE SYSTEM 1000004326; # WGS 84 with incorrect authority code. Should raise error. CREATE SPATIAL REFERENCE SYSTEM 1000004326 NAME 'foo' DEFINITION 'GEOGCS["WGS 84",DATUM["World Geodetic System 1984",SPHEROID["WGS 84",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["degree",0.017453292519943278],AXIS["Lat",NORTH],AXIS["Lon",EAST],AUTHORITY["EPSG","0"]]'; DO ST_TRANSFORM(ST_GEOMFROMTEXT('POINT(0 0)', 1000004326), 4326); ERROR 22S00: Transformation from SRID 1000004326 is not supported. The spatial reference system has no TOWGS84 clause. DO ST_TRANSFORM(ST_GEOMFROMTEXT('POINT(0 0)', 4326), 1000004326); ERROR 22S00: Transformation to SRID 1000004326 is not supported. The spatial reference system has no TOWGS84 clause. DROP SPATIAL REFERENCE SYSTEM 1000004326; # WGS 84 with authority code for the spheroid. Should succeed. CREATE SPATIAL REFERENCE SYSTEM 1000004326 NAME 'foo' DEFINITION 'GEOGCS["WGS 84",DATUM["World Geodetic System 1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]]],PRIMEM["Greenwich",0],UNIT["degree",0.017453292519943278],AXIS["Lat",NORTH],AXIS["Lon",EAST],AUTHORITY["EPSG","4326"]]'; DO ST_TRANSFORM(ST_GEOMFROMTEXT('POINT(0 0)', 1000004326), 4326); DO ST_TRANSFORM(ST_GEOMFROMTEXT('POINT(0 0)', 4326), 1000004326); DROP SPATIAL REFERENCE SYSTEM 1000004326; # WGS 84 with incorrect authority code for the spheroid. Should raise # error. CREATE SPATIAL REFERENCE SYSTEM 1000004326 NAME 'foo' DEFINITION 'GEOGCS["WGS 84",DATUM["World Geodetic System 1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","0"]]],PRIMEM["Greenwich",0],UNIT["degree",0.017453292519943278],AXIS["Lat",NORTH],AXIS["Lon",EAST],AUTHORITY["EPSG","4326"]]'; DO ST_TRANSFORM(ST_GEOMFROMTEXT('POINT(0 0)', 1000004326), 4326); ERROR 22S00: Transformation from SRID 1000004326 is not supported. The spatial reference system has no TOWGS84 clause. DO ST_TRANSFORM(ST_GEOMFROMTEXT('POINT(0 0)', 4326), 1000004326); ERROR 22S00: Transformation to SRID 1000004326 is not supported. The spatial reference system has no TOWGS84 clause. DROP SPATIAL REFERENCE SYSTEM 1000004326; # WGS 84 with incorrect semi-major axis. Should raise error. CREATE SPATIAL REFERENCE SYSTEM 1000004326 NAME 'foo' DEFINITION 'GEOGCS["WGS 84",DATUM["World Geodetic System 1984",SPHEROID["WGS 84",1378137,298.257223563,AUTHORITY["EPSG","7030"]]],PRIMEM["Greenwich",0],UNIT["degree",0.017453292519943278],AXIS["Lat",NORTH],AXIS["Lon",EAST],AUTHORITY["EPSG","4326"]]'; DO ST_TRANSFORM(ST_GEOMFROMTEXT('POINT(0 0)', 1000004326), 4326); ERROR 22S00: Transformation from SRID 1000004326 is not supported. The spatial reference system has no TOWGS84 clause. DO ST_TRANSFORM(ST_GEOMFROMTEXT('POINT(0 0)', 4326), 1000004326); ERROR 22S00: Transformation to SRID 1000004326 is not supported. The spatial reference system has no TOWGS84 clause. DROP SPATIAL REFERENCE SYSTEM 1000004326; # WGS 84 with incorrect inverse flattening. Should raise error. CREATE SPATIAL REFERENCE SYSTEM 1000004326 NAME 'foo' DEFINITION 'GEOGCS["WGS 84",DATUM["World Geodetic System 1984",SPHEROID["WGS 84",6378137,198.257223563,AUTHORITY["EPSG","7030"]]],PRIMEM["Greenwich",0],UNIT["degree",0.017453292519943278],AXIS["Lat",NORTH],AXIS["Lon",EAST],AUTHORITY["EPSG","4326"]]'; DO ST_TRANSFORM(ST_GEOMFROMTEXT('POINT(0 0)', 1000004326), 4326); ERROR 22S00: Transformation from SRID 1000004326 is not supported. The spatial reference system has no TOWGS84 clause. DO ST_TRANSFORM(ST_GEOMFROMTEXT('POINT(0 0)', 4326), 1000004326); ERROR 22S00: Transformation to SRID 1000004326 is not supported. The spatial reference system has no TOWGS84 clause. DROP SPATIAL REFERENCE SYSTEM 1000004326; # WGS 84 with authority code for the datum. Should succeed. CREATE SPATIAL REFERENCE SYSTEM 1000004326 NAME 'foo' DEFINITION 'GEOGCS["WGS 84",DATUM["World Geodetic System 1984",SPHEROID["WGS 84",6378137,298.257223563],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0],UNIT["degree",0.017453292519943278],AXIS["Lat",NORTH],AXIS["Lon",EAST],AUTHORITY["EPSG","4326"]]'; DO ST_TRANSFORM(ST_GEOMFROMTEXT('POINT(0 0)', 1000004326), 4326); DO ST_TRANSFORM(ST_GEOMFROMTEXT('POINT(0 0)', 4326), 1000004326); DROP SPATIAL REFERENCE SYSTEM 1000004326; # WGS 84 with incorrect authority code for the datum. Should raise error. CREATE SPATIAL REFERENCE SYSTEM 1000004326 NAME 'foo' DEFINITION 'GEOGCS["WGS 84",DATUM["World Geodetic System 1984",SPHEROID["WGS 84",6378137,298.257223563],AUTHORITY["EPSG","0"]],PRIMEM["Greenwich",0],UNIT["degree",0.017453292519943278],AXIS["Lat",NORTH],AXIS["Lon",EAST],AUTHORITY["EPSG","4326"]]'; DO ST_TRANSFORM(ST_GEOMFROMTEXT('POINT(0 0)', 1000004326), 4326); ERROR 22S00: Transformation from SRID 1000004326 is not supported. The spatial reference system has no TOWGS84 clause. DO ST_TRANSFORM(ST_GEOMFROMTEXT('POINT(0 0)', 4326), 1000004326); ERROR 22S00: Transformation to SRID 1000004326 is not supported. The spatial reference system has no TOWGS84 clause. DROP SPATIAL REFERENCE SYSTEM 1000004326; # WGS 84 with authority code for the prime meridian. Should succeed. CREATE SPATIAL REFERENCE SYSTEM 1000004326 NAME 'foo' DEFINITION 'GEOGCS["WGS 84",DATUM["World Geodetic System 1984",SPHEROID["WGS 84",6378137,298.257223563]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.017453292519943278],AXIS["Lat",NORTH],AXIS["Lon",EAST],AUTHORITY["EPSG","4326"]]'; DO ST_TRANSFORM(ST_GEOMFROMTEXT('POINT(0 0)', 1000004326), 4326); DO ST_TRANSFORM(ST_GEOMFROMTEXT('POINT(0 0)', 4326), 1000004326); DROP SPATIAL REFERENCE SYSTEM 1000004326; # WGS 84 with incorrect authority code for the prime meridian. Should # raise error. CREATE SPATIAL REFERENCE SYSTEM 1000004326 NAME 'foo' DEFINITION 'GEOGCS["WGS 84",DATUM["World Geodetic System 1984",SPHEROID["WGS 84",6378137,298.257223563]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","0"]],UNIT["degree",0.017453292519943278],AXIS["Lat",NORTH],AXIS["Lon",EAST],AUTHORITY["EPSG","4326"]]'; DO ST_TRANSFORM(ST_GEOMFROMTEXT('POINT(0 0)', 1000004326), 4326); ERROR 22S00: Transformation from SRID 1000004326 is not supported. The spatial reference system has no TOWGS84 clause. DO ST_TRANSFORM(ST_GEOMFROMTEXT('POINT(0 0)', 4326), 1000004326); ERROR 22S00: Transformation to SRID 1000004326 is not supported. The spatial reference system has no TOWGS84 clause. DROP SPATIAL REFERENCE SYSTEM 1000004326; # WGS 84 with incorrect prime meridian. Should raise error. CREATE SPATIAL REFERENCE SYSTEM 1000004326 NAME 'foo' DEFINITION 'GEOGCS["WGS 84",DATUM["World Geodetic System 1984",SPHEROID["WGS 84",6378137,298.257223563]],PRIMEM["Greenwich",1,AUTHORITY["EPSG","8901"]],UNIT["degree",0.017453292519943278],AXIS["Lat",NORTH],AXIS["Lon",EAST],AUTHORITY["EPSG","4326"]]'; DO ST_TRANSFORM(ST_GEOMFROMTEXT('POINT(0 0)', 1000004326), 4326); ERROR 22S00: Transformation from SRID 1000004326 is not supported. The spatial reference system has no TOWGS84 clause. DO ST_TRANSFORM(ST_GEOMFROMTEXT('POINT(0 0)', 4326), 1000004326); ERROR 22S00: Transformation to SRID 1000004326 is not supported. The spatial reference system has no TOWGS84 clause. DROP SPATIAL REFERENCE SYSTEM 1000004326; # WGS 84 with authority code for the unit. Should succeed. CREATE SPATIAL REFERENCE SYSTEM 1000004326 NAME 'foo' DEFINITION 'GEOGCS["WGS 84",DATUM["World Geodetic System 1984",SPHEROID["WGS 84",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["degree",0.017453292519943278,AUTHORITY["EPSG","9122"]],AXIS["Lat",NORTH],AXIS["Lon",EAST],AUTHORITY["EPSG","4326"]]'; DO ST_TRANSFORM(ST_GEOMFROMTEXT('POINT(0 0)', 1000004326), 4326); DO ST_TRANSFORM(ST_GEOMFROMTEXT('POINT(0 0)', 4326), 1000004326); DROP SPATIAL REFERENCE SYSTEM 1000004326; # WGS 84 with incorrect authority code for the unit. Should raise error. CREATE SPATIAL REFERENCE SYSTEM 1000004326 NAME 'foo' DEFINITION 'GEOGCS["WGS 84",DATUM["World Geodetic System 1984",SPHEROID["WGS 84",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["degree",0.017453292519943278,AUTHORITY["EPSG","0"]],AXIS["Lat",NORTH],AXIS["Lon",EAST],AUTHORITY["EPSG","4326"]]'; DO ST_TRANSFORM(ST_GEOMFROMTEXT('POINT(0 0)', 1000004326), 4326); ERROR 22S00: Transformation from SRID 1000004326 is not supported. The spatial reference system has no TOWGS84 clause. DO ST_TRANSFORM(ST_GEOMFROMTEXT('POINT(0 0)', 4326), 1000004326); ERROR 22S00: Transformation to SRID 1000004326 is not supported. The spatial reference system has no TOWGS84 clause. DROP SPATIAL REFERENCE SYSTEM 1000004326; # WGS 84 with incorrect unit. Should raise error. CREATE SPATIAL REFERENCE SYSTEM 1000004326 NAME 'foo' DEFINITION 'GEOGCS["WGS 84",DATUM["World Geodetic System 1984",SPHEROID["WGS 84",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["degree",0.01,AUTHORITY["EPSG","9122"]],AXIS["Lat",NORTH],AXIS["Lon",EAST],AUTHORITY["EPSG","4326"]]'; DO ST_TRANSFORM(ST_GEOMFROMTEXT('POINT(0 0)', 1000004326), 4326); ERROR 22S00: Transformation from SRID 1000004326 is not supported. The spatial reference system has no TOWGS84 clause. DO ST_TRANSFORM(ST_GEOMFROMTEXT('POINT(0 0)', 4326), 1000004326); ERROR 22S00: Transformation to SRID 1000004326 is not supported. The spatial reference system has no TOWGS84 clause. DROP SPATIAL REFERENCE SYSTEM 1000004326; # WGS 84 with incorrect axes. Should raise error. CREATE SPATIAL REFERENCE SYSTEM 1000004326 NAME 'foo' DEFINITION 'GEOGCS["WGS 84",DATUM["World Geodetic System 1984",SPHEROID["WGS 84",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["degree",0.017453292519943278],AXIS["Lon",EAST],AXIS["Lat",NORTH],AUTHORITY["EPSG","4326"]]'; DO ST_TRANSFORM(ST_GEOMFROMTEXT('POINT(0 0)', 1000004326), 4326); ERROR 22S00: Transformation from SRID 1000004326 is not supported. The spatial reference system has no TOWGS84 clause. DO ST_TRANSFORM(ST_GEOMFROMTEXT('POINT(0 0)', 4326), 1000004326); ERROR 22S00: Transformation to SRID 1000004326 is not supported. The spatial reference system has no TOWGS84 clause. DROP SPATIAL REFERENCE SYSTEM 1000004326; # End of tests to verify that WGS 84 is recognized. # Geographic SRS with TOWGS84 clause. Should succeed. CREATE SPATIAL REFERENCE SYSTEM 1000004326 NAME 'foo' DEFINITION 'GEOGCS["WGS 84",DATUM["World Geodetic System 1984",SPHEROID["WGS 84",6378137,298.257223563],TOWGS84[0,0,0,0,0,0,0]],PRIMEM["Greenwich",0],UNIT["degree",0.017453292519943278],AXIS["Lat",NORTH],AXIS["Lon",EAST]]'; DO ST_TRANSFORM(ST_GEOMFROMTEXT('POINT(0 0)', 1000004326), 4326); DO ST_TRANSFORM(ST_GEOMFROMTEXT('POINT(0 0)', 4326), 1000004326); DROP SPATIAL REFERENCE SYSTEM 1000004326; # Spherical SRS with TOWGS84 clause. Should succeed. CREATE SPATIAL REFERENCE SYSTEM 1000004326 NAME 'foo' DEFINITION 'GEOGCS["WGS 84",DATUM["World Geodetic System 1984",SPHEROID["WGS 84",6378137,0],TOWGS84[0,0,0,0,0,0,0]],PRIMEM["Greenwich",0],UNIT["degree",0.017453292519943278],AXIS["Lat",NORTH],AXIS["Lon",EAST]]'; DO ST_TRANSFORM(ST_GEOMFROMTEXT('POINT(0 0)', 1000004326), 4326); DO ST_TRANSFORM(ST_GEOMFROMTEXT('POINT(0 0)', 4326), 1000004326); DROP SPATIAL REFERENCE SYSTEM 1000004326; # Prime meridian 1 degree East of Greenwich. CREATE SPATIAL REFERENCE SYSTEM 1000004326 NAME 'foo' DEFINITION 'GEOGCS["WGS 84",DATUM["World Geodetic System 1984",SPHEROID["WGS 84",6378137,0],TOWGS84[0,0,0,0,0,0,0]],PRIMEM["foo",1],UNIT["degree",0.017453292519943278],AXIS["Lat",NORTH],AXIS["Lon",EAST]]'; SELECT ST_ASTEXT( ST_TRANSFORM(ST_GEOMFROMTEXT('POINT(0 0)', 1000004326), 4326) ) AS lon_should_be_plus_one; lon_should_be_plus_one POINT(0 1) SELECT ST_ASTEXT( ST_TRANSFORM(ST_GEOMFROMTEXT('POINT(0 0)', 4326), 1000004326) ) AS lon_should_be_minus_one; lon_should_be_minus_one POINT(0 -1) DROP SPATIAL REFERENCE SYSTEM 1000004326; # Prime meridian 1 degree West of Greenwich. CREATE SPATIAL REFERENCE SYSTEM 1000004326 NAME 'foo' DEFINITION 'GEOGCS["WGS 84",DATUM["World Geodetic System 1984",SPHEROID["WGS 84",6378137,0],TOWGS84[0,0,0,0,0,0,0]],PRIMEM["foo",-1],UNIT["degree",0.017453292519943278],AXIS["Lat",NORTH],AXIS["Lon",EAST]]'; SELECT ST_ASTEXT( ST_TRANSFORM(ST_GEOMFROMTEXT('POINT(0 0)', 1000004326), 4326) ) AS lon_should_be_minus_one; lon_should_be_minus_one POINT(0 -1) SELECT ST_ASTEXT( ST_TRANSFORM(ST_GEOMFROMTEXT('POINT(0 0)', 4326), 1000004326) ) AS lon_should_be_plus_one; lon_should_be_plus_one POINT(0 1) DROP SPATIAL REFERENCE SYSTEM 1000004326; # Prime meridian 180 degrees East of Greenwich. CREATE SPATIAL REFERENCE SYSTEM 1000004326 NAME 'foo' DEFINITION 'GEOGCS["WGS 84",DATUM["World Geodetic System 1984",SPHEROID["WGS 84",6378137,0],TOWGS84[0,0,0,0,0,0,0]],PRIMEM["foo",180],UNIT["degree",0.017453292519943278],AXIS["Lat",NORTH],AXIS["Lon",EAST]]'; SELECT ST_ASTEXT( ST_TRANSFORM(ST_GEOMFROMTEXT('POINT(0 0)', 1000004326), 4326) ) AS lon_should_be_180; lon_should_be_180 POINT(0 180) SELECT ST_ASTEXT( ST_TRANSFORM(ST_GEOMFROMTEXT('POINT(0 0)', 4326), 1000004326) ) AS lon_should_be_minus_180; lon_should_be_minus_180 POINT(0 -180) DROP SPATIAL REFERENCE SYSTEM 1000004326; # Prime meridian 180 degrees West of Greenwich. CREATE SPATIAL REFERENCE SYSTEM 1000004326 NAME 'foo' DEFINITION 'GEOGCS["WGS 84",DATUM["World Geodetic System 1984",SPHEROID["WGS 84",6378137,0],TOWGS84[0,0,0,0,0,0,0]],PRIMEM["foo",-180],UNIT["degree",0.017453292519943278],AXIS["Lat",NORTH],AXIS["Lon",EAST]]'; SELECT ST_ASTEXT( ST_TRANSFORM(ST_GEOMFROMTEXT('POINT(0 0)', 1000004326), 4326) ) AS lon_should_be_minus_180; lon_should_be_minus_180 POINT(0 -180) SELECT ST_ASTEXT( ST_TRANSFORM(ST_GEOMFROMTEXT('POINT(0 0)', 4326), 1000004326) ) AS lon_should_be_180; lon_should_be_180 POINT(0 180) DROP SPATIAL REFERENCE SYSTEM 1000004326; # Transformation between degrees and gradians. CREATE SPATIAL REFERENCE SYSTEM 1000004326 NAME 'foo' DEFINITION 'GEOGCS["WGS 84",DATUM["World Geodetic System 1984",SPHEROID["WGS 84",6378137,298.257223563],TOWGS84[0,0,0,0,0,0,0]],PRIMEM["Greenwich",0],UNIT["grad",0.01570796326794895],AXIS["Lat",NORTH],AXIS["Lon",EAST]]'; SELECT ST_ASTEXT( ST_TRANSFORM(ST_GEOMFROMTEXT('POINT(0 0)', 1000004326), 4326) ) AS should_be_0_0; should_be_0_0 POINT(0 0) SELECT ST_ASTEXT( ST_TRANSFORM(ST_GEOMFROMTEXT('POINT(0 0)', 4326), 1000004326) ) AS should_be_0_0; should_be_0_0 POINT(0 0) SELECT ST_ASTEXT( ST_TRANSFORM(ST_GEOMFROMTEXT('POINT(100 100)', 1000004326), 4326) ) AS should_be_90_90; should_be_90_90 POINT(90 90) SELECT ST_ASTEXT( ST_TRANSFORM(ST_GEOMFROMTEXT('POINT(90 90)', 4326), 1000004326) ) AS should_be_100_100; should_be_100_100 POINT(100 100) SELECT ST_ASTEXT( ST_TRANSFORM(ST_GEOMFROMTEXT('POINT(-100 -100)', 1000004326), 4326) ) AS should_be_minus_90_minus_90; should_be_minus_90_minus_90 POINT(-90 -90) SELECT ST_ASTEXT( ST_TRANSFORM(ST_GEOMFROMTEXT('POINT(-90 -90)', 4326), 1000004326) ) AS should_be_minus_100_minus_100; should_be_minus_100_minus_100 POINT(-100 -100) DROP SPATIAL REFERENCE SYSTEM 1000004326; # Transformations between European Datum 1950 (ED50) and WGS 84. # Positions in Western Europe will be further North and East in ED50 than # in WGS 84. # Trondheim. SELECT ST_ASTEXT( ST_TRANSFORM( ST_GEOMFROMTEXT('POINT(63.426912 10.396918)', 4326), 4230 ) ) AS ED50; ED50 POINT(63.42724 10.398502) SELECT ST_ASTEXT( ST_TRANSFORM( ST_GEOMFROMTEXT('POINT(63.42724 10.398502)', 4230), 4326 ) ) AS WGS84; WGS84 POINT(63.426912 10.396918) # Telegrafenberg, Potsdam (origin of ED50). SELECT ST_ASTEXT( ST_TRANSFORM( ST_GEOMFROMTEXT('POINT(52.381389 13.064444)', 4326), 4230 ) ) AS ED50; ED50 POINT(52.382086 13.065521) SELECT ST_ASTEXT( ST_TRANSFORM( ST_GEOMFROMTEXT('POINT(52.382086 13.065521)', 4230), 4326 ) ) AS WGS84; WGS84 POINT(52.381389 13.064444) # # Transformation to/from projected SRSs. # # Verify that it isn't possible to transform to/from a projection. # Transformation between SRID 0 and geographic SRSs should fail. DO ST_TRANSFORM(ST_GEOMFROMTEXT('POINT(0 0)', 4326), 3857); ERROR 22S00: Transformation to SRID 3857 is not supported. DO ST_TRANSFORM(ST_GEOMFROMTEXT('POINT(0 0)', 3857), 4326); ERROR 22S00: Transformation from SRID 3857 is not supported.