Leaflet:如何在geojson图层上使用自定义标记?

时间:2014-11-08 17:59:15

标签: leaflet

我正试图在传单上绘制一个geojson,一切正常,直到我使用默认的蓝色标记。

现在我想使用自定义标记(一个小的.png图标),我在下面更改了我的代码

 var my_json;
 $.getJSON('../Dati/my-geojson.geojson', function(data) {
           my_json = L.geoJson(data, {
            pointToLayer: function(feature, latlng) {
                var smallIcon = L.Icon({
                    options: {
                        iconSize: [27, 27],
                        iconAnchor: [13, 27],
                        popupAnchor:  [1, -24],
                        iconUrl: 'icone/chapel-2.png'
                    }
                });
                return L.marker(latlng, {icon: smallIcon});
            },
           onEachFeature: function (feature, layer) {
                   layer.bindPopup(feature.properties.ATT1 + '<br />'
                                                 + feature.properties.ATT2);
           }
         });
 my_json.addTo(markers.addTo(map));
 TOC.addOverlay(my_json, "My layer name in TOC");
 map.removeLayer(my_json); 
 });

我在Firebug中看到的错误是

TypeError: this.options.icon is undefined
var anchor = L.point(this.options.icon.options.popupAnchor || [0, 0]);
出现问题,但我不知道如何修复它。

任何建议都将受到赞赏

切萨雷

1 个答案:

答案 0 :(得分:2)

请参阅documentation for L.icon:您无需设置{ options: { ... } }。只需将选项直接放入,就像文档中所示并在示例中显示的那样。