2016-04-04 79 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