Mehr

Wie erstelle ich ein Polygon aus einem gepufferten Punkt?

Wie erstelle ich ein Polygon aus einem gepufferten Punkt?


Ich habe einen Punkt und pufferte ihn mit st_buffer. Wie erstelle ich eine Polygongeometrie aus diesem gepufferten Punkt? Das Ergebnis von st_buffer ist das Polygon, das ich für die zukünftige Verwendung speichern muss.

Ich platziere die neue Geometrie in der Geometriespalte einer vorhandenen Tabelle (die speziell für diesen Zweck erstellt wurde) und verwende die ID des Punkts als Fremdschlüssel, um ihn wieder mit dem ursprünglichen Punkt zu verknüpfen. Möglicherweise gibt es für jeden Punkt mehrere Puffer, sodass die Punkt-ID nicht die Zeilen-PK ist.

Die Zieltabelle sieht ungefähr so ​​​​aus…

CREATE TABLE geom_buffered_pts ( oid bigserial NOT NULL, point_id bigserial NOT NULL, geom Geometrie, CONSTRAINT geom_buffered_pts_pk PRIMARY KEY (oid) )

Einfachster Weg:

CREATE TABLE geom_buffered_pts AS ( SELECT point_id, ST_Buffer(geom, 100) FROM table )

Dann können Sie Ihre OID bigserial, Constraints und Fremdschlüssel später explizit hinzufügen. Sie können natürlich mit dem fortfahren, was Sie haben, und einfach eine Update-Abfrage verwenden, mitSET geom = ST_Buffer(geom, 100)um die Geometrie mit den gepufferten Punkten zu aktualisieren, oder mit AUSWÄHLEN IN. (Beachten Sie, dass ich den Wert 100 nur zur Veranschaulichung verwendet habe und Sie sicherstellen möchten, dass Ihre Daten projiziert werden).


Schau das Video: Geogebra - drej polygon om punkt efter bestemt vinkel