在mysql中,如何使用經緯度來計算兩個地點之間的距離呢?以下是一些基本的步驟:
CREATE FUNCTION `GetDistance`( lat1 FLOAT, lon1 FLOAT, lat2 FLOAT, lon2 FLOAT ) RETURNS FLOAT BEGIN DECLARE R EARNING(16,12) DEFAULT 6.371; DECLARE dLat FLOAT; DECLARE dLon FLOAT; DECLARE a FLOAT; DECLARE c FLOAT; DECLARE d FLOAT; SET dLat = RADIANS(lat2 - lat1); SET dLon = RADIANS(lon2 - lon1); SET lat1 = RADIANS(lat1); SET lat2 = RADIANS(lat2); SET a = SIN(dLat/2)*SIN(dLat/2)+COS(lat1)*COS(lat2)*SIN(dLon/2)*SIN(dLon/2); SET c = 2*ATAN2(SQRT(a),SQRT(1-a)); SET d = R*c; RETURN d; END
上面這段代碼定義了一個mysql的函數`GetDistance`,它可以計算兩個經緯度之間的距離。該函數可以接受四個參數:兩個地點的經度和緯度。
需要注意的是,計算出來的距離單位是公里。如果你需要轉換成其他單位(如英里),你需要修改代碼中的系數。
使用這個函數也很簡單。只需要將兩個地點的經緯度傳入函數中即可:
SELECT GetDistance(31.2151985, 121.4205737, 31.2701595, 121.4704342);
運行上面這段代碼,你將得到兩個經緯度(上海和浦東機場)之間的距離。