2012-12-04 68 views
0

我正在使用kml在融合表中讀取Google Map上的多邊形數組。我有4種顏色的數組,我想以編程方式爲多邊形上色這4種顏色之一,這取決於另一個數組中的值。以編程方式更改FusionTablesLayer的顏色

不知何故,即使我指定只有4種樣式,地圖每次只能着色4個多邊形。我如何爲所有130個多邊形着色?

這裏是我的代碼:

function setInitialStyles() { 
layer = new google.maps.FusionTablesLayer({ 
     map : map, 
     query : { 
     select : "geometry", 
     from : "1gwSN6n_00uZ7YuAP7g4FiUiilybqDRlRmWJrpvA" 
     } 
    }); 

var options = { 
     styles : [ 
     { 
     polygonOptions: 
     { 
      fillColor: "#ffffff", 
      strokeColor: "#bcbcbc", 
      fillOpacity: ".75" 
     } 
    } 
    ] 
    }; 

var styles = []; 

var style1 = candColor[0]; 
var style2 = candColor[1]; 
var style3 = candColor[2]; 
var style4 = candColor[3]; 

for (var i=0;i<countyCodes.length; i++) { 
    var c = countyCodes[i]; 
    var whereClause = "'COUSUBFP' = " + c; 
    var myStyle; 
    if (countyColors[i] == "#0D58A6") { myStyle = style1; } 
    if (countyColors[i] == "#981400") { myStyle = style2; } 
    if (countyColors[i] == "#E3D132") { myStyle = style3; } 
    if (countyColors[i] == "#007F37") { myStyle = style4; } 

    options.styles.push({ 
      where: whereClause, 
      polygonOptions: { 
      fillColor: myStyle 
      } 
    }); 

} 


layer.setOptions(options); 
} 

回答

0

你不能。目前FusionTablesLayer僅限於一種樣式的圖層,最多可以有五種應用樣式。請參閱有關limitation of FusionTablesLayer的文檔。

您可以定義適用於所有多邊形的常規樣式規則(如WHERE子句)。但是,你只能定義5個這樣的規則。

layer = new google.maps.FusionTablesLayer({ 
    query: { 
    select: 'geometry', 
    from: '1gwSN6n_00uZ7YuAP7g4FiUiilybqDRlRmWJrpvA' 
    }, 
    styles: [{ 
    polygonOptions: { 
     fillColor: "#ffffff", 
     strokeColor: "#bcbcbc", 
     fillOpacity: ".75" 
    } 
    }, { 
    where: "population < 1000", 
    polygonOptions: { 
     fillColor: "#0000FF" 
    } 
    }, { 
    where: "population > 10000", 
    polygonOptions: { 
     fillOpacity: 1.0 
    } 
    }] 
}); 
layer.setMap(map); 
+0

但我有一個風格的圖層與一個選項被風格。這只是這種選擇的四種方式之一。這仍然不可能嗎? – LauraNMS

+0

如果您只有4種樣式,並且所有具有相同樣式的行在列中具有相同的值,則可以定義這4種樣式。無需遍歷所有多邊形。 – Odi

+0

我會嘗試。謝謝! – LauraNMS

相關問題