Attribuer une valeur Z au début et à la fin de la ligne PostGIS

9

J'ai une table de lignes dans ma base de données PostGIS et une table avec des niveaux inversés pour le début et la fin de chaque ligne.

Mon objectif est de créer des lignes 3D dans ma table, à partir de mes données inversées. Je sais que je peux utiliser st_makeline pour recréer la ligne avec un point 3D au début et à la fin, mais j'espérais pouvoir exécuter une mise à jour uniquement sur la valeur Z pour le début et la fin.

Cela peut-il être fait ou est-il plus facile de simplement recréer la ligne.

Nathan W
la source

Réponses:

2

-Vous pouvez mettre à jour un point dans une chaîne de lignes avec ST_SetPoint (chaîne de géométrie, position zéro à base entière, point de géométrie) et ST_Translate ().
-Pour obtenir le premier et le dernier point, utilisez st_endpoint () et st_startpoint ().
-Pour obtenir l '"index" du dernier point, utilisez ST_NumPoints (the_geom) -1.
-Le premier point "index" est 0.

Quelque chose comme ça pour le premier point:

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