Próbuję utworzyć mapę z danymi wskazującymi niektóre loty i chcę użyć Great Circle Arcs, aby połączyć źródło i cele podróży.
Zasadniczo chcę zrobić coś podobnego do słynnej mapy na Facebooku:
Korzystałem z funkcji podanych w tym poście: https://gis.stackexchange.com/a/5205/442 , (tj. W tym artykule na blogu: http://anitagraser.com/2011/08/20/visualizing-global-connections / ) i mogłem uzyskać linie, ale przecinają one międzynarodową linię daty, a także grupują się na biegunach:
@underdark, w linkowanym blogu wspomniał, że linie te muszą zostać podzielone, ale nie wiem, jak je automatycznie podzielić w PostGIS.
Ponadto należy również rozwiązać wiązanie linii w pobliżu biegunów.
Jak to zrobić, gdy mam lokalizacje punktów na początek i koniec tych lotów?
źródło
Odpowiedzi:
Zasady zawarte w tym blogu przenoszą się na PostGIS ogólnego przeznaczenia.
http://blog.cartodb.com/jets-and-datelines/
Zasadniczo użyj
ST_Segmentize
geografii i odrobiny magii, aby pokroić linie przecięcia daty.źródło
Możesz obliczyć geodezję. Mówiąc, że chcesz pokazać geodezję od A do B, możesz najpierw obliczyć odległość i azymut od A do B (odwrotny problem geodezyjny), a następnie obliczyć punkty od A do kilku punktów między A i B (bezpośredni problem geodezyjny). Dodałem prosty skrypt w Pythonie, używając GeographicLib, po prostu wypisując rzeczy w GeoJSON:
Wynikiem jest prawdziwa geodezyjność między punktami w WGS-84. Oczywiście możesz następnie przekształcić współrzędne na dowolną potrzebną projekcję. Wynik wizualizowany na geojson.io wygląda następująco:
źródło