Chapter 8. Tipos temporales geométricos (Parte 2)

Table of Contents

Sistema de referencia espacial
Operaciones de cuadro delimitador
Operaciones de distancia
Relaciones espaciales
Relaciones espaciales alguna vez o siempre
Relaciones espaciales temporales

Sistema de referencia espacial

  • Devuelve o establece el identificador de referencia espacial

    SRID(tgeo) → integer

    setSRID(tgeo) → tgeo

    SELECT SRID(tgeompoint 'Point(0 0)@2001-01-01');
    -- 0
    SELECT asEWKT(setSRID(tgeompoint '[Point(0 0)@2001-01-01, Point(1 1)@2001-01-02)', 4326));
    -- SRID=4326;[POINT(0 0)@2001-01-01 00:00:00+00, POINT(1 1)@2001-01-02 00:00:00+00)
    
  • Transformar a una referencia espacial diferente

    transform(tgeo,to_srid integer) → tgeo

    transformPipeline(tgeo,pipeline text,to_srid integer,is_forward bool=true) → tgeo

    La función transform especifica la transformación con un SRID de destino. Se genera un error cuando el punto temporal 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:

    urn:ogc:def:coordinateOperation:AUTHORITY::CODE

    El SRID del punto temporal de entrada se ignora y el SRID del punto temporal 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 asEWKT(transform(tgeompoint 'SRID=4326;Point(4.35 50.85)@2001-01-01', 3812));
    -- SRID=3812;POINT(648679.018035303 671067.055638114)@2001-01-01 00:00:00+00
    
    WITH test(tpoint, pipeline) AS (
      SELECT tgeogpoint 'SRID=4326;{Point(4.3525 50.846667 100.0)@2001-01-01,
        Point(-0.1275 51.507222 100.0)@2001-01-02}',
        text 'urn:ogc:def:coordinateOperation:EPSG::16031' )
    SELECT asEWKT(transformPipeline(transformPipeline(tpoint, pipeline, 4326),
      pipeline, 4326, false), 6)
    FROM test;
    /* SRID=4326;{POINT Z (4.3525 50.846667 100)@2001-01-01,
       POINT Z (-0.1275 51.507222 100)@2001-01-02} */