2015-01-21 56 views
-2

我想要一張地圖,它可以在選擇單選按鈕時更改所有標記圖標(在某個類別內)。如何更改Google地圖上所有地塊的標記圖標?

例如,具有包含年份的單選按鈕列表,並且在選擇一年時更改所述類別中的每個城市的標記。

example

我已經看過了無論是單獨使用谷歌地圖API,或谷歌融合表或任何處理谷歌地圖API,但到目前爲止,我無法找到任何的JavaScript插件的例子。

回答

-1

創建壺

Paris = new google.maps.Marker({...}) 

在選擇事件

Paris.setIcon() 
+0

啊,這樣就可以在地圖上設定好後觸發?我認爲像這樣添加標記只會在地圖呈現時發生一次。 謝謝,我會盡力回報。 – pax 2015-01-21 07:47:19

+0

另外,我需要一次更改很多標記,選擇一個額外的字段,一個接一個會是一個矯枉過正的問題,在閱讀你的答案後,我編輯了這個問題。 – pax 2015-01-21 08:12:02

-2

有幾種方法,你可以做到這一點。下面是一個根據所選年份使用一系列標記和顏色數組的示例。

您可以/應該將這些顏色與標記一起存儲(例如在數據庫中)。

基本上,您需要將每個標記推送到一個數組,以便您可以遍歷它們並在需要時應用更改。

// Your array of markers 
var latLngs = [ 
    new google.maps.LatLng(40.7, -74), 
    new google.maps.LatLng(40.8, -73), 
    new google.maps.LatLng(40.9, -72), 
    new google.maps.LatLng(41, -71) 
]; 

// Your arrays of colors (for each year) 
var colors1 = ['red', 'blue', 'yellow', 'green']; 
var colors2 = ['blue', 'red', 'green', 'yellow']; 
var colors3 = ['green', 'yellow', 'blue', 'red']; 

// Create the markers and push them to an array 
for (var i = 0; i < latLngs.length; i++) { 

    var marker = new google.maps.Marker({ 
     position: latLngs[i], 
     icon: 'http://www.google.com/intl/en_us/mapfiles/ms/micons/' + colors1[i] + '-dot.png', 
     map: map 
    }); 

    markers.push(marker); 
} 

希望你明白了。

JSFiddle demo