简体   繁体   中英

The shortest path between two addresses

Using google map, you can actually get the different possible routes between two addresses, also you get the length of every possible route.

在此处输入图片说明 I'm now working on a website with google map , i want to calculate the shortest path between two different addresses same as google map does. then get the path length back as javascript variable.

You can use these function:

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

The arguments are two LatLng objects.
Make sure you include:

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

I found it, it can be calculated using google map api called Distance Matrix it returns a json response containing The recommended path's length and 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"
}

This should work fine:

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM