Leaflet 地图框重叠圆

Leaflet 地图框重叠圆,leaflet,mapbox,turfjs,Leaflet,Mapbox,Turfjs,是否有人知道如何使mapbox中的重叠圆显示相同的颜色,并且只显示外部边缘周围的边框 我有这个: 我在photoshop中制作了这个我想要的: 虽然我认为没有一种方法可以设置所有圆的样式来显示它们的组轮廓,但您可以通过创建所有圆几何图形的并集并将您的样式应用于此来实现想要的效果。不幸的是,传单无法访问圆心以外的圆几何体,要执行并集,需要圆本身的路径。幸运的是,还有一个及其LGeo.circle类,它生成具有给定半径和段数的圆形多边形。一旦有了圆的这些多边形表示,就可以使用来生成所需的轮廓 假设

是否有人知道如何使mapbox中的重叠圆显示相同的颜色,并且只显示外部边缘周围的边框

我有这个:

我在photoshop中制作了这个我想要的:

虽然我认为没有一种方法可以设置所有圆的样式来显示它们的组轮廓,但您可以通过创建所有圆几何图形的并集并将您的样式应用于此来实现想要的效果。不幸的是,传单无法访问圆心以外的圆几何体,要执行并集,需要圆本身的路径。幸运的是,还有一个及其
LGeo.circle
类,它生成具有给定半径和段数的圆形多边形。一旦有了圆的这些多边形表示,就可以使用来生成所需的轮廓

假设您从一个名为
pointLayer
的点层开始(这可以是
L.geoJson
L.mapbox.featureLayer
,或继承该属性的任何其他类)。然后可以迭代这些要素,为每个要素创建一个圆形多边形,并将其添加到临时图层组中,如下所示:

var circleLayer=L.layerGroup();
var半径=5000
变量选项={
部分:144
};
pointLayer.eachLayer(函数(层){
LGeo.circle(layer.getLatLng(),radius,opts).addTo(circleLayer);
});
其中,
radius
以米为单位,
parts
选项是希望多边形具有的分段数。接下来,使用
.getLayers
方法获取临时组中所有层的数组,然后迭代该数组以创建所有特征的并集:

var circleUnion=unify(circleLayer.getLayers()).addTo(map); 函数统一(多段列表){ 对于(变量i=0;i 其中,
unionStyle
是您希望应用于新组合的圆圈的任何样式。下面是一个用一些随机数据显示所有这些的例子:


这似乎是一个有趣(且具有挑战性)的问题。你有地图样本的链接吗?你可以从这篇文章开始:这个链接:另请参阅。如果您使用在点周围创建GeoJSON圆,然后使用在点上执行并集,则所有重叠圆周围都将有一个边框。谢谢Nathan。我研究了你的评论,并让它发挥作用。我本想给你发个短信,让你把这个作为答案,但你抢先了我一步。再次感谢您指出大地测量学。