Tetapkan nilai Z untuk memulai & mengakhiri baris PostGIS

9

Saya memiliki tabel garis dalam database PostGIS saya dan tabel dengan level terbalik untuk awal dan akhir setiap baris.

Tujuan saya adalah membuat garis 3D di tabel saya, dari data invert saya. Saya tahu saya bisa menggunakan st_makeline untuk membuat ulang garis dengan titik 3D di awal dan akhir, tetapi saya berharap dapat menjalankan pembaruan hanya pada nilai Z untuk awal dan akhir.

Apakah ini dapat dilakukan atau lebih mudah untuk hanya membuat ulang garis.

Nathan W
sumber

Jawaban:

2

-Anda dapat memperbarui titik dalam linestring dengan ST_SetPoint (geometri linestring, integer zerobasedposition, titik geometri) dan ST_Translate ().
-Untuk mendapatkan titik pertama dan terakhir gunakan st_endpoint () dan st_startpoint ().
-Untuk mendapatkan "indeks" dari titik terakhir gunakan ST_NumPoints (the_geom) -1.
-Titik pertama "indeks" adalah 0.

Sesuatu seperti itu untuk poin pertama:

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