JoD*_*iii 3 javascript leaflet
根据这个问题:https://gis.stackexchange.com/questions/54651/change-marker-icon-on-click-using-leaflet,我做了这个:
// onEachFeature
function onEachFeature(feature, layer) {
layer.on('click', function (e) {
// change icon
console.log(layer.options.icon);
e.target.setIcon(myIconReplc);
});
}
var myIconReplc = L.Icon.extend({
options: {
iconUrl: "../resources/img/map/icons/orange/ambulance.png",
iconSize: [30,35],
shadowUrl: "../resources/img/map/icons/shadow.png",
shadowAnchor: [8, 20],
shadowSize: [25, 18],
iconSize: [20, 25],
iconAnchor: [8, 30] // horizontal puis vertical
}
});
Run Code Online (Sandbox Code Playgroud)
我有这个错误: Uncaught TypeError: undefined is not a function
怎么了 ?
您应该创建实例(new之前添加myIconReplc),例如,像这样
var myIconReplc = L.Icon.extend({
options: {
iconUrl: "../resources/img/map/icons/orange/ambulance.png",
iconSize: [30,35],
shadowUrl: "../resources/img/map/icons/shadow.png",
shadowAnchor: [8, 20],
shadowSize: [25, 18],
iconSize: [20, 25],
iconAnchor: [8, 30] // horizontal puis vertical
}
});
layer.on('click', function (e) {
e.target.setIcon(new myIconReplc);
});
Run Code Online (Sandbox Code Playgroud)
你忘了声明new你的myIconReplc.
改变:
e.target.setIcon(myIconReplc);
Run Code Online (Sandbox Code Playgroud)
到:
e.target.setIcon(new myIconReplc);
Run Code Online (Sandbox Code Playgroud)
如果您希望能够在没有newLeaflet 中的大多数类的情况下声明图标,您可以这样做:
// Normal extending
var MyIconReplc = L.Icon.extend({
options: {
iconUrl: "../resources/img/map/icons/orange/ambulance.png",
iconSize: [30,35],
shadowUrl: "../resources/img/map/icons/shadow.png",
shadowAnchor: [8, 20],
shadowSize: [25, 18],
iconSize: [20, 25],
iconAnchor: [8, 30] // horizontal puis vertical
}
});
// Shorthand
var myIconReplc = function (options) {
return new MyIconRepl(options);
}
Run Code Online (Sandbox Code Playgroud)
现在你可以这样做:
var icon = new MyIconReplc();
Run Code Online (Sandbox Code Playgroud)
和:
var icon = myIconReplc();
Run Code Online (Sandbox Code Playgroud)
您可能已经注意到 Leaflet 对象是在不使用 new 关键字的情况下创建的。这是通过用小写工厂方法补充每个类来实现的
请参阅:http : //leafletjs.com/reference.html#class(在类工厂下)
| 归档时间: |
|
| 查看次数: |
6412 次 |
| 最近记录: |