我如何从给定的路径值在谷歌地图JavaScript API的距离

How can I get distance from given path value in Google Maps JavaScript API?

本文关键字:谷歌地图 JavaScript API 距离 路径      更新时间:2023-09-26

我已经在我的应用程序中集成了Google Maps 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 Javascript API v3球面几何距离方法,"points"需要是Google . Maps . latlng对象,而不是Google . Maps . latlngliteral对象。

至少有四个选项:

  1. 将你的google.maps. latlingliterals数组转换为google.maps.LatLng对象。
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);
用你的google.maps数组创建一个google.maps. polyline。在折线上调用.getPath
var polyline = new google.maps.Polyline({
      map: map,
      path: path
});
var distanceInMeters = google.maps.geometry.spherical.computeLength(polyline.getPath());
  • 将你的坐标转换为google.maps.LatLng并调用每对的计算距离,累积距离。
  • 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));
    }
    
  • 编写你自己版本的haversine公式,它接受latlingliterals数组