谷歌api返回公里而不是英里

时间:2017-03-01 00:27:32

标签: google-maps google-api

我有一个计算两点之间距离的应用程序。

https://maps.googleapis.com/maps/api/distancematrix/json?origins="                 +起源+"& destinations =" +目的地+"& units = imperial ......

我将单位设置为英制,但有些距离以公里和英尺返回。我是否需要设置任何其他参数。

提前致谢

3 个答案:

答案 0 :(得分:1)

如果要得出公里,请使用 unitSystem:google.maps.UnitSystem.METRIC 。 如果要得到 Miles (里程),请使用 unitSystem:google.maps.UnitSystem.IMPERIAL

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script src="http://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY"></script>
<script>
$(document).ready(function(){
    var distanceService = new google.maps.DistanceMatrixService();
     distanceService.getDistanceMatrix({
        origins: ["10 West 35th Street, Chicago, IL, USA"], //$("#autocompleteDeparture").val()
        destinations: ["Union Station, South Canal Street, Chicago, IL, USA"], //$("#autocompleteArrival").val()
        travelMode: google.maps.TravelMode.DRIVING,
        unitSystem: google.maps.UnitSystem.IMPERIAL, //use "IMPERIAL" for Miles, "METRIC" for KMs
        durationInTraffic: true,
        avoidHighways: false,
        avoidTolls: false
    },
    function (response, status) {
        if (status !== google.maps.DistanceMatrixStatus.OK) {
            console.log('Error:', status);
        } else {
            console.log(response);
        }
    });
});
</script>
</head>
<body>
</body>
</html>

答案 1 :(得分:0)

distance.text字段以请求中传递的单位表示; distance.value字段始终以米为单位。

请参阅the Distance Matrix developer guide,您就会发现这个模糊:

  

注意:此单位系统设置仅影响距离字段中显示的文本。距离字段还包含始终以米为单位的值。

答案 2 :(得分:0)

这是我用来获取距离(英里)的代码。

方法1:
您将必须使用密钥调用google map api JS库,然后使用以下代码。

var origin1 = new google.maps.LatLng(55.930385, -3.118425);
var origin2 = 'Greenwich, England';
var destinationA = 'Stockholm, Sweden';
var destinationB = new google.maps.LatLng(50.087692, 14.421150);
//var  uniteSystem = 'IMPERIAL';
var service = new google.maps.DistanceMatrixService();
service.getDistanceMatrix(
  {
    origins: [origin1],
    destinations: [destinationA],
    travelMode: 'DRIVING' ,
    unitSystem: google.maps.UnitSystem.IMPERIAL   
  }
  , callback);

function callback(response, status) {
  // See Parsing the Results for
  // the basics of a callback function.
  console.log(response);
}

您将有一个元素数组作为响应。

方法2: 这是我用来获取距离的url方法。 https://maps.googleapis.com/maps/api/distancematrix/json?units=imperial&origins=40.6655101,-73.89188969999998&destinations=41.43206,-81.38992&key=TOUR_API_KEY

记住要更改API密钥。