百度地圖導航與百度地圖進行的座標轉換

 先說幾句廢話,百度地圖可能是我們大家在做APP的時候都有可能接觸的,但是我們也有可能需要做百度導航,當我們在使百度導航的時候會發現,位置偏差有很大的差距,這是什麼原因呢?這並不是手機的問題,也不是你的GPS沒開。而是百度的座標問題,我們在使用定位的時候獲取到的座標沒有問題,但是它不能用來導航,當行的話需要我們將獲取到的ba09ll座標進行轉換,目前我親測過轉換爲GCJ02,這時候就會是你的導航正確進行了,好了,廢話少說,上代碼:

//實例化百度定位
BDLocation db = new BDLocation();
<span style="white-space:pre">			</span>//獲取定位的經度座標
			db.setLongitude(addressBill.getLongitude());
<span style="white-space:pre">			</span>//獲取定位的緯度座標
			db.setLatitude(addressBill.getLatitude());
<span style="white-space:pre">			</span>//將座標轉換成導航的經度座標
			double eX = LocationClient.getBDLocationInCoorType(db, BDLocation.BDLOCATION_BD09LL_TO_GCJ02).getLongitude();
<span style="white-space:pre">			</span>//將座標轉換成導航的緯度座標
			double eY = LocationClient.getBDLocationInCoorType(db, BDLocation.BDLOCATION_BD09LL_TO_GCJ02).getLatitude();
<span style="white-space:pre">			</span>//傳入導航的構造函數中
			sNode = new BNRoutePlanNode(eX,eY,
					addressBill.getAddress(), null, coType);

<span style="white-space:pre">			</span>//步驟同上,sNode和eNode中會進行計算並導航
			BDLocation bd = new BDLocation();
			bd.setLongitude(113.678017);
			bd.setLatitude(34.794308);
			double sX = LocationClient.getBDLocationInCoorType(bd, BDLocation.BDLOCATION_BD09LL_TO_GCJ02).getLongitude();
			double sY = LocationClient.getBDLocationInCoorType(bd, BDLocation.BDLOCATION_BD09LL_TO_GCJ02).getLatitude();
			eNode = new BNRoutePlanNode(sX,sY, 
					"河南博物院", null, coType);
好了,這就是百度導航時的座標轉換,如果大家有什麼疑問還請回帖留言

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