MySQLで近くの場所を見つける
これは、37、-122座標から半径25マイル以内にある最も近い20の場所を見つけるSQLステートメントです。その行の緯度/経度とターゲットの緯度/経度に基づいて距離を計算し、距離の値が25未満の行のみを要求し、クエリ全体を距離順に並べ替えて、結果を20に制限します。マイルではなくキロメートルで検索するには、3959を6371に置き換えます。
テーブル構造:
id,name,address,lat,lng
注-ここでは、緯度=37および経度=-122です。だからあなたは自分のものを渡すだけです。
SELECT id, ( 3959 * acos( cos( radians(37) ) * cos( radians( lat ) ) *
cos( radians( lng ) - radians(-122) ) + sin( radians(37) ) *
sin( radians( lat ) ) ) ) AS distance FROM your_table_name HAVING
distance < 25 ORDER BY distance LIMIT 0 , 20;
詳細については、こちら をご覧ください。 。