在 Google 地图 API 中获取以米为单位的多边形长度

Get Length of Polygon in meters in Google Maps API

我已经使用 Google 地图 API 根据 lng/lat 坐标数组绘制多边形,但是 我需要一种方法来获取以米为单位的多边形,是否可以使用Google地图API?

我无法使用 directionsService 绘制路线并以这种方式获取实例,因为部分路径是越野的,并且在使用 directionsService 时会更改路径:(

这是我创建多边形的方式:

var poly = new google.maps.Polygon({
                                paths: waypoints,
                                strokeColor: '#00FF00',
                                strokeOpacity: 0.8,
                                strokeWeight: 2,
                                fillColor: '#00FF00',
                                fillOpacity: 0
                            });
poly.setMap(map);

其中 waypoints 是这样的对象数组:

[
          {lat: 25.774, lng: -80.190},
          {lat: 18.466, lng: -66.118},
          {lat: 32.321, lng: -64.757},
          {lat: 25.774, lng: -80.190}
]

为此,您可以使用需要包含在 API 调用中的 Geometry Library,方法如下:

https://maps.googleapis.com/maps/api/js?key=YOUR_KEY&libraries=geometry

要获取多边形的路径,请使用您的 waypoints 数组或从多边形对象中获取它:

var path = poly.getPath(); // To retrieve the first path or
var paths = poly.getPaths(); // To retrieve all the paths

然后传给GeometrycomputeLength函数:

var length = google.maps.geometry.spherical.computeLength(path);

该函数将为您提供以米为单位的路径长度。

如果您的多边形有多条路径,请确保您获得了正确的路径。