如何获取 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 插件是如何实现的。
我正在使用 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 插件是如何实现的。