Asigne el valor Z al inicio y al final de la línea PostGIS

9

Tengo una tabla de líneas en mi base de datos PostGIS y una tabla con niveles invertidos para el inicio y el final de cada línea.

Mi objetivo es crear crear líneas 3D en mi tabla, a partir de mis datos invertidos. Sé que puedo usar st_makeline para recrear la línea con un punto 3D al inicio y al final, pero esperaba poder ejecutar una actualización solo en el valor Z para el inicio y el final.

¿Se puede hacer esto o es más fácil recrear la línea?

Nathan W
fuente

Respuestas:

2

-Puede actualizar un punto en una cadena lineal con ST_SetPoint (cadena lineal de geometría, posición entera de base cero, punto de geometría) y ST_Translate ().
-Para obtener el primer y último punto use st_endpoint () y st_startpoint ().
-Para obtener el "índice" del último punto, use ST_NumPoints (the_geom) -1.
-El primer punto "índice" es 0.

Algo así para el primer punto:

  UPDATE table
  SET the_geom=
st_setpoint(the_geom,0,st_translate(st_firstpoint(the_geom),0,0,Z))  
   FROM ....
Pablo
fuente