Devuelve el identificador de referencia espacial
SRID(geoset) → integer
SELECT SRID(geoset 'STBOX ZT(((1.0,2.0,3.0),(4.0,5.0,6.0)),[2001-01-01,2001-01-02])'); -- 0 SELECT SRID(geoset 'SRID=5676;STBOX XT(((1.0,2.0),(4.0,5.0)),[2001-01-01,2001-01-02])'); -- 5676 SELECT SRID(geoset 'GEODSTBOX T([2001-01-01,2001-01-02))'); -- ERROR: The box must have space dimension
Especificar el identificador de referencia espacial
setSRID(geoset) → geoset
SELECT setSRID(stbox 'STBOX ZT(((1.0,2.0,3.0),(4.0,5.0,6.0)), [2001-01-01,2001-01-02])', 5676); -- SRID=5676;STBOX ZT(((1,2,3),(4,5,6)),[2001-01-01,2001-01-02])
Transformar a una referencia espacial diferente
transform(geoset,to_srid integer) → geoset
transform(geoset,pipeline text,to_srid integer,is_forward bool=true) → geoset
La función transform
especifica la transformación con un SRID de destino. Se genera un error cuando el conjunto tiene un SRID desconocido (representado por 0).
La función transformPipeline
especifica la transformación con una canalización de transformación de coordenadas definida representada con el siguiente formato de cadena: urn:ogc:def:coordinateOperation:AUTHORITY::CODE
. El SRID del conjunto de entrada se ignora y el SRID de la conjunto de salida se establecerá en cero a menos que se proporcione un valor a través del parámetro opcional to_srid
. Como se indica en el último parámetro, la canalización se ejecuta de forma predeterminada en dirección hacia adelante; al establecer el parámetro en falso, la canalización se ejecuta en la dirección inversa.
SELECT round(transform(stbox 'SRID=4326;STBOX XT(((2.340088, 49.400250), (6.575317, 51.553167)),[2001-01-01,2001-01-02])', 3812), 6); /* SRID=3812;STBOX XT(((502773.429981,511805.120402),(803028.908265,751590.742629)), [2001-01-01, 2001-01-02]) */
WITH test(geoset, pipeline) AS ( SELECT geogset 'SRID=4326;{"Point(4.3525 50.846667 100.0)", "Point(-0.1275 51.507222 100.0)"}', text 'urn:ogc:def:coordinateOperation:EPSG::16031' ) SELECT asEWKT(transformPipeline(transformPipeline(geoset, pipeline, 4326), pipeline, 4326, false), 6) FROM test; -- SRID=4326;{"POINT Z (4.3525 50.846667 100)", "POINT Z (-0.1275 51.507222 100)"}