Javascript 使用mapbox创建的多边形的中心

Javascript 使用mapbox创建的多边形的中心,javascript,polygon,mapbox,Javascript,Polygon,Mapbox,我想知道如何从Mapbox计算使用以下代码创建的多边形的中心: 我想在多边形创建后在其中心放置一个标记。 提前感谢。要计算多边形的中心,首先需要得到它的边界,可以使用L.polygon的getBounds方法进行计算,该方法由L.Polyline增强: 返回多段线的LatLngBounds 它返回一个L.LatLngBounds对象,该对象具有getCenter方法: 返回边界的中心点 它返回一个L.LatLng对象,可用于创建L.Marker: var polygon = new L.Po

我想知道如何从Mapbox计算使用以下代码创建的多边形的中心: 我想在多边形创建后在其中心放置一个标记。
提前感谢。

要计算多边形的中心,首先需要得到它的边界,可以使用
L.polygon
getBounds
方法进行计算,该方法由
L.Polyline
增强:

返回多段线的LatLngBounds

它返回一个
L.LatLngBounds
对象,该对象具有
getCenter
方法:

返回边界的中心点

它返回一个
L.LatLng
对象,可用于创建
L.Marker

var polygon = new L.Polygon(coordinates).addTo(map);

var bounds = polygon.getBounds();

var center = bounds.getCenter();

var marker = new L.Marker(center).addTo(map);
或者你可以用速记法:

var polygon = new L.Polygon(coordinates).addTo(map);

var marker = new L.Marker(polygon.getBounds().getCenter()).addTo(map);
在Mapbox示例中使用该选项将类似于以下内容:

function showPolygonArea(e) {
    featureGroup.clearLayers();
    featureGroup.addLayer(e.layer);

    // Here 'e.layer' holds the L.Polygon instance:
    new L.Marker(e.layer.getBounds().getCenter()).addTo(featureGroup);

    e.layer.bindPopup((LGeo.area(e.layer) / 1000000).toFixed(2) + ' km<sup>2</sup>');
    e.layer.openPopup();
}
功能区(e){
featureGroup.clearLayers();
特性组。添加层(e层);
//此处“e.layer”包含L.多边形实例:
新的L.Marker(e.layer.getBounds().getCenter()).addTo(featureGroup);
e、 图层(LGeo.面积(e.图层)/1000000.toFixed(2)+“km2”);
e、 layer.openPopup();
}

您可以使用turf
library.turf.center(特征)
在所有输入特征的绝对中心点为您提供点特征。其中,您案例中的特征将是所选的多边形,您可以使用
mapboxDraw.getAll()

获得该多边形。我尝试使用以下方法:var center=e.layer.bounds.getCenter();但它不起作用。我已经找到了其他脚本来计算多边形的中心,但我不确定在哪里可以找到多边形CreatedHanks iH8,如何从mapbox示例代码中获取已创建多边形的坐标?这就是我丢失的地方,我在那段代码中找不到任何L.多边形。有没有一种方法可以从这里获得坐标:函数showPolygonArea edited(e){e.layers.eachLayer(函数(layer){showPolygonArea({layer:layer});});我会在我的回答中附加一个L.Draw用例哦,ic,你是说这样的吗?:var marker=new L.marker(L.Draw.getBounds().getCenter()).addTo(map);不,那不行,请检查我的更新答案。
新的L.Marker(e.layer.getBounds().getCenter()).addTo(featureGroup);
是在
showPolygorea
方法中需要执行的操作。