Расстояние между двумя точками

Тема в разделе "ПЕСОЧНИЦА", создана пользователем 39dotyt, 23 фев 2013.

  1. Здравствуйте. Необходимо вычислить расстояние между двумя точками, заданными в виде координат, на поверхности планеты Земля. Как это сделать правильно?

    Сейчас использую следующую формулу:
    a = qPow(qSin((lat2 - lat1) / 2), 2) + qCos(lat1) * qCos(lat2) * qPow(qSin((lon2 - lon1) / 2), 2);
    result = 6371007.2 * 2 * qAtan(qSqrt(a) * qSqrt(1 - a));

    Где lat1, lon1, lat2, lon2 заданы в радианах. Работает правильно только на небольших расстояниях.

    Стоит задача найти координату точки находящейся на линии, соединяющий две другие точки в пространстве, и находящейся на известном расстоянии от одной из них (и, соответственно, от другой :-).

    Подскажите, пожалуйста, как это сделать?

    Сейчас думаю делать так.
    Строить два прямоугольных треугольника (один катет – по широте, другой – по долготе, для каждого треугольника один из катетов соответствует искомой координате). Находить угол между вектором, соединяющим две исходные точки и вектором, соответствующим катету треугольника, находить другой угол. Зная углы и длину гипотенузы, находить катеты. Зная, на каком расстоянии от первой исходной точки, находится точка, являющаяся тупым углом треугольника и, соответственно, широта или долгота исходной точки, аналогичным образом, на втором треугольнике, находится другая хараткеристика искомой точки.

    Насколько правильное данное решение?

    Спасибо.

    UPD: Простите, только сейчас заметил песочницу. Если вопросу место там, прошу модераторов перенести.
    UPD2: сам я программист.
     
  2. В.Шуфотинский

    В.Шуфотинский Модератор Команда форума

    Давайте Вы сначала расскажете, зачем это надо, а затем, в соответствии с необходимой точностью, Вам подскажут
     
  3. Например, данный метод на расстояниях Москва→Магадан выдаёт погрешность в пару тысяч километров (проверялось с помощью карт Яндекса).

    На таких расстояниях погрешность в сотню метров была бы приемлемой.

    В пределах региона приведённая формула работает корректно.
     
  4. В.Шуфотинский

    В.Шуфотинский Модератор Команда форума

    А Вам с какой точностью и на какие расстояния надо?
     
  5. Желательно, на любые.

    Погрешность в пределах 5 процентов будет допустимой.

    Сложность реализации в данном контексте не имеет абсолютно решающего значения.

    Пренебречь геоидной формой земли допустимо, можно рассчитывать в эллипсоидальной системе координат.
     
  6. В.Шуфотинский

    В.Шуфотинский Модератор Команда форума

    Ну, 1:20 - это совсем уж не геодезическая точность и для этого не только
    но и об
    можно не вспоминать. Вполне достаточно сферы. Вы формулу длины дуги на сфере знаете? Кстати, если всё же надо точность повыше, чем Вы указали, то почитайте, что такое геодезическая линия. Будут вопросы, задавайте.


    Обнаружил ещё одну Вашу тему и их соединил. Как мне кажется так для всех будет проще.

    Вы, когда изучали сферическую геометрию (или программисты так глубоко в математику не вникают?), то Вам не говорили, что в сферическом треугольнике сумма его углов больше или меньше 180º, т.е., в любом случае, не равна 180º?
     
  7. Спасибо, что объединили.

    Но. Касательно этого вопроса. Расстояния в пределах 500 метров.

    Сферическую геометрию не изучал.
     
  8. В.Шуфотинский

    В.Шуфотинский Модератор Команда форума

    Ну, вот это другое дело. Постепенно, "подпольщик" начинает говорить. Не исключено, что ещё через некоторое время "страшная тайна":
    откроется и задача окажется простейшей, никак не сравнимой с вычислением геодезической линии на референц-эллипсоиде с точностью до миллиметров, как это показалось изначально. Даже расстояние в 500м можно определять с разной точностью.

    Посмотрите: http://geodesist.ru/forum/threads/Основы-науки-геодезии.15244/ там сумма углов в треугольнике равна 270º.
     
    39dotyt нравится это.
  9. Vladimir VV

    Vladimir VV Форумчанин

    Всегда только больше, меньше не бывает.
     
    39dotyt нравится это.
  10. В.Шуфотинский

    В.Шуфотинский Модератор Команда форума

    Да, ну!!!??? Это только геодезисты пользуются выпуклыми сферами, но есть ещё и псевдосферы, где сумма углов в треугольнике всегда меньше 180º.
     
    39dotyt нравится это.
  11. Дядя Вова

    Дядя Вова Форумчанин

    Интересно, а как называется форум у "геодезистов псевдосфер"?
     
    39dotyt нравится это.
  12. В.Шуфотинский

    В.Шуфотинский Модератор Команда форума

    У них, кстати, наверное будет псевдовысота, которой так были озабочены некоторые господа:
     
    39dotyt нравится это.
  13.  
    39dotyt нравится это.
  14. Vladimir VV

    Vladimir VV Форумчанин

    Пожалуйста приведите пример или ссылочку. Вполне допускаю возможность существования оных сфер в псевдогеодезии. Кстати, давайте тогда зарезервируем для таких случаев понятие: сферический недостаток, по аналогии со сферическим избытком.
     
    39dotyt нравится это.
  15. Vladimir VV, А это разве не вытекает из смысла неевклидовой геометрии, где поверхность постоянной кривизны отрицательная?
     
    39dotyt нравится это.
  16. В.Шуфотинский

    В.Шуфотинский Модератор Команда форума

    Конечно. У них сумма углов в треугольнике может быть равна 0º.

    http://ru.wikipedia.org/wiki/Псевдосфера
    http://www.rae.ru/monographs/102-3552
     
    39dotyt нравится это.
  17. Vladimir VV

    Vladimir VV Форумчанин

    Пожалуйста по-подробнее, что вы понимаете под поверхностью с постоянной отрицательной кривизной?
     
    39dotyt нравится это.
  18. −1/R² не?
     
    39dotyt нравится это.
  19. stout

    stout Форумчанин

    2 39dotyt,
    Кошерная библиотека для решения вашей задачи находится по адресу: GeographicLib .
    Там же ссылки на теорию. На всякий случай повторю их.
    http://link.springer.com/article/10.1007/s00190-012-0578-z
    http://arxiv.org/pdf/1102.1215v1.pdf
    На страничках GPS-ToolBox есть
    C++ and Java Code for Geodesic and Meridian Arc Computations -- by Klaus Hehl
    Чуть попроще, чуть-чуть медленнее (что совершенно незаметно на практике) чем GeographicLib.
    Это некорректное сравнение. В высшей степени некорректное.

    З.Ы. Исходную формулу гаверсинуса (сферическая тригонометрия в чистом виде) можно существенно уточнить, применив теорию Гаусса конформного отображения эллипсоида на шар.
    На участке 10°х10° ошибка вычисления длины не превосходит 5 мм.
    В сети есть статья Mercedes Bermejo-Solera и Jesús Otero "Global optimization of the Gauss conformal mappings of an ellipsoid to a sphere"
     
    Lex K-G и 39dotyt нравится это.
  20. stout, огромное спасибо.
     
  1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление
  1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление