J'essaie de mettre sur une carte Leaflet un geojson et tout fonctionne bien jusqu'à ce que j'utilise le marqueur bleu par défaut.
Maintenant, j'aimerais utiliser un marqueur personnalisé (une petite icône .png) et j'ai changé mon code dans la suite
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);
});
l'erreur que je peux voir dans Firebug est
TypeError: this.options.icon is undefined
var anchor = L.point(this.options.icon.options.popupAnchor || [0, 0]);
quelque chose ne va pas mais je ne sais pas comment y remédier.
L.Icon
devrait êtrenew L.Icon
new
sans ... Je n'ai pas d'explication ici :(Pardonnez-moi si je me trompe car je suis un peu nouveau, mais j'ai remarqué que vous l'avez orthographié comme L.Icon avec un I majuscule . Peut-être que la version est plus récente ou quelque chose comme ça, mais ça ne marche pas quand je l'écris de cette façon. L.icon avec un petit je fonctionne bien pour moi.
Vous avez également utilisé le petit nom de cas dans l'instruction de retour.
la source