У меня есть два набора широты и долготы.
Как мне найти расстояние между двумя точками, если я предполагаю, что Земля является идеальным эллипсоидом (с эксцентриситетом 0,0167)?
У меня есть два набора широты и долготы.
Как мне найти расстояние между двумя точками, если я предполагаю, что Земля является идеальным эллипсоидом (с эксцентриситетом 0,0167)?
Ответы:
Я бы порекомендовал проверить:
Сферический: http://www.movable-type.co.uk/scripts/latlong.html
Великий круг: http://www.movable-type.co.uk/scripts/gis-faq -5.1.html
Итак, вы знаете свои две широты и долготы, скажем
Вы можете рассчитать декартовы координаты для каждого:
xa = (Cos(thisLat)) * (Cos(thisLong));
ya = (Cos(thisLat)) * (Sin(thisLong));
za = (Sin(thisLat));
xb = (Cos(otherLat)) * (Cos(otherLong));
yb = (Cos(otherLat)) * (Sin(otherLong));
zb = (Sin(otherLat));
А затем вычислите расстояние между двумя кругами, используя:
MeanRadius * Acos(xa * xb + ya * yb + za * zb);
Этот упрощенный подход позволяет предварительно рассчитать значения x, y и z, которые могут быть сохранены вместе в базе данных для эффективных запросов «точки в x милях».
Конечно, это предполагает идеальную сферу, а Земля даже не является идеальным элипсоидом, поэтому точность будет всего несколько метров.
На странице калькулятора координат GPS и инструментов для определения расстояния есть несколько полезных инструментов . Один из них вычисляет расстояние между двумя точками. Он имеет возможность рисовать точки на карте с изображением Большого круга, а также возможность нарисовать профиль и экспортировать данные.