Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 谷歌地图v3改变标记';s地图_Javascript_Jquery_Google Maps - Fatal编程技术网

Javascript 谷歌地图v3改变标记';s地图

Javascript 谷歌地图v3改变标记';s地图,javascript,jquery,google-maps,Javascript,Jquery,Google Maps,我想在飞行中更改标记的地图。具体来说,我有三个不同标记的集合,所以我用一个未定义的映射构建它们,然后在集合之间切换时尝试设置它们的映射属性。它不起作用-标记仅在构造函数中传递贴图时显示 //Build a new marker with no map var marker = new google.maps.Marker({ position: pos, title: el.name + " #" + el.location_id, map: null }); marke

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

//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...

您希望使用标记对象的地图设置器方法,即:

$.each(markers, function(i, marker){
    marker.setMap(map);
});
将映射设置为null应将其从显示标记对象的任何映射中删除

请参阅v3文档下的部分。

您需要使用标记的setMap()方法,因此在您的情况下

marker.setMap(map)
要删除标记,请执行以下操作:

marker.setMap(null)