1

我正在尝试使用“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 文档中找到限制。

4

1 回答 1

2

听起来您正在达到最大 URL 长度(2048 个字符)。

发送到 Fusion Tables Layer 的查询将添加到每个平铺图像的 URL。如果查询过长,那么每个平铺图片的 URL 超过 URL 限制,图片将不会显示。

于 2012-02-08T18:53:27.523 回答