我不确定以下查询有什么问题:
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的记录但是当我检查结果时,它给我的记录超过20000 mtr距离,如24286米距离。 我不确定上述查询有什么问题。 任何建议PLZ。
答案 0 :(得分:1)
没有错,你只是使用盒子而不是圆圈所以这是正常的。 The manual明确指出:
此框中的某些点比指定的大圆圈更远 距离位置的距离,所以使用earth_distance进行第二次检查 应该包含在查询中。
因此,只需在外部查询中选择距离