GeometryUtil.geodesicArea()返回大量值
我正在使用GeometryUtil.geodesicArea函数将一个弹出窗口绑定到包含多边形面积信息的多边形。在这里,粘贴: ,它返回30610232650154772。如果这个数字是,它大约等于300亿平方公里,除非我遗漏了一些关于返回的数字的含义 这个测地面积函数计算什么?是否有其他方法/函数可以用来获取多边形的面积 这是我正在使用的代码以及逐行计算的值GeometryUtil.geodesicArea()返回大量值,geometry,leaflet,geospatial,leaflet.draw,Geometry,Leaflet,Geospatial,Leaflet.draw,我正在使用GeometryUtil.geodesicArea函数将一个弹出窗口绑定到包含多边形面积信息的多边形。在这里,粘贴: ,它返回30610232650154772。如果这个数字是,它大约等于300亿平方公里,除非我遗漏了一些关于返回的数字的含义 这个测地面积函数计算什么?是否有其他方法/函数可以用来获取多边形的面积 这是我正在使用的代码以及逐行计算的值 您忘记了中的括号 面积+=(p2.lng-p1.lng*d2r)* 必要的: 面积+=((p2.lng-p1.lng)*d2r)*您忘记
您忘记了中的括号 面积+=(p2.lng-p1.lng*d2r)* 必要的:
面积+=((p2.lng-p1.lng)*d2r)*您忘记了括号 面积+=(p2.lng-p1.lng*d2r)* 必要的: 面积+=((p2.lng-p1.lng)*d2r)*
geodesicArea: function (latLngs) {
var pointsCount = latLngs.length,
area = 0.0,
d2r = Math.PI / 180,
p1, p2;
if (pointsCount > 2) {
for (var i = 0; i < pointsCount; i++) {
p1 = latLngs[i];
p2 = latLngs[(i + 1) % pointsCount];
area += ((p2.lng - p1.lng) * d2r) *
(2 + Math.sin(p1.lat * d2r) + Math.sin(p2.lat * d2r));
}
area = area * 6378137.0 * 6378137.0 / 2.0;
}
return Math.abs(area);
}
0: {lat: 49.06465160956338, lng: -110.00904901708327}
1: {lat: 59.94790491663552, lng: -110.00904901708327}
2: {lat: 59.94790491663552, lng: -101.6155500597509}
3: {lat: 49.06465160956338, lng: -101.6155500597509}