2016-05-16 5 views
0

私はelasticsearchでジオバウンディングボックスクエリを行うことができるようにしたいと思います。エラーのためにいくつかのマージンがあります(ほとんどの場合、同じ場所にmaxとminを入れます)。理想的には、四隅にクオーターサークルを付けて長方形に素敵な角を付けるのが理想ですが、右上にxマイルを追加し、左下からxを差し引くだけで十分です。(Elasticsearch)ジオバウンディングボックスクエリのエッジに±範囲を追加する方法はありますか?

私はlat awayでdiffernceに距離を変換することでこれを行うことができますが、これは実際の緯度によってマッピングが変化するので非常に複雑です。そのようにはしません。

ご意見ありがとうございます。

答えて

0

完全に丸い四角形を定義することはできませんが、境界ボックスの代わりにGeo Polygon Queryを使用すると近似できますが、丸い角のいくつかの点をプログラムで計算するだけで済みます。例えば、あなたの左上隅をしていると仮定するとX0、Y0座標:あなたが望む限り多くの中間点で、

enter image description here

などなど、他のコーナーのために。

しかし、ちょっと残虐なように見えますが、バウンディングボックスを大きくしたいかもしれません。

UPDATE:GeoPointの緯度と経度をaccessed through scriptingことができるので、別の方法は、Scripting介してカスタム機能を実装することができます。

+0

あなたの答えをありがとう。境界ボックスを単に拡張するだけで、うまくいくでしょうが、指定された数のマイルに基づいてコーナーを移動させる緯度と経度の度合いは特に簡単ではありません。それは可能ですが、私は誰かがもっとエレガントな解決策を知りたいと思っていました。これは、elasticsearchがジオ・ディスタンス・クエリーのためにシーンの背後で(そして効率的に) – kiml42

+0

あなたは自分の距離関数を実装するためにスクリプトを使うことができます。私の更新された答えは – dipanda

+0

です。もう一度やっても問題はありません。 elasticsearchを持っている簡単な方法があれば効率的にやります。 – kiml42

関連する問題