Leaflet.draw:如何绘制八边形/六边形或其他常规多边形?

时间:2018-09-18 11:26:54

标签: javascript leaflet gis geojson leaflet.draw

我不相信我的问题可以在这里用几行代码来回答,但是也许有人写了Leaflet.draw的扩展名,该扩展名可用于绘制常规多边形,其绘制方式与您绘制时类似Leaflet.draw绘制矩形还是圆形?

我想要的可能是绘制规则的多边形(例如八边形或六边形) 类似于使用Leaflet.draw绘制圆,即单击中心然后拖动其大小,但是它还应该能够创建geojson多边形而不是geojson点(对圆完成了此操作) )。

圆圈的问题是,当您实现Leaflet.draw事件方法时,例如 map.on(L.Draw.Event.CREATED, function (e) 那么您可以使用e.layer.toGeoJSON()来获取geoJson,但它将变为点而不是多边形。

该方法toGeoJSON在绘制矩形时效果很好,因为您将获得一个带有四个角的多边形,但是由于GIS矢量(例如geojson或shapefile)中没有“圆”特征等等),那么当在Leaflet.draw中使用“ toGeoJSON”方法时,geojson只会变成“点”而不是多边形。

这就是为什么我想要一个规则的多边形(比圆形更有用)的原因,该多边形可以使用例如32个边和顶点的六角形近似一个圆形。

我知道一种解决方法是使用“圆”,然后从圆中计算一个多边形(例如,使用类似https://github.com/w8r/L.Circle.toPolygon的东西)

但是,我真正想要的是将其全部集成到可视化图形中,以便最终用户在执行图形时可以看到实际的多边形角,而不是在绘制区域时查看圆,但实际上会持久存在其他东西(多边形),它近似于绘制的区域。

0 个答案:

没有答案