2010-03-24 81 views
0

每次我點擊地圖時,地圖上都會放置一個新的標記。問題是我只需要一個標記,如果我點擊幾次,每次添加一個新標記。僅添加一次Google地圖上的標記

如何更改代碼,以便只放置一個標記,並且當再次單擊地圖時,它會更改其位置?

這是到目前爲止我的代碼:

function clicked(overlay, latlng) { 
    var icon3 = new GIcon(); 
    icon3.image = "marker.png"; 
    icon3.iconAnchor = new GPoint(15, 40); 

    var marker2 = new GMarker(latlng, { icon: icon3, draggable: true, title: 'Drag me' }); 
    map.addOverlay(marker2); 

} 

回答

1

我會建議保持​​外clicked功能的一個實例,那麼如果MARKER2爲null,製作和添加一個新的人喜歡你現在的樣子,否則叫marker2. setLatLong (latlng);來更新它的位置。

未經測試示例代碼:

var marker2; 

function clicked(overlay, latlng) { 
    if (marker2 == null) { 
    var icon3 = new GIcon(); 
    icon3.image = "marker.png"; 
    icon3.iconAnchor = new GPoint(15, 40); 

    marker2 = new GMarker(latlng, { icon: icon3, draggable: true, title: 'Drag me' }); 
    map.addOverlay(marker2); 
    } 
    else { 
    marker2.setLatLong(latlng); 
    } 
}
+0

不錯,但是我認爲這個並不會去除疊加層,即標記仍然存在。 – Vonder 2010-03-24 19:50:14

+0

你沒有在你的問題中提及任何關於疊加層的內容。 – Jess 2010-03-24 19:55:51

+0

O RLY? 「如何更改代碼,以便只放置一個標記,當地圖再次單擊時,它只是改變其位置」 – Vonder 2010-03-24 20:03:25

0

您將需要實施某種形式的檢查,看是否標誌已經放置。一種選擇是保存已添加的標記列表,並在調用函數將標記添加到地圖之前,在特定點檢查標記列表。如果您需要代碼示例,請告訴我。

+0

我不是在尋找,但只是一個簡單的(刪除以前的覆蓋功能)。檢查標記是否被添加沒有意義 - 這是不可能的,因爲每個點都有2個數字指定的位置,每個數字有15個小數位,並且您還必須處理數據庫。 – Vonder 2010-03-24 19:42:07

0

好了,不打擾,我理解了它自己。我剛剛使用map.clearOverlays();在標記被放置並且解決了問題之前。

相關問題