Google Maps v3更改标记的地图

时间:2011-05-16 18:36:58

标签: javascript jquery google-maps

我想在飞行中更改标记的地图。具体来说,我有三个不同标记的集合,所以我用未定义的地图构建它们,然后在我在集合之间切换时尝试设置它们的map属性。它不起作用 - 只有在构造函数中传递地图时才会显示标记。

//Build a new marker with no map
var marker = new google.maps.Marker({
    position: pos,
    title: el.name + " #" + el.location_id,
    map: null
});
markers[el.location_id] = marker;

//Later, when displaying
$.each(markers, function(i, marker){
    marker.map = map;
});
//Marker doesn't show up.

此外,当我创建一个标记,然后删除它的地图时,它仍会显示:

var marker = new google.maps.Marker({
    position: pos,
    title: el.name + " #" + el.location_id,
    map: map
});
marker.map = null;
//Marker is still on the map...

2 个答案:

答案 0 :(得分:0)

您想使用Marker对象的map setter方法,即:

$.each(markers, function(i, marker){
    marker.setMap(map);
});

将地图设置为null应将其从显示标记对象的任何地图中删除。

请参阅v3文档下的methods部分。

答案 1 :(得分:0)

你需要使用Marker的setMap()方法,所以在你的情况下

marker.setMap(map)

删除标记:

marker.setMap(null)