我正在尝试使用“IN”运算符从Fusion Table获取数据。当我查看非常大的字符串(2000+邮政编码)时,不会返回任何内容。当我查看一个短字符串(两个邮政编码)时,它可以正常工作。
例如,这有效:
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 :(得分:2)
听起来你达到了最大网址长度(2048个字符)。
发送到Fusion Tables Layer的查询将添加到每个图块图像的URL中。如果查询太长,则每个图块图像的URL超出URL限制,并且不会显示图像。