Рассчитать расстояние с помощью карты Google с учетом широты и долготы - PullRequest
3 голосов
/ 30 ноября 2010

Я разрабатываю настольное приложение, и у меня есть две точки (широта, долгота). Как я могу получить расстояние между этими двумя точками? Я посмотрел на API, и большинство из них на основе JavaScript или веб-интерфейс. Я не занимаюсь разработкой веб-страницы. Как я могу сделать это в Java?

Я хочу проехать на дороге, а не на прямом расстоянии

Ответы [ 3 ]

7 голосов
/ 30 ноября 2010

Если у вас есть широта и долгота, вы можете использовать формулу Haversine для вычисления расстояния между ними - при условии, что вы хотите расстояние по прямой линии.

EDIT: Okay, теперь вы на самом деле сказали нам, что вы хотите, я подозреваю, что вам нужно использовать Directions API .Вам нужно будет сделать веб-запрос к соответствующему URL-адресу с вашими параметрами, указав вывод XML или JSON, который затем нужно будет проанализировать.

Обратите внимание, что "JSON"! = "На основе Javascript».Думайте о JSON как о формате сериализации данных, который является исполняемым Javascript.

0 голосов
/ 01 декабря 2010

Этот код расстояния большого круга выше, вероятно, подходит для большинства приложений. Однако если вам нужна большая точность, имейте в виду, что в некоторых крайних случаях она может потерпеть неудачу из-за того, что Земля не является идеальной сферой. В этом случае вы говорите о более сложных алгоритмах.

0 голосов
/ 30 ноября 2010

Быстрый Google дал мне это: http://www.postalcodeworld.com/samples/distance.java.html Похоже, это довольно хорошая реализация того, что вам нужно, используя формулу Haversine.

...