在 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);
该函数将为您提供以米为单位的路径长度。
如果您的多边形有多条路径,请确保您获得了正确的路径。
我已经使用 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);
该函数将为您提供以米为单位的路径长度。
如果您的多边形有多条路径,请确保您获得了正确的路径。