Яке правильне рішення (та проекція карти) для обчислення відстаней між точками, розташованими по всьому світу?


11

Після свого вивчення проекції на карті я зрозумів, що дуже важко вибрати проекцію, яка дозволяє одночасно обчислити відстані між великою кількістю точок, якщо ці точки розташовані по всьому світу. Рівновіддалені проекції дозволяють обчислити лише відстань між парою точок. Тоді я вирішив скористатися наступним рішенням. Мій набір даних можна розділити на менші набори даних:

  1. Територія Сполучених Штатів;
  2. вся EURASIA;
  3. територія, що охоплює африканський континент та Європу.

У ArcGIS 9.3 (ліцензія ArcInfo) я спроектував кожен набір даних із проекцією рівних площ Ламберта Азімуталя, «належним чином« центрованим »для кожного випадку. Для кожного набору даних я завантажив новий шар із файлом форми Tissot's Indicatrix та обчислив області кожного еліпса. Я вважав "не спотвореним" (що стосується площі та відстаней) всі ті території, над якими області еліпсів не відрізняються більше ніж на 5% від найближчого до центру проекції еліпса та коли форма еліпсів не розумно відрізняються від кругового. Побачивши, що мої бали були укладені на цій "не спотвореній" території, я обчислив точкову відстань. Чи вважаєте ви, що моя процедура була достатньо правильною чи маєте поради щодо кращої проекції карти для моєї мети?


1
Велике спасибі за корисні відповіді! Я знайшов пакет SDMTools, що працює під "R", для того, щоб легко обчислити відстані, використовуючи формулу Vincenty
e-falcon

Відповіді:


10

Якщо ви тільки займаєтеся обчисленням відстані між двома точками на поверхні Землі, вам не потрібно це опрацьовувати за допомогою карт та проекцій карт.

Вам потрібна формула для обчислення географічних відстаней: http://en.wikipedia.org/wiki/Geographic_distance

Якщо вам потрібна висока точність, шукайте http://en.wikipedia.org/wiki/Geographic_distance#Ellipsoidal-surface_formulae


6

Чому намагаються спроектувати дані?

Як згадується в інших відповідях, є математика для обчислення відстаней на сперідо (я думаю, є і в ArcGIS).

У PostGIS у вас є два варіанти. Використовуйте тип даних географії, і ви можете використовувати всі ці функції (глава 8.3). Зверніть увагу на функцію ST_Distance, що працює проти типу географії. Інший ваш варіант - використовувати тип геометрії та використовувати спеціальну функцію ST_Distance_Sphere або ST_Distance_Spheroid .

/ Ніклас


4

Ознайомтеся з формулою Гаверсіна . Якщо у вас є довкола Google, ви можете знайти реалізацію на декількох мовах (Javascript, C #, Python ... тощо).


1
Дивіться на цьому веб-сайті gis.stackexchange.com/q/4906/664 для отримання коду та детального аналізу цієї формули.
whuber
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.