2012-02-08 11 views
1

"IN"演算子を使用して、フュージョンテーブルからデータをフェッチしようとしています。非常に大きな文字列(2000+郵便番号)を見ると、何も返されません。私は短い文字列(2つの郵便番号)を見ると、正しく動作します。例えばFusion Tablesのクエリの長​​さに制限はありますか?

、これは動作します:

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のドキュメントで制限を見つけることができませんでした。

+0

ねえ、この問題の解決策を見つけましたか? – dang

答えて

2

URLの最大長(2048文字)のように聞こえます。

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

+2

これを避けるためにいくつかの提案が必要ですか? –

+0

これを解決する方法に関するアイデアはありますか? – dang

関連する問題