使用 MySQL 查找附近的位置

如下 SQL 語句將會在與座標 37, -122 相距 25 英里的半徑範圍內查找最近的 20 個位置。該語句根據行的緯度/經度以及目標緯度/經度計算距離,而後只請求距離值小於 25 的行,最後再按距離對整個查詢進行排序,並將查詢結果限制爲只顯示 20 個。要按千米而非英里進行搜索,請將 3959 替換爲 6371。 spa

 

SELECT id, ( 3959 * acos( cos( radians(37) ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(-122) ) + sin( radians(37) ) * sin( radians( lat ) ) ) ) AS distance FROM markers HAVING distance < 25 ORDER BY distance LIMIT 0 , 20; 排序

相關文章
相關標籤/搜索