色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

mysql 根據經緯度算距離

張吉惟2年前9瀏覽0評論

MySQL是一種流行的關系型數據庫管理系統,可以通過它來計算兩個坐標點之間的距離。在MySQL中,我們可以使用以下公式來計算兩點之間的距離。

distance = 6371 * acos(cos(radians(lat1)) * cos(radians(lat2)) * cos(radians(long2) - radians(long1)) + sin(radians(lat1)) * sin(radians(lat2)))

上述公式中,lat1long1表示第一個坐標點的緯度和經度,lat2long2表示第二個坐標點的緯度和經度。該公式基于球形地球模型,使用了Haversine公式。

為了更好地使用MySQL計算兩點之間的距離,我們可以將上述公式轉化為可復用的函數。

CREATE FUNCTION `distance`(lat1 DECIMAL(9,6), lon1 DECIMAL(9,6), lat2 DECIMAL(9,6), lon2 DECIMAL(9,6)) RETURNS double DETERMINISTIC
BEGIN
DECLARE dist double;
SET dist = 6371 * ACOS(COS(RADIANS(lat1))*COS(RADIANS(lat2))*COS(RADIANS(lon2)-RADIANS(lon1))+SIN(RADIANS(lat1))*SIN(RADIANS(lat2)));
RETURN dist;
END

該函數接受四個參數,分別是兩個坐標點的經緯度。經度和緯度都是小數值,DECIMAL(9,6)指定了小數點后最多有6位數字。

當需要計算兩點之間的距離時,我們可以調用該函數并傳遞經緯度參數。

SELECT distance(40.712776, -74.005974, 30.267153, -97.743057);

上述查詢將返回兩點之間的距離,單位為千米。