如何使用JavaScript上的Google Maps API测量位置距离

我想使用Google Map API获取位置距离。

我有一个名为computeTotalDistance的函数,我在其中传递距离值并将其转换为km。

function initMap() {
            let panel = document.getElementById('right-panel')
            panel.innerHTML = ''

            let origin = getvalueForm()[0] ? getvalueForm()[0] : 'pt isiorder solusi indonesia,surabaya'
            let destination = getvalueForm()[1] ? getvalueForm()[1] : 'kebun bibit,surabaya'

            var map = new google.maps.Map(document.getElementById('map'),{
              zoom: 11,center: {lat: -24.345,lng: 134.46}  // Australia.
            });

            var directionsService = new google.maps.DirectionsService;
            var directionsRenderer = new google.maps.DirectionsRenderer({
              draggable: true,map: map,panel: panel
            });

            directionsRenderer.addListener('directions_changed',function() {
              computeTotalDistance(directionsRenderer.getDirections());
            });

            displayRoute(origin,destination,directionsService,directionsRenderer);
          }

          function displayRoute(origin,service,display) {
            service.route({
              origin: origin,destination: destination,// waypoints: [{location: 'Adelaide,SA'},{location: 'Broken Hill,NSW'}],travelMode: 'DRIVING',avoidTolls: true,unitSystem: google.maps.UnitSystem.METRIC,},function(response,status) {
              if (status === 'OK') {
                display.setDirections(response);
                console.log(response)
              } else {
                alert('Could not display directions due to: ' + status);
              }
            });
          }

          function computeTotalDistance(result) {
            var total = 0;
            var myroute = result.routes[0];
            for (var i = 0; i < myroute.legs.length; i++) {
              total += myroute.legs[i].distance.value;
            }
            total = total / 1000;
            document.getElementById('total').innerHTML = total + ' km';
          }
swj1363345 回答:如何使用JavaScript上的Google Maps API测量位置距离

好的,这个问题解决了,我将代码更改为

directionsRenderer.addListener('directions_changed',function() {
      computeTotalDistance(directionsRenderer.getDirections());
      let loc1 = new google.maps.LatLng(directionsRenderer.getDirections().routes[0].bounds.oa.g,directionsRenderer.getDirections().routes[0].bounds.ka.g);
      let loc2 = new google.maps.LatLng(directionsRenderer.getDirections().routes[0].bounds.oa.h,directionsRenderer.getDirections().routes[0].bounds.ka.h);
      calcDistance(loc1,loc2)
    });

function calcDistance(p1,p2) {
        total = (google.maps.geometry.spherical.computeDistanceBetween(p1,p2) / 1000).toFixed(2);
        document.getElementById('total-point').innerHTML = total + ' km';   
    }

感谢您的帮助 LuisTavares

本文链接:https://www.f2er.com/3169138.html

大家都在问