Come faccio ad aggiungere un offset a un lat / lon per ottenere un nuovo punto usando PostGIS


9

Usando PostGIS ho un punto lat / lon e voglio aggiungere un offset est / ovest e nord / sud in metri per ottenere un nuovo punto. È possibile?

Risposte:


8

Puoi usare ST_Translate:

La funzione ST_Translate accetta qualsiasi geometria (linestring, multilinea ecc.) Restituisce una nuova geometria che è la geometria originale spostata da un vettore definito da X, Y, Z. Si noti che le unità di misura sono sempre nelle unità del sistema di riferimento spaziale dell'argomento della geometria. Esistono due forme di ST_Translate. ST_Translate (geometria, X, Y, Z) e ST_Translate (geometria, X, Y).

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

Dovrai prima trasformare lat / lon in metri. Puoi utilizzare ST_Transform per raggiungere questo obiettivo:

ST_Transform - Restituisce una nuova geometria con le sue coordinate trasformate in SRID a cui fa riferimento il parametro intero.

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


È la parte lat / lon a metri con cui ho problemi. Qualche suggerimento al riguardo?
Dave Jennings,

Ho aggiunto la funzione corrispondente alla risposta. Se non sai quale SRID target scegliere, dovrai indicare l'estensione geografica dei tuoi dati.
underdark

Grazie. Altre mie ricerche alla fine mi hanno detto la stessa cosa. Ho ingenuamente pensato che potrebbe essere più semplice e che ci sarebbe un singolo SRID che potrei usare, ma sembra che devi sceglierne uno in base alla tua posizione.
Dave Jennings,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.