Po studiach nad odwzorowaniem mapy zdałem sobie sprawę, że bardzo trudno jest wybrać rzut, który pozwala jednocześnie obliczyć odległości między wieloma punktami, jeśli punkty te znajdują się na całym świecie. Odwzorowalne odległości pozwalają jedynie obliczyć odległość między kilkoma punktami. Następnie zdecydowałem się użyć następującego rozwiązania. Mój zestaw danych można podzielić na mniejsze zestawy danych:
- Terytorium Stanów Zjednoczonych;
- cała EURASIA;
- terytorium obejmujące kontynent afrykański i Europę.
W ArcGIS 9.3 (licencja ArcInfo) rzutowałem każdy zestaw danych z projekcją Lambert Azimuthal Equal Area odpowiednio „wyśrodkowaną” dla każdego przypadku. Dla każdego zestawu danych załadowałem nową warstwę za pomocą pliku kształtu Tissot's Indicatrix i obliczyłem obszary każdej elipsy. Za „niezniekształcone” (pod względem powierzchni i odległości) uważałem wszystkie te terytoria, na których obszary elips nie różnią się więcej niż 5% od elipsy najbliższej środka występu i gdy kształt elipsy nie różnią się rozsądnie od okrągłego. Po zobaczeniu, że moje punkty są zamknięte na tym „niezniekształconym” terytorium, obliczyłem odległość punktową. Czy uważasz, że moja procedura była właściwie poprawna, czy masz jakieś porady na temat lepszego odwzorowania mapy dla mojego celu?
źródło
Odpowiedzi:
Jeśli zajmujesz się tylko obliczaniem odległości między dwoma punktami na powierzchni Ziemi, tak naprawdę nie musisz tego robić za pomocą map i rzutów map.
Potrzebujesz formuły do obliczania odległości geograficznych: http://en.wikipedia.org/wiki/Geographic_distance
Jeśli potrzebujesz wysokiej dokładności, poszukaj http://en.wikipedia.org/wiki/Geographical_distance#Ellipsoidal-surface_formulae
źródło
Po co próbować wyświetlać dane?
Jak wspomniano w innych odpowiedziach, istnieje matematyka do obliczania odległości w speriodie (chyba w ArcGIS też).
W PostGIS masz dwie możliwości. Użyj typu danych geograficznych, aby korzystać ze wszystkich tych funkcji (rozdział 8.3). Zwróć uwagę na funkcję ST_Distance działającą na typ geograficzny. Inną opcją jest użycie typu geometrii i użycie specjalnej funkcji ST_Distance_Sphere lub ST_Distance_Spheroid .
/ Nicklas
źródło
Sprawdź wzór Haversine . Jeśli masz trochę Google, możesz znaleźć implementacje w kilku językach (JavaScript, C #, Python ... itp.).
źródło