我已经使用Google Maps API根据lng / lat坐标数组绘制多边形,但是我需要一种以米为单位获取多边形长度的方法,使用Google Maps 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);
航点是这样的对象数组:
[
{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调用中的几何库:
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);
该功能将为您提供以米为单位的路径长度。
如果您的多边形有多个路径,请确保获得正确的路径。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句