Я использую оверлей Circle как часть V3 API Google Maps Javascript (т. Е. См. Ниже - у нас есть последующий вызов, который фактически устанавливает радиус и т. Д.) Для отображения пространственных местоположений в нашем приложении.
var circle = new google.maps.Circle({
fillColor: lCircleColor,
strokeWeight: 2
});
У нас также есть фоновый серверный процесс, который вычисляет расстояния между точками от центра круга, чтобы определить, находятся ли точки внутри или снаружи круга - когда точки попадают внутрь, мы поднимаем тревогу.Недавно у нас был один конкретный случай, когда точка (широта = 31,197163, долгота = -83,87292) падает прямо на границе круга (широта = 31,1998, долгота = -83,8738, радиус = 1000 футов).
При использовании формулы Хаверсайна для расчета расстояния рассчитанное расстояние больше радиуса, тогда как у Винсенти (точнее) расстояние меньше радиуса, в результате чего внутренний процесс генерирует сигнал тревоги о том, что точка попадает в местоположение.
Мой вопрос связан с тем, как на Картах Google отображается наложение круга.Когда мы видим его в нашем приложении, оно, кажется, выпадает за пределы круга (видно только в увеличенном масштабе).В другом месте я читал, что для расчета расстояния API-интерфейсы Google используют алгоритм Винсенти, но для отображения их наложения они принимают сферическую форму (и, таким образом, возможно, объясняют, почему точка кажется выпадающей из круга)?