我正试图在传单上绘制一个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]);
出现问题,但我不知道如何修复它。
任何建议都将受到赞赏
切萨雷
答案 0 :(得分:2)
请参阅documentation for L.icon:您无需设置{ options: { ... } }
。只需将选项直接放入,就像文档中所示并在示例中显示的那样。