兩點之間經緯度的計算

創建數據表


– 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用戶經緯度

PHP開發樂園(鼠標手)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章