【问题标题】:Fusion table layer filtering based on polygon基于多边形的融合表层过滤
【发布时间】:2012-08-21 09:48:26
【问题描述】:

我有一个融合表地图示例,此链接中给出了 5 层:http://jsfiddle.net/ju2Re/

我想过滤图层,

首先我使用下拉菜单选择一个图层:Office hierarchy > Zone > Bagalkot

现在我想使用选择框仅在该多边形内选择 220 KV 站。

请任何人帮助。提前谢谢你。

【问题讨论】:

  • 您已经知道选择了哪个图层,现在您生成了一个WHERE 子句。只需将 where 子句仅应用于所选图层即可。
  • @Odi 能否请您提供代码 sn-p 以生成WHERE 子句?
  • 要编辑我的代码的哪一部分以添加WHERE 子句?请帮忙...
  • 好的,我检查了你的表格,它比我最初想象的要复杂一些。您拥有多个表中的数据。我希望你可以简单地做一个ST_INTERSECTS 来定义你想要你的数据的区域。但这不适用于 2 张桌子。如果添加每个“站”所在的“区域”信息,那么您实际上可以将其添加到 where 子句中吗?因此,我只需将另一列添加到带有区域 ID 的“站”表中。然后你可以简单地创建一个WHERE 子句,如where "Station Name" = <name> and "Zone ID" = <id>
  • 但是我在代码的哪一部分添加了WHERE 子句?我有点困惑。我也想通过下拉菜单中的 Circles、Divisions 以同样的方式过滤。

标签: map filtering polygon layer google-fusion-tables


【解决方案1】:

我不相信您可以使用融合表在本机上做到这一点(至少 不是现在)。唯一可用于“point in”的查询 多边形”分析是: ST_INTERSECTS(, ) .

这需要一个几何作为一个参数,但唯一的值是: - -

所以如果你有一个点,你可以用它来定义一个小圆圈,然后 将 ST_INTERSECTS 与多边形一起使用,但这不适用于多个 点。

根据您的表的当前大小,您可以使用 GViz 检索 来自 FusionTables 的数据并在浏览器中进行分析。

Proof of Concept(仅适用于“Geographical Heirarchy”/“District”)

代码向 google.maps.Polygon 添加了一个“Contains”方法,然后遍历标记,如果它们包含在“activePolygon”中,则显示它们。

Proof of Concept 应该处理所有有数据的情况

【讨论】:

  • 这是个好主意。但是我可以使用相同的概念过滤“Office Hierarchy > Zone/Circle/Division”吗?请解释Proof of Concept中给出的代码
  • 是的,您可以使用相同的机制过滤所有这些东西,我只是没有。添加了对该概念的简要说明。
  • 非常感谢。我可以在jsfiddle.net/ju2Re 中使用我的自定义信息窗口和此代码吗?
  • 就个人而言,我会先删除一堆现有代码。我不会为你编写代码,但可能(如果时间允许的话)做一个更实用的概念证明。您似乎缺少数据来完成您的过滤层次结构,还是我遗漏了什么?
  • 如果我要花更多的时间在上面,你应该让你的融合表可以下载(这样我就可以制作自己的副本)。
猜你喜欢
  • 1970-01-01
  • 2012-07-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多