2013-07-23 3 views
0

Используя карту google, вы можете получить различные возможные маршруты между двумя адресами, а также получить длину каждого возможного маршрута.Самый короткий путь между двумя адресами

enter image description here Я сейчас работаю на сайте с google map, я хочу рассчитать кратчайший путь между двумя разными адресами, такими же, как и карта google. затем верните длину пути как переменную javascript.

+0

Вы можете получить альтернативные маршруты с Google Maps API v3 DirectionsService. Каждый маршрут включает в себя его расстояние и продолжительность. [Руководство для разработчиков] (https://developers.google.com/maps/documentation/javascript/directions) - [Справочник DirectionsService] (https://developers.google.com/maps/documentation/javascript/reference#DirectionsRequest), см. обеспечение RouteAlternatives - должны ли предоставляться альтернативы маршрута. Необязательный. – geocodezip

ответ

0

я нашел его, он может быть вычислен с помощью Google Map API под названием Distance Matrix он возвращает ответ JSON, содержащий The recommended path's length и Duration.

{ 
"destination_addresses" : [ "Témara, Maroc" ], 
"origin_addresses" : [ "Rabat, Maroc" ], 
"rows" : [ 
    { 
    "elements" : [ 
     { 
      "distance" : { 
       "text" : "13,6 km", 
       "value" : 13620 
      }, 
      "duration" : { 
       "text" : "23 minutes", 
       "value" : 1358 
      }, 
      "status" : "OK" 
     } 
    ] 
    } 
], 
"status" : "OK" 
} 

Это должно работать нормально:

function getDistance() 
{ 
var url="http://maps.googleapis.com/maps/api/distancematrix/json?origins=rabat&destinations=temara&mode=driving&language=fr-FR&sensor=false"; 
var def = new jQuery.Deferred(); 
$.getJSON(url,function(json) 
{ 
if (json.status=="OK") 
{ 
var distance=json.rows[0].elements[0].distance.text; 
} 
def.resolve(distance); 
}); 
return def.promise(); 
} 

$.when(getDistance()).then(function(distance){ 
alert(distance);}); 

Demo

1

Вы можете использовать эти функции:

google.maps.geometry.spherical.computeDistanceBetween (latLng1, latLng1); 

аргументы являются два LatLng объектов.
Убедитесь, что Вы:

<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false&v=3&libraries=geometry"></script> 
+0

Что он возвращает? –

+0

кратчайший путь прямой –

+0

Но это вычислит длину геодезической между двумя объектами LatLng, либо существует маршрут, либо нет. –