-1

複数のスタイルを Google Fusion Table Layer に適用しようとしています。

これは機能し、配列内にあるすべてのポリゴンを青色に着色します。

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

    styles: [{
     polygonOptions:
      {
              fillColor: "#ffffff",
              strokeColor: "#bcbcbc",
              fillOpacity: ".75"
      }
    },
    {
          where: whereClause,
          polygonOptions: {
            fillColor: "#0D58A6"
          }
    }

    ]

    });
layer.setMap(map);

しかし、これは機能しません。マップにポリゴンが表示されません。

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

    styles: [{
     polygonOptions:
      {
              fillColor: "#ffffff",
              strokeColor: "#bcbcbc",
              fillOpacity: ".75"
      }
    },
    {
          where: whereClause,
          polygonOptions: {
            fillColor: "#0D58A6"
          }
    }
    ,
    {
          where: whereClause,
          polygonOptions: {
            fillColor: "#ff0000"
          }
    }
    ]

    });
layer.setMap(map);

同じものをある色から別の色に着色している​​ことは気にしないでください.2番目のスタイルが機能するようにしたいだけです. 2 番目のスタイルを取り出すと、すべて問題ありません。私は 2 番目のスタイルを入れました。ポリゴンはもうありません。

誰かが私が間違っていることを教えてもらえますか?

4

1 に答える 1

1

これはエラーである可能性が非常に高いです (2 つの異なるスタイルを持つまったく同じ where 句)。

{
      where: whereClause,
      polygonOptions: {
        fillColor: "#0D58A6"
      }
}
,
{
      where: whereClause,
      polygonOptions: {
        fillColor: "#ff0000"
      }
}

where句は一意である必要があると思います。

アップデート:

私の現在の推測では、サーバーに送り返されるデータのサイズに関するクエリの制限に達しているということです。

各 whereClauses は独立して動作します

これが問題である場合 (クエリ文字列が大きすぎる場合)、「COUSUBFP」コードをより短いもの (10 進数 3 桁または 16 進数 2 桁) にマッピングすると、機能する可能性があります (または、先頭の「0」を切り捨てるだけです) )。

 03320 -> 0
 03608 -> 1
 etc.
于 2012-12-05T17:38:48.397 に答える