Еще раз спасибо! Всё заработало, но - работает не на всем пространстве Земли почему-то. Не могли бы Вы посмотреть, что даёт Ваша функция для следующих данных: Точка 1: широта 57.873058, долгота 27.918778 Точка 2: широта 53,677778, долгота 75,706944
Моя трансляция описанных выше по теме функций здесь дает какое-то ошибочное расстояние в 5206 километра. Референсное расстояние по сфере 2963 километра.
Так же прикладываю табличку, наглядно демонстрирующую, как с определенного расстояния моя трансляция Вашей функции начинает давать что-то непонятное. В этой табличке даны: Широта и Долгота точки2 (точка 1 не меняется), референсное расстояние по сфере, рассчитанное функцией ReverseGeoTask расстояние, разница с референсным, рассчитанный азимут. Я просто последовательно увеличиваю долготу на 2 градуса - т.е. по идее азимут должен плавно уменьшаться. А расстояние поначалу плавно уменьшаться, а потом плавно увеличиваться. Видно, что это работает до определенного момента
Да, так стало лучше. Но где-то всё-равно чего-то не хватает. Возможно, у меня - поэтому и прошу проверить, какие данные дает Ваша реализация для "ошибочных" точек. К примеру, беру такие точки: Точка 1: широта 57.873058, долгота 27.918778 Точка 2: широта 28,918922, долгота -13,783472
Расчет дает 4064 км и азимут 142 на вторую точку. А референс (да и карты) дают 4536 км и 243 градуса. Или вот иллюстрация - у обеих точек ставлю широту 10 градусов и долготу 0 градусов. Начинаю двигать вторую точку по долготе, получается что при нахождении обеих точек на широте 10, с разницей по долготе 180 градусов - имеем расстояние 19735 км и азимут 90, чего по идее не может быть - есть ведь более короткий путь (азимут).
P.S. Извините, что беспокою - делаю программу для своего хобби, радиоприема.
Тоже возникла потребность в расчетах без открытого HMAP. Может есть смысл в АПИ добавить функции расчетов расстояний и прочего для HUSER, например. Велосипедостроительством заниматься очень не хочется..
Расчет расстояния - это сложная функция. Она строит ортодромию для больших расстояний с учетом эллипсоида карты, затем каждый отрезок трансформирует в свою проекцию и считает длины. HMAP можно получить для временной карты и служебного классификатора (service.rsc).
Спасибо за ответ Но ведь все необходимые параметры для расчета вроде в HUSER есть.. Задача посчитать расстояние не для какой-то произвольной системы, а для общепринятых. Проще говоря, по epsg коду получил параметры - рассчитал расстояние. Ведь преобразование координат для huser реализовано. Понятно, что можно создать временную карты по параметрам полученным по epsg коду, но не хотелось лишних действий выполнять.