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

考えられる答えは、テーブル内のデータを事前にレンダリングすることです。基本的に、タグとタイトルの集合である別の列を追加します。次に、1つの'tags_or_titles'列のみをクエリする必要があります。もちろん、これは、データをフュージョンテーブルにエクスポートするときに、事前にデータを変更することを意味します。

于 2012-05-03T20:20:22.543 に答える
2

「Show_In_Results」という列をテーブルに追加するのはどうですか。

次に、2つの個別のクエリを実行して、検索語が特定の列で見つかったかどうかに基づいて、データの各行のその列を更新します。

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 に答える