MySQL中利用st_distance 函数计算经纬度距离
方法一:
精确到0.000000米
例:
经度:lon1,lon2
纬度:lat1 , lat2
SELECT st_distance(POINT (lon1 , lat1 ),POINT(lon2 , lat2))* 111195 AS distanc
方法二:
精确到0米,判空,如果经纬度为空责用北京地标计算
例:
经度:lon1,lon2
纬度:lat1 , lat2
SELECT ROUND(st_distance(POINT(lon1,lat1),POINT(IFNULL(lon2,116.39791),IFNULL(lat2,39.903827)))(6371000PI()/180),0) AS distance
经纬度知识要点:
纬度是指某点与地球球心的连线和地球赤道面所成的线面角,其数值在0至90度之间。位于赤道以北的点的纬度叫北纬,记为N,位于赤道以南的点的纬度称南纬,记为S。
纬度数值在0至30度之间的地区称为低纬地区,纬度数值在30至60度之间的地区称为中纬地区,纬度数值在60至90度之间的地区称为高纬地区。
赤道、南回归线、北回归线、南极圈和北极圈是特殊的纬线。
纬度1秒的长度
地球的子午线总长度大约40008km。平均:
纬度1度 = 大约111km
纬度1分 = 大约1.85km
纬度1秒 = 大约30.9m