来自kml数据错误消息的mapbox javascript自定义图标

来自kml数据错误消息的mapbox javascript自定义图标,javascript,icons,kml,mapbox,Javascript,Icons,Kml,Mapbox,我正在使用mapbox porjekt,使用javascript我读取了一个kml文件并添加了一个自定义图标,它可以工作,但我在浏览器控制台中遇到以下错误: Uncaught TypeError: undefined is not a function mytilemillscript.js:565 (anonymous function) mytilemillscript.js:565 s.LayerGroup.s.Class.extend.eachLayer mapbox.js:2 (ano

我正在使用mapbox porjekt,使用javascript我读取了一个kml文件并添加了一个自定义图标,它可以工作,但我在浏览器控制台中遇到以下错误:

Uncaught TypeError: undefined is not a function mytilemillscript.js:565
(anonymous function) mytilemillscript.js:565
s.LayerGroup.s.Class.extend.eachLayer mapbox.js:2
(anonymous function) mytilemillscript.js:564
s.Mixin.Events.fireEvent mapbox.js:1
t leaflet-omnivore.min.js:1
o
下面是js代码:

var greenIcon = L.icon({
    iconUrl: 'icon/bergbahn_pitztalgletscher.svg',
    iconSize:     [38, 95], // size of the icon
    iconAnchor: [22, 94],
    popupAnchor: [-3, -76],
    shadowAnchor: [22, 94]

});


runLayer = omnivore.kml('data/InntalradwegImst-SilzRundeTour14-02.kml').on('ready', function() {

runLayer.eachLayer(function(marker) {
    marker.setIcon( greenIcon);
});

}) .addTo(map);
此行导致错误:

marker.setIcon( greenIcon); 
为什么会出现这样的错误消息? 谢谢


虽然在没有数据的情况下无法判断,但问题很可能是,此代码很难假设您的KML数据只包含标记,因为您在每一层上都调用了
.setIcon
。因此,您可能在混合中有一条直线或多边形,由于直线和多边形没有图标,因此它们没有
.setIcon
方法,因此会显示错误消息。

对不起,这是线标记。setIcon(绿色图标);你的KML是什么样子的?
marker.setIcon( greenIcon);