Сферическое расстояние между двумя точками на Земле

Я пытаюсь найти расстояние между двумя точками на Земле. Но все, что я знаю, это их диапазон широты и долготы (обе точки лежат в этом диапазоне) и координаты x и y на карте США. Я использую данные с этого веб-сайта http://www.dis.uniroma1.it/challenge9/download.shtml

Я просмотрел некоторые формулы для вычисления сферического расстояния, но они, похоже, используют широту и долготу для каждой точки. Как я могу получить широту и долготу для каждой точки из этих данных?


person a_123    schedule 02.04.2016    source источник
comment
что вы имеете в виду под координатами x-y? те, которые находятся в проекции Меркатора, или мировые координаты   -  person    schedule 03.04.2016
comment
Я не уверена. Можете ли вы взглянуть на этот веб-сайт и узнать, какие это?   -  person a_123    schedule 03.04.2016
comment
Я бы хотел, чтобы они были долгими и долгими координатами. Но они говорят, что это координаты X-Y. dis.uniroma1.it/challenge9/format.shtml#coord   -  person a_123    schedule 03.04.2016
comment
ой, прости меня плохо. IHDK, но фраза координаты X-Y в плоскости, связанной с узлами графа, кажется своего рода проекцией из мира в 2D (вероятности Меркатора). вы хотите получить ответы по обоим случаям? тогда вы могли бы попробовать оба и посмотреть, какой из них работает   -  person    schedule 03.04.2016
comment
Ага. Я хотел бы получить ответы по обоим случаям. Спасибо.   -  person a_123    schedule 03.04.2016
comment
снова упс: я совершенно забыл, что вам также нужен Z-компонент; и чтобы ограничить вашу координатную плоскость сферической поверхностью, в любом случае потребуется криволинейная система координат (как в Меркаторе) ... (~ _ ~) Я просто сделаю это тогда ...   -  person    schedule 03.04.2016


Ответы (1)


Предполагая проекцию Меркатора, преобразуйте X-Y в широту и долготу.


X до долготы:

введите описание изображения здесь

Важно понимать, что проектируемая длина C, C 'одинакова независимо от широты (тета), причем экватор имеет одинаковую длину C = C', но также за исключением полюсов, которые являются координатными особенностями. (По сути, длинный способ объяснить проекцию сферической формы на цилиндрическую). Поэтому мы используем линейную интерполяцию.

введите описание изображения здесь


Y до широты:

введите описание изображения здесь  введите описание изображения здесь

Обратите внимание, что формула не работает напрямую для отрицательных координат Y; вместо этого вычислите широту для положительного значения Y и возьмите его отрицательное.

(И игнорируйте x на двух диаграммах выше; они y - O_o)

person Community    schedule 02.04.2016
comment
Спасибо за ваши усилия! Я этого не понимаю, поэтому буду доверять вам и воспользуюсь этим :) - person a_123; 03.04.2016
comment
@ s_123 надеюсь, что это сработает. и, о да, углы указаны в радианах, поэтому вам нужно преобразовать их в градусы. а у вас есть формула для расчета расстояния от широты до длинных углов? - person ; 03.04.2016
comment
Думаю, я бы использовал формулу Хаверсина. Есть ли у вас какая-либо другая формула, которая проще / эффективнее с точки зрения вычислений? - person a_123; 03.04.2016
comment
@ s_123 ах, хорошо, я раньше не слышал об этом методе. Я думал о какой-то векторной формуле, но, видимо, все так часто используют гаверсин (¬_¬) для моей бессвязной бессвязности. - person ; 03.04.2016
comment
@ s_123 update: ой, я неверно истолковал определение цилиндрической проекции Меркатора; переработал формулу для вас - person ; 03.04.2016
comment
Без проблем. Спасибо :) - person a_123; 03.04.2016