您的位置:首页 > 其它

两点之间经纬度的计算

2016-04-14 15:21 405 查看
创建数据表

– Table structure for
sss


DROP TABLE IF EXISTS
sss
;

CREATE TABLE
sss
(

id
int(10) NOT NULL AUTO_INCREMENT,

parent1
int(12) DEFAULT NULL,

parent2
int(10) DEFAULT NULL,

parent3
int(10) DEFAULT NULL,

name
varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,

lat
varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,

lng
varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,

PRIMARY KEY (
id
)

) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

– Records of sss

计算公式:

公式如下,单位米:

第一点经纬度:lng1 lat1

第二点经纬度:lng2 lat2

round(6378.138*2*asin(sqrt(pow(sin( (lat1*pi()/180-lat2*pi()/180)/2),2)+cos(lat1*pi()/180)cos(lat2*pi()/180) pow(sin( (lng1*pi()/180-lng2*pi()/180)/2),2)))*1000)

SQL查询

SELECT id,lng,lat, ROUND(6378.138*2*ASIN(SQRT(POW(SIN((30.5984280000*PI()/180-lat*PI()/180)/2),2)+COS(30.5984280000*PI()/180)*COS(lat*PI()/180)*POW(SIN((114.3118310000*PI()/180-lng*PI()/180)/2),2)))*1000) AS juli

FROM sss

ORDER BY juli DESC

LIMIT 316

//30.5984280000,114.3118310000用户经纬度



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: