我正在使用Leaflet.js
库。我有一组地理点,用纬度和经度描述,并基于这些点定义了一个多边形。如何删除多边形的内部点并仅绘制其外部边界?
点数组
[[53, 31], [51.4, 31.2], [51.3, 32] ... etc.] //it's length ~ 500 points.
初始化地图
L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png').addTo(mymap);
设定多边形
L.polygon(points, {color: 'red'}).addTo(mymap);
这就是我现在所拥有的。这是所有显示的500点。
我期待的结果。此处所有内部点均被删除,显示了覆盖区域。
最佳答案
听起来您正在寻找凸包算法:它将为您提供点的“包络”。
您可以使用例如Turfjs:https://turfjs.org/docs/#convex
但请注意,这需要处理转换为GeoJSON对象的数据。
您也可以看看Leaflet.markercluster插件如何实现它。