0

以下のクエリの何が問題なのかわかりません。

SELECT id,  earth_distance(ll_to_earth( 41.273147, -75.896858 ), 
ll_to_earth(business_address_latitude, business_address_longitude)) as distance_from_current_location FROM events 
WHERE earth_box( ll_to_earth(41.273147, -75.896858), 20000.00) @> ll_to_earth(business_address_latitude, business_address_longitude);

半径20000のレコードを検索しようとしましたが、結果を確認したところ、24286メートルの距離のように20000メートル以上の距離のレコードが得られました。上記のクエリで何が問題なのかわかりません。任意の提案をお願いします。

4

1 に答える 1

1

何も問題はありません。円の代わりにボックスを使用しているだけなので、正常です。マニュアルには次のように明確に記載されています。

このボックス内のいくつかのポイントは、その場所から指定された大圏距離よりも離れているため、earth_distance を使用した 2 番目のチェックをクエリに含める必要があります。

そのため、外側のクエリで距離が <=20000 のポイントを選択するだけです。

于 2013-05-06T10:10:58.500 に答える