如何获取 L.polygon 边框,不包括内部点

How to get L.polygon border, excluding inner points

我正在使用 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 点。

我期待的结果。这里删除了所有内部点,显示了覆盖区域。

听起来您正在寻找一种凸包算法:它会为您提供 "envelope" 的点数。

您可以使用例如草坪:https://turfjs.org/docs/#convex

但请注意,它需要处理转换为 GeoJSON 对象的数据。

您也可以看看 Leaflet.markercluster 插件是如何实现的。