Leaflet Mapbox:过滤出传单杂食KML层中的标记
我将Google Directions路线导出为KML,并通过使用Omnivore读取并将其添加到地图中,将其显示在地图盒地图上 Google KML将每条路线存储为两个位置(起点和终点)和一个行字符串(路线)。在Mapbox中,我只想显示路线,即以某种方式过滤掉标记。我在自己的数据库中显示标记,谷歌标记把它弄得乱七八糟 这是我的密码。我更改了线串的样式,只是为了表明我可以,但不知道要做什么魔术调用才能不显示点。 谢谢 欢迎来到SO 许多可能的解决办法:Leaflet Mapbox:过滤出传单杂食KML层中的标记,leaflet,kml,mapbox,Leaflet,Kml,Mapbox,我将Google Directions路线导出为KML,并通过使用Omnivore读取并将其添加到地图中,将其显示在地图盒地图上 Google KML将每条路线存储为两个位置(起点和终点)和一个行字符串(路线)。在Mapbox中,我只想显示路线,即以某种方式过滤掉标记。我在自己的数据库中显示标记,谷歌标记把它弄得乱七八糟 这是我的密码。我更改了线串的样式,只是为了表明我可以,但不知道要做什么魔术调用才能不显示点。 谢谢 欢迎来到SO 许多可能的解决办法: 与您提供的代码相比,当您获得一个“点”
- 与您提供的代码相比,当您获得一个
功能时,只需使用“点”
层组上的方法即可运行层
- 更干净的解决方案是,在将这些功能转换为传单层之前,通过带有指定选项的
的passed as 3rd参数过滤掉这些功能:omnivore.kml
var customLayer=L.geoJSON(空{
过滤器:函数(geoJsonFeature){
//我的自定义过滤器功能:不显示点类型要素。
返回geoJsonFeature.geometry.type!=='Point';
}
}).addTo(地图);
var runLayer=omnivore.kml('data/xxxx.kml',null,customLayer);
您也可以使用
customLayer
上的和/或选项直接将所需样式应用于您的线条。谢谢先生(或女士:)解决方案一有效(!)但正如您所说,解决方案二更酷,而且也有效。。。在我将“L.geoJSON”更改为“L.geoJSON”之后。另外,“.addTo(map)”是不必要的,因为我们正在将它传递给杂食者。我尝试过过滤它们,但在它们被添加到地图时失败了,但最好是在导入时过滤,而不添加它们。再次感谢<代码>L.geoJson用于传单0.x。你应该考虑升级到传单1.x。谢谢版本V0.2.0用于所有我看到的Mpbox例子,所以我不知道更好。
runLayer = omnivore.kml('data/xxxx.kml')
.on('ready', function() {
var llBnds = runLayer.getBounds();
map.fitBounds(llBnds);
this.eachLayer(function (layer) {
if (layer.feature.geometry.type == 'LineString') {
layer.setStyle({
color: '#4E3508',
weight: 4
});
}
if (layer.feature.geometry.type == 'Point') {
//
// Do something useful here to not display these items!!
//
}
});
})
.addTo(map);