我有一个非常常规的融合表,其中包含数据行,其中每行都有一个包含多边形的位置列(或多个几何中的多个多边形)。我使用此融合表数据使用google.maps.FusionTablesLayer
在网页中的Google地图对象上绘制多边形。在CIRCLE
内创建一个使用单个位置作为ST_INTERSECTS
且半径较小的查询是一项简单的练习,并且运行良好。
但是,我现在需要能够查询融合表中与多个可能位置相交的所有行(实际上是搜索词的地理编码的结果)。每行只需要与要包括在结果集中的至少一个位置相交。
我已经尝试过或考虑过的事情......
1)多层不起作用,因为我最多只限于5个位置,其中只有一个可以按我需要的方式设置。
2)为每个位置构建LatLngBounds
,然后在边界形成的ST_INTERSECTS
上执行RECTANGLE
。很明显,一旦你这样做,这会显示两个遥远位置之间的所有多边形,但实际上不包含位置(因为我们现在正在寻找与两个点周围的大矩形相交的多边形) - 我不喜欢这样的东西不想要。
3)你无法做"ST_INTERSECTS(GEOMETRY, CIRCLE(location1, 1)) OR ST_INTERSECTS(GEOMETRY, CIRCLE(location2, 1))" <=
如果它有效,这将是一个完美的解决方案!
4)您不能使用融合表查询进行SQL联合。
5)您无法在单个融合表查询中执行多个SQL选择。
我能在单个融合表层中做到这一点吗?
提前感谢任何输入!
答案 0 :(得分:0)
我担心这里唯一可行的解决方案可能是首先请求行(带有ID的唯一列,但不是内部存储的rowId
),每个位置的单个请求。
获得所有结果后,根据返回的ID建立FTlayer查询,a'la:
where: "columnWithIds IN('collected','ids','from','the','previous','requests')"
如果这适用于您的情况将取决于