“付近のエンティティを照会するにはどうすればよいですか” Google App EngineのGeoPtプロパティを使用しますか?

StackOverflow https://stackoverflow.com/questions/1033240

質問

GeoPtプロパティに基づいて(現在の場所から)最も近いエンティティを返すGQLクエリを作成するにはどうすればよいですか?かなり近い距離にある一連のエンティティを計算する「距離」関数を作成する必要がありますか?

事前に感謝します!

役に立ちましたか?

解決

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

他のヒント

App Engineの場所を Quadtree 構造に保存できます。

実行方法の説明は次のとおりです。 Google App Engineの地理クエリ

私は何らかの掘り出し物の成果に行くと思いますが、ここにあります:

この問題の解決策を探していたところ、このGoogleの公式ドキュメントに出会いました。 https://cloud.google.com/appengine/docs/java/search / query_strings#Java_Queries_on_geopoint_fields

Googleは、これについてもう少し騒ぐべきだったと思う。彼らが同じことをするためのPythonのレッスンを持っているのは奇妙だと思うが、Javaのためにそれをする方法については何も言っていない。

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top