【发布时间】:2012-07-15 04:36:40
【问题描述】:
可能重复:
Fastest Way to Find Distance Between Two Lat/Long Points
我有位置表,其中包含所有位置及其纬度和经度值。我正在获取特定的位置。登录。和半径。现在,我想找到这个半径内和给定纬度的所有记录。并且很长。价值观。我正在使用以下查询。但我不确定它是否给了我正确的结果。
从给定的 lat 和 long 我发现 lat.min 和 max 为 -
$lng_min = $longitude - $radius / abs(cos(deg2rad($latitude)) * 69);
$lng_max = $longitude + $radius / abs(cos(deg2rad($latitude)) * 69);
$lat_min = $latitude - ($radius / 69);
$lat_max = $latitude + ($radius / 69);
然后使用以下查询 -
SELECT * FROM merchant_branches,locations
where locations."coorX" BETWEEN $lng_min AND $lng_max
AND
locations."coorY" BETWEEN $lat_min AND $lat_max
and merchant_branches.location_id = locations.id
其中location id 是merchant_brach 表中的外键。
我对我得到的结果感到困惑。请帮帮我。
【问题讨论】: