我正在使用gomap向地图添加一些标记。 gomap允许您添加您选择的图标,而不是使用相同的旧标记。我有几个这样的代码:
var constants = {
'nflIcon': 'Content/Images/green.png',
'bigBurrito': 'Content/Images/humongousBurrito.png'
};
$(function () {
$("#map").goMap({
latitude: 36.75,
longitude: -100,
maptype: 'ROADMAP',
zoom: 5
});
$.goMap.createMarker({
address: 'Green Bay, Wisconsin',
title: 'Green Bay Packers',
group: 'NFL',
icon: constants.nflIcon,
html: getPackers()
});
$.goMap.createMarker({
address: 'San Francisco, California',
title: 'San Francisco 49ers',
group: 'NFL',
icon: constants.nlfIcon,
html: '<h1>San Francisco 49ers</h1>'
});
...但constants.nflIcon的分配仅适用于一个(使用Green Bay Packers标记);所有其他人都使用传统的橙色反泪珠标记。
为什么?
答案 0 :(得分:2)
您在非工作电话中使用nlfIcon
,在工作电话中使用nflIcon
:
$.goMap.createMarker({
address: 'San Francisco, California',
title: 'San Francisco 49ers',
group: 'NFL',
icon: constants.nflIcon, // This is now fixed
html: '<h1>San Francisco 49ers</h1>'
});
如果我经常这样做,我会在createMarker
周围创建一个包装器来简化我的代码。例如,您可以执行以下操作:
function createMarker(options) {
var defaults = {icon: constants.nflIcon};
$.goMap.createMarker($.extend({}, defaults, options));
}
function createNFLMarker(options) {
var defaults = {group: "NFL"};
createMarker($.extend({}, defaults, options));
}
然后,您可以使用每个团队更改的详细信息(地址,标题等)来调用createNFLMarker
,而不必将复制粘贴代码的多个部分保持同步。