Javascript 传单杂食KML标记图标

Javascript 传单杂食KML标记图标,javascript,leaflet,kml,mapbox,Javascript,Leaflet,Kml,Mapbox,我正在使用传单、地图盒和杂食动物来构建地图。我在一个.kml文件中有一组标记,我可以使用omnivore将其加载到传单中 leafletData.getMap('map').then(function(map) { var pointLayer = omnivore.kml('/kml/points-of-interest-places-to-eat-kml.kml').addTo(map) .on('error', function(error) { conso

我正在使用传单、地图盒和杂食动物来构建地图。我在一个.kml文件中有一组标记,我可以使用omnivore将其加载到传单中

  leafletData.getMap('map').then(function(map) {
    var pointLayer = omnivore.kml('/kml/points-of-interest-places-to-eat-kml.kml').addTo(map)
    .on('error', function(error) {
      console.log(error);
    })
  }
)
在.kml文件中,这些标记中的每一个都应有一个与之关联的样式和图标:

<Style id="buildingLabel">
    <IconStyle>
        <Icon>
            <href>/icons/building-label.png</href>
        </Icon>
    </IconStyle>
</Style>

<Placemark>
    <name>Building</name>
    <description>Building description</description>
    <styleUrl>#buildingLabel</styleUrl>
    <Point>
        <coordinates>-78.893733888,43.944767691,0.0</coordinates>
    </Point>
</Placemark>

/图标/building-label.png
建筑
建筑物描述
#建筑标签
-78.893733888,43.944767691,0.0
.kml文件可以很好地加载标记,但它们显示为通用标记,并且不使用.kml文件中描述的图标(使用谷歌地图中显示的相同文件)

我如何让杂食者/传单使用这些图标


谢谢

Omnivore似乎只导入placemark,而不导入样式元素。每个功能仍然在其
属性中保留
样式URL
,但相应的引用丢失。您要处理多少种不同的样式?对图标URL进行硬编码是否可行?感谢您的回复。我确实注意到styleUrl被保留在属性中,但这是我所能做到的。不幸的是,我实际上有几个不同的.kml文件,每个文件都有几个与之相关联的样式。一个选项是使用类似的东西分别解析kml文件(这只是我在web搜索中找到的第一个xml到json的转换器,其他的可能更好)。然后,您可以迭代生成的
Document.Style
数组,以找到与每个功能的
styleUrl
匹配的
id
。然而,这显然比仅仅使用杂食动物要不方便。这是一个不错的退路,如果我找不到任何其他东西,看起来这将是我的选择。谢谢你的帮助!我还注意到,in-Omnivore实际上加载了样式,但它只应用
lineStyle
polyStyle
,而不是
iconStyle
(这似乎是一个不幸的疏忽)。如果您愿意自己编辑杂食代码,您可以修改它以设置每个标记的图标选项,或者至少将图标URL添加到功能属性中。