Как рассчитать расстояние между 2 местами - PullRequest
1 голос
/ 20 июля 2010

Меня спросили, могу ли я создать такой сайт:

Мне любопытно, как я смогу рассчитать расстояние между местами. Например, если бы я должен был ввести долларовую купюру в системной форме Миннеаполиса, а затем этот счет был введен другим пользователем в Лос-Анджелесе, как бы я рассчитал, сколько это миль?

Я немного посмотрел на API карт Google, но ничего не понял в расчете расстояния.

Ответы [ 5 ]

1 голос
/ 23 июля 2010

Wai Yip Tung идеально подходит для расчета «по прямой линии». Однако, если вы хотите узнать расстояние с помощью ходьбы или вождения, используйте Google Directions API - http://code.google.com/apis/maps/documentation/directions/

1 голос
/ 23 июля 2010

Google Map API имеет функцию для поиска этого.

GLatLng.distanceFrom()
1 голос
/ 20 июля 2010

Вот объяснение с формулами: http://en.wikipedia.org/wiki/Great-circle_distance.

1 голос
/ 21 июля 2010

То, что вы хотите, - это реализация JavaScript формулы Винсенти для расстояния между двумя точками широты / долготы.

См. http://www.movable -type.co.uk / scripts / latlong-vincenty.html

Это довольно просто реализовать в Google Картах, если вам нужноto, принимая в качестве параметров две координаты LatLng.

Например, чтобы получить расстояние между двумя последними точками, на которые щелкнули карту:

// requires distVincenty method from www.movable-type.co.uk/scripts/latlong-vincenty.html
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
lastClickLatLng = false;
google.maps.event.addListener(map, 'click', function (event) {
    if (lastClickLatLng) {
        var myDistance = distVincenty(lastClickLatLng.lat(), lastClickLatLng.lng(), event.latLng.lat(), event.latLng.lng());
        // Do something with myDistance!
    }
    lastClickLatLng = event.latLng;
});
1 голос
/ 20 июля 2010

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

...