【发布时间】:2017-06-03 05:45:58
【问题描述】:
我希望能够让用户单击传单地图中的 geoJSON 图层,然后在他们单击的位置显示带有自定义图标的标记。如果他们再次点击图层,我想删除原来的标记,然后在最新的点击位置添加一个新的标记。
我可以使用 Leaflet 中的默认图标使其工作,但是当我指定自定义图标时,它会失败,返回错误:TypeError: t.icon.createIcon is not a function。
这行得通:
function onEachFeature(feature, layer) {
layer.on('click', function(e) {
lat = feature.geometry.coordinates[1];
lng = feature.geometry.coordinates[0];
mymap.on('click', function (e) {
if (marker) {
mymap.removeLayer(marker);
}
marker = new L.Marker([lat,lng]).addTo(mymap);
});
});
}
但这没有(只添加{icon: marker}:
var marker = L.icon({
iconUrl: 'https://raw.githubusercontent.com/evantdailey/map_testing/master/dot.png',
iconSize: [20,20],
});
function onEachFeature(feature, layer) {
layer.on('click', function(e) {
lat = feature.geometry.coordinates[1];
lng = feature.geometry.coordinates[0];
mymap.on('click', function (e) {
if (marker) {
mymap.removeLayer(marker);
}
marker = new L.Marker([lat,lng], {icon: marker}).addTo(mymap);
});
});
}
你猜我做错了什么?
【问题讨论】:
标签: javascript leaflet