0

我有一个谷歌地图,它从 Fusion Tables 中提取数据并显示它。当您单击一个多边形时,地图会放大并显示该原始多边形内的更多多边形。这是使用两个单独的 Fusion Tables 和一些 jquery 来完成的。

我的问题是试图只显示原始多边形内的多边形,而不是整个集合(例如,只显示单击状态内的县,而不是美国的所有县)。使用代码 xxyy 存储子多边形,其中 xx 是原始多边形,yy 是子多边形(因此 1001 将是第 10 个州和该州内的第一个县)。

如何使用 Fusion Tables “like SQL”脚本,仅提取代码前两位数字等于特定数字的子多边形?这是我尝试过的:

map.setOptions({
  'query':
    {
    select: 'geometry', 
    from: ftnumber, 
    where: "'name' starts with " + stateCode
    }
});

name 是具有 4 位代码的列, stateCode 是一个变量,其中存储了状态的 2 位代码。

我也试过:

map.setOptions({
   'query':
      {
      select: 'geometry', 
      from: ftnumber, 
      where: "'name' like " + stateCode + "__"
      }
});

第二个选项更可取(如果可能的话),因为如果需要,我可以使用该语法进一步向下钻取。

最终解决方案:

  • 列“名称”设置为数字
  • 查询是

    stateCodeHigh = stateCode + 100; map.setOptions({ 'query': { select: 'geometry', from: ftnumber, where: "name >= " + stateCode + " AND name < " + stateCodeHigh } });

4

1 回答 1

0

如果“名称”列是字符串类型,那么这两个查询都应该有效。

通过选择Edit > Modify columns检查列的类型。单击左侧列中的“名称”列。如果该列不是文本类型,请使用“类型”下拉菜单将该列设置为“文本”。

于 2011-12-20T02:32:50.407 回答