0

フュージョン テーブルで kml を使用して、ポリゴンの配列を Google マップに読み込んでいます。4色の配列があり、別の配列の値に応じて、プログラムでポリゴンをこれらの4色のいずれかに色付けしたいと思います。

どういうわけか、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);
}
4

2 に答える 2

1

できません。現在、FusionTablesLayer は 1 つのスタイル付きレイヤーに制限されており、最大 5 つのスタイルを適用できます。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);
于 2012-12-04T14:35:28.363 に答える
1

あなたがこれについて尋ねた最後の質問で述べたように、あなたのスタイルの配列は5つの要素しかありません

このアプローチ (Fusion Tables API v1 を使用し、現在、元のテーブルにはその列が含まれていなかったため、COUSUBFP ではなく名前で一致しています)はうまくいくかもしれませんが、ポリゴンをネイティブの Google Maps API v3 オブジェクトとしてレンダリングしているため、パフォーマンスの問題である可能性があります。

于 2012-12-04T14:38:05.727 に答える