Я использую формулу Хаверсина, чтобы найти расстояние по большому кругу в своей работе, но я хочу знать самую точную формулу для небольшого расстояния, например, всего 10 метров.
Какой из них лучше всего подходит для небольших расстояний, таких как 10-метровый гаверсинус или закон косинусов?
Ответы (2)
Продолжайте использовать формулу гаверсинуса. Известно, что [сферический] закон формулы косинусов неточен на малых расстояниях. См. https://en.wikipedia.org/wiki/Great-circle_distance.. , также этот вопрос SO: Возврат запроса MySQL WordPress нулевое расстояние для некоторых записей
Есть пара альтернативных вариантов.
Один из них - преобразовать точки из геодезической в декартову систему координат, а затем использовать евклидово расстояние в пространстве. Относительная ошибка из-за кривизны составляет около 10^-9 для расстояний менее 1 км и 10^-3 для расстояний менее 1000 км.
Другой вариант — спроецировать местоположения на плоскость, касательную к поверхности Земли, а затем вычислить евклидово расстояние на плоскости. Но это решение не будет работать вблизи полюсов, и следует проявлять дополнительную осторожность на 180-м меридиане. Тщательная реализация для эллипсоида может использовать только одно вычисление синуса и одно вычисление квадратного корня помимо арифметических операций и потенциально может быть быстрее, чем формула Хаверсина для сферического датума, в то же время будучи намного более точной.