0

我正在使用 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 标记);所有其他人都使用传统的橙色反向泪珠标记。

为什么?

4

1 回答 1

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每个团队更改的详细信息(地址、头衔等),而不必让复制粘贴的代码的多个部分保持同步。

于 2013-11-07T03:03:56.817 回答