2012-01-14 67 views
2

使用谷歌地圖API(V3)我可以使用自定義圖標成功添加標記數組到地圖。如何動態更改谷歌地圖標記後添加

每個標記代表一個目的地,我想在各個目標名稱在頁面上的其他位置上鼠標移動時更改圖標圖像。

我可以添加事件監聽器來拾取鼠標,我知道我可以使用marker.setIcon(「imgurl」)來更改圖標,但是我無法弄清楚是如何引用特定的標記被改變?

我讀過,我可以在定義標記時添加「id」,但我無法弄清楚如何使用這個與marker.seticon結合來更新該特定標記。

感謝您的幫助。

回答

7

如果您有每個目的地的ID號,請保留由您的目的地索引的標記數組。

例如,

var myMarkers = [] 
for(var i = 0; i < destinations.length; i++) { 
    myMarkers[destination[i].id] = new google.maps.Marker(markerOpts) 
} 

,並在您的目的地鏈接別處:

onclick = function() { 
    myMarkers[destinationID].setIcon(otherIcon) 
} 
+0

WOW,感謝您的快速反應。這些目的地並沒有像這樣存儲在一個數組中,但是你的代碼對我來說足以存儲處理程序以便稍後引用更改。謝謝! – 2012-01-14 21:25:42

1

我通常會創建一個名爲markersArray的數組。然後我使用for循環爲每個標記marker_1,marker_2等命名。每創建一個之後,我將它推送到markersArray。現在你可以使用markersArray [i]來引用每個標記。