GeometryUtil.geodesicArea()返回大量值

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)*您忘记

我正在使用GeometryUtil.geodesicArea函数将一个弹出窗口绑定到包含多边形面积信息的多边形。在这里,粘贴:

,它返回30610232650154772。如果这个数字是,它大约等于300亿平方公里,除非我遗漏了一些关于返回的数字的含义

这个测地面积函数计算什么?是否有其他方法/函数可以用来获取多边形的面积

这是我正在使用的代码以及逐行计算的值

您忘记了中的括号

面积+=(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}