1

「IN」演算子を使用して、Fusion Table からデータを取得しようとしています。非常に大きな文字列 (2000 以上の郵便番号) を検索すると、何も返されません。短い文字列 (2 つの郵便番号) を見ると、正しく動作します。

たとえば、これは機能します:

var zip = "76364,76373";
layer = new google.maps.FusionTablesLayer(tableid);
layer.setQuery("SELECT 'geometry' FROM " + tableid + " WHERE ZIP IN("+zip+")");
layer.setMap(map);

しかし、これはしません:

var zips = <?php echo $zips; ?>; //$zips is a JSON array
zips = zips.join();
layer = new google.maps.FusionTablesLayer(tableid);
layer.setQuery("SELECT 'geometry' FROM " + tableid + " WHERE ZIP IN("+zips+")");
layer.setMap(map);

Firebug で 400 エラーが発生します。

Google ドキュメントで制限を見つけることができませんでした。

4

1 に答える 1

2

URL の最大長 (2048 文字) に達しているようです。

フュージョン テーブル レイヤーに送信されたクエリは、各タイル画像の URL に追加されます。クエリが長すぎると、各タイル イメージの URL が URL 制限を超え、イメージが表示されなくなります。

于 2012-02-08T18:53:27.523 に答える