1

i have a problem like i mentioned at title. Please look at images at bottom first. 130 METERS

In this image you can easily see it's 130 meters but if i use Distance Matrix API it's showing 0.1 KM,

180 METERS

And here it's 180 Meters but it's showing 0.2 KM in distance matrix API. It's both google how can it be different..

And here's my code to get distance :

 var service = new google.maps.DistanceMatrixService();
    service.getDistanceMatrix(
      {
          origins: startArray, //LatLng Array
          destinations: finishArray, //LatLng Array
          travelMode: google.maps.TravelMode.DRIVING,
          unitSystem: google.maps.UnitSystem.METRIC,
          avoidHighways: false,
          avoidTolls: false
      }, callback);

function callback(response, status) {
    if (status != google.maps.DistanceMatrixStatus.OK) {
        alert('Error was: ' + status);
    } else {
        var origins = response.originAddresses;
        var destinations = response.destinationAddresses;

        for (var i = 0; i < origins.length; i++) {
            var results = response.rows[i].elements;
                console.log(results[i].distance.text);
                document.getElementById('ctl00_MainContent_hidSpeed').value += results[i].distance.text+"&";
        }
}
}

Any help would be appreciated

4

2 回答 2

2

只需使用results[i].distance.value代替text

有关示例,请参阅https://developers.google.com/maps/documentation/javascript/distancematrix#distance_matrix_responses ,在文本中,它是四舍五入的,但该值以米为单位准确显示距离。

于 2013-06-25T09:50:23.760 回答
0

图我会发布这个,以防将来对某人有所帮助。如果您想显示 km 或 m:

var distance = results[i].distance.value
if (distance < 1000){
    distance = results[i].distance.value + ' m';                    
} else {
    distance = results[i].distance.text;
}
于 2015-12-10T21:33:13.180 回答