首先,mysql 创建函数
DROP FUNCTION IF EXISTS `getDistance`;
CREATE FUNCTION `getDistance`(
lon1 float(10,7)
,lat1 float(10,7)
,lon2 float(10,7)
,lat2 float(10,7)
) RETURNS double
begin
declare d double;
declare radius int;
set radius = 6378140; #假设地球为正球形,直径为6378140米
set d = (2*ATAN2(SQRT(SIN((lat1-lat2)*PI()/180/2)
*SIN((lat1-lat2)*PI()/180/2)+
COS(lat2*PI()/180)*COS(lat1*PI()/180)
*SIN((lon1-lon2)*PI()/180/2)
*SIN((lon1-lon2)*PI()/180/2)),
SQRT(1-SIN((lat1-lat2)*PI()/180/2)
*SIN((lat1-lat2)*PI()/180/2)
+COS(lat2*PI()/180)*COS(lat1*PI()/180)
*SIN((lon1-lon2)*PI()/180/2)
*SIN((lon1-lon2)*PI()/180/2))))*radius;
return d;
end
;;
调用查询
SELECT getDistance(
'113.941079','22.546103',
'116.431123','40.001265')/1000 as '阳明到深圳腾讯'
效果截图
本人在阳明广场工作过,实际出发。。
实际的mysql运行
如下为百度标注获得地址
北京阳明广场
地址:北京市朝阳区小营路10号阳明广场3号楼首层附近
坐标:116.430892,40.001265
阳明广场6.2公里到北京大唐电信科技产业集团
大唐电信科技产业集团
地址:北京市海淀区学院路40号
坐标:116.361915,39.985629
阳明广场14公里到北京西站
地址:北京市丰台区莲花池东路118号
坐标:116.328103,39.900835
阳明广场126.503 公里到天津之眼
天津之眼
地址:天津市河北区三岔河口永乐桥上
电话:(022)26288830
坐标:117.193424,39.160105
阳明广场1967.490 公里到深圳腾讯大厦
腾讯大厦
地址:深南大道10000号
坐标:113.941079,22.546103