我的leaflet.js代码定义了各种图标:
var blueIcon = new largeIcon({iconUrl: 'blue.png'});
var redIcon = new largeIcon({iconUrl: 'red.png'});
var orangeIcon = new largeIcon({iconUrl: 'orange.png'});
以便我以后可以使用其中一个:
marker = new L.Marker(latlng, {icon: redIcon, draggable: true});
但是,我想根据从.js文件外部设置的变量选择图标:
var useIcon = 'blueIcon';
如何更改marker = ...
行,以便创建useIcon定义的对象而不是硬编码redIcon?图标:期望对象而不是字符串。
答案 0 :(得分:2)
不是声明单独的变量,而是将它们组合在一个对象中:(这有时称为字典)
var iconList = {
blueIcon: new largeIcon({iconUrl: 'blue.png'}),
redIcon: ...,
...
};
然后你可以选择你想要的那个:
marker = new L.Marker(latlng, {icon: iconList[useIcon], draggable: true});