将Google地图上的单位从公制更改为英制

时间:2013-01-18 17:12:45

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

我有以下代码:

<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>

地图使用谷歌api的方向服务显示原点和目的地,沿途有某些航路点。 “方向”面板以公制单位显示所有距离。如何更改它,以便所有距离都以英制单位表示,即英里,英尺?

1 个答案:

答案 0 :(得分:3)

From the docs

  

单位系统

     

默认情况下,使用本机计算和显示方向   原产国的国家或地区的制度。 (注:来源表示   始终使用纬度/经度坐标而不是地址   默认为公制单位。)例如,从“Chicago,IL”到的路线   “多伦多,ONT”将以英里显示结果,而反向路线则显示   将以千米为单位显示结果。您可以覆盖此单位系统   通过使用其中一个明确地在请求中设置一个   遵循UnitSystem值:

     
      
  • UnitSystem.METRIC指定度量系统的使用。距离以千米为单位显示。
  •   
  • UnitSystem.IMPERIA L指定Imperial(英语)系统的用法。使用里程显示距离。
  •   
     

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