Google Maps Distance Matrix API Rounding JS API v3

时间:2013-06-25 09:43:49

标签: javascript google-maps google-maps-api-3 distance

我有一个像我在标题处提到的问题。请先看看底部的图像。 130 METERS

在这张图片中你可以很容易地看到它是130米,但是如果我使用距离矩阵API它会显示0.1公里,

180 METERS

这里是180米,但距离矩阵API显示0.2公里。这两个谷歌都有什么不同......

这是我的代码,以获得距离:

 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+"&";
        }
}
}

欢迎任何帮助

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

图I&#39; d发布此信息以防将来可能对某人有所帮助。如果您想显示km或m:

var distance = results[i].distance.value
if (distance < 1000){
    distance = results[i].distance.value + ' m';                    
} else {
    distance = results[i].distance.text;
}