gpt4 book ai didi

javascript - 如何使用 leaflet.draw 从多边形获取区域字符串

转载 作者:可可西里 更新时间:2023-11-01 02:33:37 30 4
gpt4 key购买 nike

我正在尝试获取多边形的面积测量值,以便我可以将它们列在 map 一侧的表格中,紧挨着多边形的名称。这是我尝试过但没有成功的方法:

$("#polygon").on("click", function (){
createPolygon = new L.Draw.Polygon(map, drawControl.options.polygon);
createPolygon.enable();
}

var polygon = new L.featureGroup();

map.on('draw:created', function (e) {
var type = e.layerType,
layer = e.layer;
if (type === 'polygon') {
polygons.addLayer(layer);
}
var seeArea = createPolygon._getMeasurementString();
console.log(seeArea); //Returns null
}

如有任何帮助,我们将不胜感激!

最佳答案

您可以访问随 Leaflet 提供的几何实用程序库。

var area = L.GeometryUtil.geodesicArea(layer.getLatLngs());

在您的示例中,您正在尝试访问控件本身,这是变量 createPolygon 分配给的内容。相反,您想获取绘制的图层区域。

map.on('draw:created', function (e) {
var type = e.layerType,
layer = e.layer;
if (type === 'polygon') {
polygons.addLayer(layer);
var seeArea = L.GeometryUtil.geodesicArea(layer.getLatLngs());
console.log(seeArea);
}
}

一旦您确认获得了该区域,您就可以将其分配给填充 map 旁边表格的变量。

注意:默认情况下面积以平方米为单位

关于javascript - 如何使用 leaflet.draw 从多边形获取区域字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29724725/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com