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?

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


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,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.