mysql 座標查詢計算距離

-- 6378.138這個是地球的直徑,單位公里.latitude是用戶位置的緯度,longitude是用戶位置經度.latitude 爲商戶的緯度字段,
-- longitude爲商戶的經度字段。上面一段sql計算得出根據用戶經緯度計算與商戶的距離。
-- 30.5821398542,
 
SELECT
    ROUND( 6378.138 * 2 * ASIN( SQRT( POW( SIN( ( 傳入維度 * PI() / 180 - s.lat * PI() / 180 ) / 2 ), 2 ) + COS(傳入維度 * PI() / 180) * COS(s.lat * PI() / 180) * POW( SIN( ( 傳入經度 * PI() / 180 - s.lon * PI() / 180 ) / 2 ), 2 ) ) ) * 1000 ) AS distance, id, `name` FROM shop s HAVING distance <= 5000
ORDER BY distance ASC
相關文章
相關標籤/搜索