Wie füge ich einem Lat / Lon einen Offset hinzu, um mit PostGIS einen neuen Punkt zu erhalten?

9

Mit PostGIS habe ich einen Lat / Lon-Punkt und möchte einen Ost / West- und Nord / Süd-Versatz in Metern hinzufügen, um einen neuen Punkt zu erhalten. Ist das möglich?

Dave Jennings
quelle

Antworten:

8

Sie können ST_Translate verwenden:

Die ST_Translate-Funktion verwendet eine beliebige Geometrie (Linestring, Multiline usw.) und gibt eine neue Geometrie zurück, die die ursprüngliche Geometrie ist, die von einem durch X, Y, Z definierten Vektor verschoben wird. Beachten Sie, dass die Maßeinheiten immer in den Einheiten des Raumbezugssystems des Geometriearguments angegeben sind. Es gibt zwei Formen davon: ST_Translate. ST_Translate (Geometrie, X, Y, Z) und ST_Translate (Geometrie, X, Y).

Quelle: http://www.bostongis.com/postgis_translate.snippet

Sie müssen zuerst lat / lon in Meter umwandeln. Sie können ST_Transform verwenden, um dies zu erreichen:

ST_Transform - Gibt eine neue Geometrie zurück, deren Koordinaten in die SRID transformiert sind, auf die der Integer-Parameter verweist.

Quelle: http://postgis.net/docs/ST_Transform.html

Unterdunkel
quelle
Es ist der Lat / Lon-Meter-Teil, mit dem ich Probleme habe. Irgendwelche Vorschläge dazu?
Dave Jennings
Ich habe der Antwort die entsprechende Funktion hinzugefügt. Wenn Sie nicht wissen, welche Ziel-SRID Sie auswählen sollen, müssen Sie die geografische Ausdehnung Ihrer Daten angeben.
Underdark
Vielen Dank. Meine andere Forschung sagte mir schließlich das Gleiche. Ich dachte naiv, es könnte einfacher sein und es würde eine einzige SRID geben, die ich verwenden könnte, aber es scheint, dass Sie eine basierend auf Ihrem Standort auswählen müssen.
Dave Jennings