高德坐標轉百度坐標並導航


APP用的是高德SDK

業務是用戶點擊APP中的導航按鈕,會根據用戶當前手機安裝地圖APP進行導航,順序是 1高德 2百度,如果用戶沒有安裝高德地圖APP則判斷是否有百度地圖APP因為APP是用的高德SDK所以在導航上沒有任何問題,跳轉百度后 坐標誤差比較大有時候 導航提示 未搜索到結果之類的,造成這個原因是高德和百度坐標不一至,這個時候需要坐標轉換

百度提供坐標轉換接口 http://developer.baidu.com/map/changeposition.htm 按文檔操作 

http://api.map.baidu.com/geoconv/v1/?coords=lon,lat&from=3&to=5&output=json&ak={自己申請的key}

to 5表示 bd09ll(百度經緯度坐標),

然后將返回的坐標 bslat=x; bslon=y; 開發位置 belat=x,belon=y; 結果位置

然后執行跳轉

 

 1 try {
 2 url="intent://map/direction?origin=latlng:"+bslon+","+bslat+"|" +
 3 "&destination=latlng:"+belon+","+belat+"|"+address+"&mode=driving&region="+city+"&src=companyname|appname#Intent;" +
 4 "scheme=bdapp;package=com.baidu.BaiduMap;end";
 5 Intent intent = Intent.getIntent(url);
 6 } catch (URISyntaxException e) {
 7 // TODO Auto-generated catch block
 8 e.printStackTrace();
 9 }
10 
11 
12 startActivity(intent);

這里要注意的時候 傳入經緯度的時候 要看好 開始位置 latlng:是經度緯度  當時看到這個變量以為是緯度經度了 哎 文檔上面說明

http://developer.baidu.com/map/uri-introandroid.htm

這樣傳入坐標就正確就可以正確使用導航

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM