android6.0 百度地图,Android百度地图SDK 导航SDK2.0结合定位SDK6.0.5的导航参数设置方法...
是否執(zhí)行成功?其中對(duì)于算路的節(jié)點(diǎn),現(xiàn)在有了一個(gè)新的規(guī)則,可見(jiàn)BNRoutePlanNode
取文檔的釋義如下:
public?BNRoutePlanNode(double?longitude,
double?latitude,
java.lang.String?name,
java.lang.String?description,
BNRoutePlanNode.CoordinateType?coType)
算路節(jié)點(diǎn)構(gòu)造方法.
參數(shù):longitude?- 經(jīng)度latitude?- 緯度name?- 算路節(jié)點(diǎn)名description?- 算路節(jié)點(diǎn)地址描述coType?- 坐標(biāo)類(lèi)型,參考?CoordinateType
可見(jiàn)現(xiàn)在對(duì)于算路節(jié)點(diǎn)的坐標(biāo)類(lèi)型有了一個(gè)標(biāo)準(zhǔn),也即
百度墨卡托坐標(biāo)
國(guó)測(cè)局坐標(biāo)
GPS坐標(biāo)
坐標(biāo)類(lèi)型必須為以上三種,否則如果不指定或者默認(rèn)匹配不到這三種坐標(biāo)類(lèi)型則都會(huì)導(dǎo)致算路失敗。
但是百度定位SDK的坐標(biāo)系一般用的是bd09ll類(lèi)型,這時(shí)候就需要用到類(lèi)型轉(zhuǎn)換,在5.3版本之前可以有另一種方法來(lái)轉(zhuǎn)換的,但是5.3版本就取消了,于是6.0.5之后就有了這個(gè)函數(shù)來(lái)做轉(zhuǎn)換,如下
public static BDLocation getBDLocationInCoorType(BDLocation src,
java.lang.String transferType)
根據(jù)設(shè)定的轉(zhuǎn)換坐標(biāo)系類(lèi)型得到相應(yīng)坐標(biāo)系下的BDLocation
參數(shù):
BDLocation - src 原始BDLocation
transferType - BDLocation.BDLOCATION_GCJ02_TO_BD09/BDLOCATION_GCJ02_TO_BD09LL/BDLOCATION_BD09_TO_GCJ02/ BDLOCATION_BD09LL_TO_GCJ02
用這個(gè)就可以直接將百度定位和地圖獲取的BDLocation轉(zhuǎn)換成可以直接使用的導(dǎo)航參數(shù)。
以此希望可以幫到尚不明白如何轉(zhuǎn)換的同學(xué)!
部分代碼如下:
// 發(fā)起算路
private void startCalcRoute(int calcMode) {
// 顯示加載對(duì)話框
DialogUtil.getInstance().showProgressDialog(mActivity);
if (mBdLocation == null) {
Toast.makeText(this, getString(R.string.map_location_failed), Toast.LENGTH_LONG).show();
// 取消加載對(duì)話框
DialogUtil.getInstance().dismissProgressDialog();
return;
}
if (calcMode == 0)
calcMode = BaiduNaviManager.RoutePlanPreference.ROUTE_PLAN_MOD_AVOID_TAFFICJAM;
double sX = 0, sY = 0, eX = 0, eY = 0;
sX = LocationClient.getBDLocationInCoorType(mBdLocation, BDLocation.BDLOCATION_BD09LL_TO_GCJ02).getLatitude();
sY = LocationClient.getBDLocationInCoorType(mBdLocation, BDLocation.BDLOCATION_BD09LL_TO_GCJ02).getLongitude();
BNRoutePlanNode startNode = new BNRoutePlanNode(sY, sX, "我的位置", "我的位置");BDLocation bd = new BDLocation();
bd.setLatitude(destLat);
bd.setLongitude(destLng);
eX = LocationClient.getBDLocationInCoorType(bd, BDLocation.BDLOCATION_BD09LL_TO_GCJ02).getLatitude();
eY = LocationClient.getBDLocationInCoorType(bd, BDLocation.BDLOCATION_BD09LL_TO_GCJ02).getLongitude();
BNRoutePlanNode endNode = new BNRoutePlanNode(eY, eX, strDestAddress, strDestAddress);
ArrayList nodeList = new ArrayList(2);
nodeList.add(startNode);
nodeList.add(endNode);
BaiduNaviManager.getInstance().launchNavigator(mActivity, nodeList, calcMode, true,
new MapRoutePlanListener(startNode));
}
總結(jié)
以上是生活随笔為你收集整理的android6.0 百度地图,Android百度地图SDK 导航SDK2.0结合定位SDK6.0.5的导航参数设置方法...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: android442电视怎么投屏,哔哩哔
- 下一篇: android 检测当前wifi是否又网