Я прочитал this question и реализовал принятый ответ в Python (см. Ниже). Он работает в принципе, но результаты постоянно примерно на 30% выше, чем ожидалось (Чешская Республика) - это ожидаемая точность этого алгоритма?Как вычислить расстояние двух географических координат?
Для проверки алгоритма я использовал BoundingBox, чтобы получить рамку с известным диагональным расстоянием (здание, два города) и использовать выходные координаты в качестве входных данных для «моего» алгоритма.
Где проблема?
- моя реализация?
- Сам алгоритм?
- Python?
- тестирование?
Моя реализация:
R= 6371 #km
dLat = math.radians(lat2-lat1)
dLon = math.radians(lon2-lon1)
lat1 = math.radians(lat1)
lat2 = math.radians(lat2)
a= math.sin(dLat/2)*math.sin(dLat/2) + math.sin(dLon/2) * math.sin(dLon/2) * math.cos(lat1) * math.cos(lat2)
c= 2 * math.atan2(math.sqrt(a), math.sqrt(1-a))
d = R * c;
return d
Почему вы опубликовали новый вопрос? http://stackoverflow.com/questions/17134437/how-to-calculate-distance-between-two-geographic-coordinates –
@AshwiniChaudhary Это должно было быть единственное. Первый из них был отправлен ошибочно нажатой клавишей, когда он еще не был написан. – Lukas
Вы всегда можете отредактировать свой вопрос - или удалить его, как вы это сделали. Вы даже можете удалить вопрос, пока вы исправляете преждевременную публикацию, а затем удаляете его. (По крайней мере, я полагаю, вы можете, вы можете сделать это для ответов наверняка.) –