我想在飞行中更改标记的地图。具体来说,我有三个不同标记的集合,所以我用未定义的地图构建它们,然后在我在集合之间切换时尝试设置它们的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...
答案 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)