重複の可能性:
2 つの緯度/経度ポイント間の距離を見つける最速の方法
緯度と経度の値を持つすべての場所で構成される場所テーブルがあります。特定の場所を緯度で取得しています。ログインします。と半径。今、私はこの半径内のすべてのレコードを見つけたいと思っています。そして長い。値。次のクエリを使用しています。しかし、正しい結果が得られるかどうかはわかりません。
与えられた緯度と経度から、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
ロケーション ID は、merchant_brach テーブルの外部キーです。
得られた結果について混乱しています。助けてください。