Weisen Sie dem Anfang und dem Ende der PostGIS-Zeile den Z-Wert zu

9

Ich habe eine Zeilentabelle in meiner PostGIS-Datenbank und eine Tabelle mit Invertierungsstufen für den Anfang und das Ende jeder Zeile.

Mein Ziel ist es, aus meinen invertierten Daten 3D-Linien in meiner Tabelle zu erstellen. Ich weiß, dass ich st_makeline verwenden kann, um die Linie mit einem 3D-Punkt am Anfang und Ende neu zu erstellen, aber ich hatte gehofft, ein Update nur für den Z-Wert für Anfang und Ende ausführen zu können.

Kann dies getan werden oder ist es einfacher, die Linie einfach neu zu erstellen?

Nathan W.
quelle

Antworten:

2

-Sie können einen Punkt in einem Linienstring mit ST_SetPoint (Geometrie-Linienstring, ganzzahlige Nullbasisposition, Geometriepunkt) und ST_Translate () aktualisieren.
- Um den ersten und letzten Punkt zu erhalten, verwenden Sie st_endpoint () und st_startpoint ().
- Um den "Index" des letzten Punktes zu erhalten, verwenden Sie ST_NumPoints (the_geom) -1.
-Der erste Punkt "Index" ist 0.

So etwas für den ersten Punkt:

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