如何在Google Maps JavaScript API中获取与给定路径值的距离?

如何在Google Maps JavaScript API中获取与给定路径值的距离?,javascript,google-maps-api-3,Javascript,Google Maps Api 3,我已经在我的应用程序中集成了谷歌地图JavaScript API。我需要计算给定路径的行驶距离 这条路就像 var path = [ {lat: 36.579, lng: -118.292}, {lat: 36.606, lng: -118.0638}, {lat: 36.433, lng: -117.951}, {lat: 36.588, lng: -116.943}, {l

我已经在我的应用程序中集成了谷歌地图JavaScript API。我需要计算给定路径的行驶距离

这条路就像

var path = [
            {lat: 36.579, lng: -118.292},
            {lat: 36.606, lng: -118.0638},
            {lat: 36.433, lng: -117.951},
            {lat: 36.588, lng: -116.943},
            {lat: 36.34, lng: -117.468},
            {lat: 36.24, lng: -116.832}];
使用上述值需要计算距离。给我你有价值的想法。

要使用,点必须是对象,而不是对象

至少有四种选择:

  • 将google.maps.LatLngLiterals数组转换为google.maps.LatLng对象
  • 使用google.maps.LatLngLiterals数组创建google.maps.Polyline,然后在该Polyline上调用
    .getPath
  • 将坐标转换为google.maps.LatLng,并调用计算每对坐标的距离,累积距离
  • var distanceInMeters=0;
    
    对于(变量i=0;i从何处到何处的距离?
    var path = [
          new google.maps.LatLng(36.579, -118.292),
          new google.maps.LatLng(36.606, -118.0638),
          new google.maps.LatLng(36.433, -117.951),
          new google.maps.LatLng(36.588, -116.943),
          new google.maps.LatLng(36.34, -117.468),
          new google.maps.LatLng(36.24, -116.832)];
    var distanceInMeters = google.maps.geometry.spherical.computeLength(path);
    
    var polyline = new google.maps.Polyline({
          map: map,
          path: path
    });
    var distanceInMeters = google.maps.geometry.spherical.computeLength(polyline.getPath());
    
    var distanceInMeters = 0;
    for (var i=0; i<path.length-1; i++) {
        distanceInMeters += google.maps.geometry.spherical.computeDistanceBetween(new google.maps.LatLng(path[i].lat, path[i].lng),new google.maps.LatLng(path[i+1].lat, path[i+1].lng));
    }