百度地圖安卓機兩點間距離誤差大

目的:使用百度地圖測兩點直線距離

使用:百度地圖api中的getDistance方法,經過測試,在ios是沒有問題的,但是在不同的安卓機會出現幾百至幾千米的誤差

原因:經測試研究,ios和安卓當前位置經緯度的精度不一致,比如安卓機爲39.1231231,IOS機爲39.123122342142314213。so,在計算結果時會出現較大誤差

解決:自定義方法,計算兩點間距離

// 將用角度表示的角轉換爲近似相等的用弧度表示的角 java Math.toRadians  
rad(d) {  
	return d * Math.PI / 180.0;  
},
// 計算兩點之間的距離(四個參數爲目標點經緯度和自身經緯度)
getDistance(lng1, lat1, lng2, lat2) { 
	lng2 = Math.floor(lng2)            (自身經緯度取整,蘋果安卓精度不一致)
	lat2 = Math.floor(lat2)
	var EARTH_RADIUS = 6378.137; //地球半徑
	var radLat1 = this.rad(lat1);  
	var radLat2 = this.rad(lat2);  
	var a = radLat1 - radLat2;  
	// alert(a)
	var b = this.rad(lng1) - this.rad(lng2);  
	var s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2)  
			+ Math.cos(radLat1) * Math.cos(radLat2)  
			* Math.pow(Math.sin(b / 2), 2)));  
	s = s * EARTH_RADIUS;  
	s = Math.round(s * 10000) / 10000;  
	return s;  
},

 

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