2012-02-11 38 views
0

我在運行Fusion Style Layer時遇到了一些問題,我真的很感謝您的幫助。 我添加具有默認樣式層定義爲使用Maps API的FusionTableLayer的動態樣式

layer.set('styles', [{ 
       polygonOptions: { 
         fillColor: '#FFFFFF', 
         fillOpacity: 1, 
         strokeColor: '#000000', 
         strokeWeight: 1 
       } 
     }]); 

這工作得很好。然後爲此圖層設置一個點擊偵聽器。 的故事是這樣的:用戶點擊地圖上的一個功能。如果它的 屬性等於給定的值(例如在表單中),我希望這個 功能獲得不同於其餘的fillColor。

google.maps.event.addListener(okresy,'click', function(ev) { 
       nazev = ev.row.NAZEV.value; 
         layer.set("styles", [{ 
           polygonOptions: { 
             fillColor: '#FFFFFF', 
             fillOpacity: 1, 
             strokeColor: '#000000', 
             strokeWeight: 1 
           }, 
           where: "'NAZEV' = '"+nazev+"'", 
           polygonOptions : { 
             fillColor : '#008C00', 
             fillOpacity : 1, 
             strokeColor : '#000000', 
             strokeWeight : 1 
           } 
         }]); 

}); 

所以我要做的就是設置顏色#008C00到要素點擊和 的其它功能我給你相同的樣式在開始。 但是,無論我做什麼,我都無法讓它工作。當點擊某個功能 時,其餘功能 將獲得默認的半透明紅色。我錯過了什麼嗎?歌劇蜻蜓不報告任何代碼錯誤,所以我想語法是好的。

+0

你有沒有在你的整個頁面託管的地方,所以我們可以試試看,並調試?或者,也許你可以搭起一個jsFiddle? – 2012-02-11 16:42:48

+0

我上傳了代碼到http://jsfiddle.net/9Rayd/3/。希望它有效,以前從未使用過。 – 2012-02-11 20:16:34

回答

2

哈,問題解決了!我實際上需要更像這樣的東西:

okresy.set("styles", [{ 
     polygonOptions: { 
      fillColor: '#FFFFFF', 
      fillOpacity: 1, 
      strokeColor: '#000000', 
      strokeWeight: 1 }}, 
     {where: "'NAZEV' = '"+nazev+"'", 
     polygonOptions : { 
      fillColor : '#008C00', 
      fillOpacity : 1, 
      strokeColor : '#000000', 
      strokeWeight : 1 
     }} 
]); 

雖然調試器沒有報告任何錯誤,但這是令我困惑的。