Jak dodać przesunięcie do lat / lon, aby uzyskać nowy punkt za pomocą PostGIS

9

Korzystając z PostGIS, mam punkt szerokości geograficznej i chcę dodać przesunięcie wschód / zachód i północ / południe w metrach, aby uzyskać nowy punkt. Czy to jest możliwe?

Dave Jennings
źródło

Odpowiedzi:

8

Możesz użyć ST_Translate:

Funkcja ST_Translate przyjmuje dowolną geometrię (linie, multilinię itp.) Zwraca nową geometrię, która jest oryginalną geometrią poruszaną przez wektor zdefiniowany przez X, Y, Z. Zauważ, że jednostki miary są zawsze w jednostkach przestrzennego układu odniesienia argumentu geometrii. Istnieją dwie formy ST_Translate. ST_Translate (geometria, X, Y, Z) i ST_Translate (geometria, X, Y).

Źródło: http://www.bostongis.com/postgis_translate.snippet

Najpierw musisz przekształcić lat / lon na metry. Aby to osiągnąć, możesz użyć ST_Transform:

ST_Transform - Zwraca nową geometrię ze współrzędnymi przekształconymi na SRID, do którego odwołuje się parametr liczby całkowitej.

Źródło: http://postgis.net/docs/ST_Transform.html

podmrok
źródło
Mam problem z częścią długości / długości do metrów. Jakieś sugestie na ten temat?
Dave Jennings,
Do odpowiedzi dodałem odpowiednią funkcję. Jeśli nie wiesz, który docelowy SRID wybrać, musisz określić zasięg geograficzny swoich danych.
podmroku
Dzięki. Moje inne badania w końcu powiedziały mi to samo. Naiwnie pomyślałem, że może to być prostsze i będzie jeden SRID, którego mógłbym użyć, ale wydaje się, że musisz wybrać jeden na podstawie swojej lokalizacji.
Dave Jennings,