2009-06-23 18 views
6

GeoPtプロパティに基づいて(現在の場所から)最も近いエンティティを返すGQLクエリを作成するにはどうすればよいですか?私はちょうど合理的に近い距離のエンティティのセットを計算する '距離'関数を作成する必要がありますか?Google App EngineのGeoPtプロパティで「近く」のエンティティをクエリするにはどうすればよいですか?

ありがとうございます!

答えて

9

App Engineは、特別GeoPtのプロパティを処理しません - それは、空間的インデックスに組み込まれています。ただし、空間インデックスのサポートを追加するサードパーティのライブラリが多数あります。最高のものは(私の意見では)geomodelです。

+0

今後、空間索引付けをサポートする計画はありますか? – Lipis

+0

@Lipisロードマップでは何も発表していません。 –

+0

少なくとも何も公開されていません..世界の残りの部分が分からないものを共有することができればと願っていました。:) 2012年に来る世界の終わりの1日前に、うまくいけばいいと思います。 :P良い仕事を続ける.. – Lipis

0

geohashは異なるハッシュで非常に近い点を設定し、別のまたは次のレイヤーを優先する必要があります。半径、二次内/外形テスト、または任意の数学的形状を作成し、その点が外形内にあるかどうかをテストすることができます。

2

は私が掘り成果のいくつかの種類に行くよと思いますが、ここにある:私はこの問題の解決策を探していました

と、このGoogleのoficialドキュメントに出くわした: https://cloud.google.com/appengine/docs/java/search/query_strings#Java_Queries_on_geopoint_fields

I本当にGoogleがこれについてもっと騒がしいはずだったと思う。私は同じことをしているPythonの教訓を持っているが、Javaのためにそれを行う方法については何も言わないというのは変だと思う。