5

根据https://developers.google.com/fusiontables/docs/developers_reference OR 操作不允许作为过滤条件的一部分。所以我试图想出一种创造性的方法来解决以下问题:

我有一个融合表支持的谷歌地图,其中包含数百个地点,并且希望将其过滤到仅具有“标签”或“标题”包含搜索参数的地点。

理想情况下,我可以将以下内容用作我的过滤条件:

tags CONTAINS IGNORING CASE 'searchterm' OR title CONTAINS IGNORING CASE 'searchterm'

但是融合表 API 根本不允许这样做。那么该怎么办?进行 2 个单独的查询,然后过滤掉重复项?这意味着我不能使用漂亮的 FusionTablesLayer 预渲染平铺功能。

你会怎么做?

4

2 回答 2

3

一个可能的答案是预渲染表中的数据。本质上添加另一列,它是标签和标题的聚合。然后我只需要查询一个'tags_or_titles'列。当然,这意味着当我将数据导出到融合表中并且感觉不那么好和干净时,会预先进行更多的数据处理......

于 2012-05-03T20:20:22.543 回答
2

如何在您的表中添加一个名为“Show_In_Results”的列,

然后运行两个单独的查询,根据是否在特定列中找到搜索词来更新每行数据的该列。

UPDATE 'table_id'
SET Show_In_Results = 1

UPDATE 'table_id'
SET Show_In_Results = 1
WHERE tags CONTAINS IGNORING CASE 'searchterm' 

UPDATE 'table_id'
SET Show_In_Results = 1
WHERE title CONTAINS IGNORING CASE 'searchterm' and Show_In_Results <> 1

然后,当您渲染地图图层时:

SELECT 'columns' FROM 'table_id' WHERE Show_In_Results = 1
于 2012-05-04T15:20:50.053 回答