将谷歌地图上的单位从公制改为英制

Changing the units on google maps from metric to imperial

本文关键字:谷歌地图 单位      更新时间:2023-09-26

我有以下代码:

<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的方向服务。方向面板以公制单位显示所有距离。我如何改变它,使所有的距离都以英制单位表示,即英里,英尺?

From the docs

单元系统

默认情况下,方向计算和显示使用单位原产地国家或地区的系统。(注:表示出处总是使用纬度/经度坐标而不是地址默认为公制单位。)例如,一条从芝加哥到芝加哥的路线"多伦多,安大略省"将以英里为单位显示结果,而相反的路线将以公里为单位显示结果。你可以推翻这个单位系统方法之一在请求中显式地设置一个以下UnitSystem值:

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

注意:这个单位制设置只影响文本显示到用户。方向结果也包含距离值,没有显示给用户,通常用米表示。