2

我有以下代码:

<script>

      var rendererOptions = {
        draggable: false
      };
      var directionsDisplay = new google.maps.DirectionsRenderer(rendererOptions);;
      var directionsService = new google.maps.DirectionsService();
      var map;

      var England = new google.maps.LatLng(53.7415, 1.6860);

      function initialize() {

        var mapOptions = {
          zoom: 6,
          mapTypeId: google.maps.MapTypeId.ROADMAP,
          center: England
        };
        map = new google.maps.Map(document.getElementById('map_canvas'), mapOptions);
        map.setTilt(45);
        directionsDisplay.setMap(map)
        directionsDisplay.setPanel(document.getElementById('directionsPanel'));

        google.maps.event.addListener(directionsDisplay, 'directions_changed', function() {
          computeTotalDistance(directionsDisplay.directions);
        });

        calcRoute();
      }

      function calcRoute() {

        var request = {
          origin: 'postcode',
          destination: 'postcode',
          waypoints:[{location: 'waypoint postcode'}, {location: 'waypoint postcode'}, {location: 'waypoint postcode'}],
          travelMode: google.maps.DirectionsTravelMode.DRIVING
        };
        directionsService.route(request, function(response, status) {
          if (status == google.maps.DirectionsStatus.OK) {
            directionsDisplay.setDirections(response);
          }
        });
      }

      function computeTotalDistance(result) {
        var total = 0;
        var myroute = result.routes[0];
        for (i = 0; i < myroute.legs.length; i++) {
          total += myroute.legs[i].distance.value;
        }
        total = total / 1000.
        document.getElementById('total').innerHTML = total + ' km';
      }
    </script>
  </head>
  <body onload="initialize()">
    <div id="map_canvas" style="float:left;width:70%; height:100%"></div>
    <div id="directionsPanel" style="float:right;width:30%;height 100%">
    <p>Total Distance: <span id="total"></span></p>
    </div>

该地图使用 google api 的方向服务显示了起点和终点,以及沿途的某些航路点。方向面板以公制单位显示所有距离。如何更改它,以便所有距离都以英制单位(即英里、英尺)显示?

4

1 回答 1

3

从文档

单位系统

默认情况下,使用始发地国家或地区的单位系统计算和显示方向。(注意:使用纬度/经度坐标而不是地址表示的起点始终默认为公制单位。)例如,从“芝加哥,IL”到“多伦多,ONT”的路线将以英里为单位显示结果,而反向路线将显示结果以公里为单位。您可以通过使用以下 UnitSystem 值之一在请求中显式设置一个来覆盖此单位系统:

  • UnitSystem.METRIC指定公制的使用。距离以公里表示。
  • UnitSystem.IMPERIAL 指定使用英制(英制)系统。距离以英里表示。

注意:此单位系统设置仅影响向用户显示的文本。方向结果还包含距离值,未向用户显示,始终以米表示。

于 2013-01-18T17:22:33.287 回答