polardbxengine/mysql-test/suite/gis/r/st_transform.result

379 lines
19 KiB
Plaintext

#
# 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.