可能重复:
之间找到两个纬度/长点的距离最快的方法
我有位置表,包括所有的纬度和经度值的位置。 我LAT获取特定位置。 LOGN。 和半径。 现在,我想找到这个范围内,并为指定纬度所有reocords。 而长。 值。 我使用下面的查询。 但我不知道是否能给予我正确的结果还是不行。
从给定的纬度和长我发现了lat.min和最大的 -
$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表的外键。
我很困惑,我得到的结果。 PLZ帮我。