2016-04-04 51 views
0

我想从我的Google地图中移除一个标记,但似乎无法使其工作。我找到了各种答案,都告诉我在标记上使用.setMap(null),但我似乎无法使其工作。删除/移动Google地图标记(jquery-ui-maps)

$map_canvas = $('#map_canvas'); 
var youreHere_Marker; 
function centerMapToAddress(address) { 
    geocoder.geocode({ 'address': address}, function(results, status) { 
     if (status == google.maps.GeocoderStatus.OK) { 
      if(typeof youreHere_Marker!=="undefined"){ 
       youreHere_Marker.setMap(null); 
      } 
      youreHere_Marker = $map_canvas.gmap('addMarker', {'position': results[0].geometry.location.lat()+','+results[0].geometry.location.lng(), 'bounds': true}); 
     } 
    }); 
} 

我得到TypeError: youreHere_Marker.setMap is not a function。据我所知,这意味着变量youreHere_Marker没有方法.setMap(),但如果我做console.log(youreHere_Marker)并检查对象,我可以看到该方法。

我在地图上有更多标记,通过MarkerClusterer。这些应该保持不变

我有我感觉我很接近,有人可以指出我在正确的方向吗?

编辑:我也试过.setPosition(),同样的错误。我假设我使用的变量不正确,但我不知道如何正确引用它。

+0

你能做一个小提琴吗? –

+0

不是,这是一个更大的项目,这是相关部分。这添加了我想要移除的一个标记。 – Martijn

回答

0

好,我是用谷歌地图的工作没有jQuery的,但我认为(我不知道,不过你可以试试),你应该得到与下面的代码的标志:

youreHere_Marker = $map_canvas.gmap('get', 'markers')[0]; 
youreHere_Marker.setMap(null); 

我米真的不知道它会做你想做的,但有可能这会工作:)
我希望你能解决你的问题。
谢谢。 :)

+0

不太清楚为什么,但这是做的工作。如果我认为'.gmap('get','markers')[0]'返回最后添加的标记,我是对的吗? – Martijn

+0

@Martijn我无法找到jquery-ui-map的文档,但是我发现了一些消息来源,并认为gmap('addMarker',....不会返回已经创建的标记并获取它应使用其他方法(如gmap('get','markers'),但最后一个方法返回所有标记,这就是为什么我们只需要第一个标记:) –

+0

标记的答案是解决方案如果您找到任何文档或可以自己解释一下,你会得到更多的赞扬:) – Martijn