gpt4 book ai didi

javascript - 以编程方式更改 FusionTablesLayer 的颜色

转载 作者:行者123 更新时间:2023-12-02 19:11:04 27 4
gpt4 key购买 nike

我正在使用融合表中的 kml 将多边形数组读取到 Google map 上。我有一个包含 4 种颜色的数组,我想根据另一个数组中的值以编程方式为这 4 种颜色之一的多边形着色。

不知何故, map 一次只为 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);
}

最佳答案

你不能。目前,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);

关于javascript - 以编程方式更改 FusionTablesLayer 的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13704781/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com