mysql計算經緯度亮點之間的距離
1、計算距離的公式比較長(網上查找),建一個mysql函數:
delimiter $$ CREATE FUNCTION FUN_JW_DIST(lng1 double(15,9), lat1 double(15, 9), lng2 double(15,9), lat2 double(15,9)) RETURNS int BEGIN DECLARE dist int;SET dist = round(6378.1382asin(sqrt(pow(sin((lat1pi()/180-lat2pi()/180)/2),2)+cos(lat1pi()/180)cos(lat2pi()/180) pow(sin((lng1pi()/180-lng2pi()/180)/2),2)))*1000);
RETURN (dist); END$$ delimiter ;</pre>
測試:
例如:
第一點(116.359751000, 39.936868000) 第二點(117.291179000, 35.657141000)
在數據庫中執行 select round(6378.138*2*asin(sqrt(pow(sin((39.936868000*pi()/180-35.657141000*pi()/180)/2),2)+cos(39.936868000*pi()/180)*cos(35.657141000*pi()/180)* pow(sin( (116.359751000*pi()/180-117.291179000*pi()/180)/2),2)))*1000)執行結果: 483402
執行: select FUN_JW_DIST(116.359751000, 39.936868000, 117.291179000, 35.657141000);
執行結果:483402
===========
如果不想使用這個函數可以刪除:
drop function FUN_JW_DIST;
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!