現在、テキサス州の郡の境界を表示するために、郡情報の Google マップ フュージョン テーブルを使用しています。テキサス州には 200 以上の郡があります。各郡の値の配列をループしており、配列の値に基づいて郡を色分けする必要があります。Stop
郡には、Warning
、の 4 つのレベルの色がありWatch
ますOpen
。色が 5 つの郡にのみ適用されていることを除いて、すべてが機能しているようです。スタイルの制限は 5 で、レイヤーの制限も 5 ですが、1 つのレイヤーと 4 つのスタイルしか使用していません。
誰かが私が間違っていることを教えてもらえますか? それとも、これは API 経由では不可能ですか?
以下はコードのスニペットです。
var styles = new Array();
var ftLayer = new google.maps.FusionTablesLayer();
function loadTexas() {
loadFusionLayer('TX');
ftLayer.setMap(map);
for (var i = 0; i < aryCounty.length; i++) {
styleLayer("'State Abbr.' = 'TX' AND 'County Name' = '" +
aryCounty[i].County + "'", 1000);
}
ftLayer.set('styles', styles);
}
function loadFusionLayer(state) {
if (state != null) {
where = "'State Abbr.' IN ('" + state + "')";
}
var select = "geometry, 'State Abbr.', 'County Name'";
ftLayer.setOptions({
query: {
select: select,
from: countyTableId,
where: where
}
});
}
function styleLayer(where, actualValue) {
var color = setPolygonColorBy(actualValue);
styles.push({
where: where,
polygonOptions: {
fillColor: color,
fillOpacity: 0.6
}
});
}
function setPolygonColorBy(actualValue, divisor) {
var status;
var stop = STATUS_LAYER_STYLES["Stop"].color;
var warning = STATUS_LAYER_STYLES["Warning"].color;
var watch = STATUS_LAYER_STYLES["Watch"].color;
var open = STATUS_LAYER_STYLES["Open"].color;
if (actualValue >= minValue && actualValue < midValue) {
status = watch;
}
else if (actualValue >=midValue && actualValue < maxValue) {
status = warning;
}
else if (actualValue >= maxValue) {
status = stop;
}
else {
status = open;
}
return status;
}