private void launchNaviApp(String pkgName) {
if (pkgName.equalsIgnoreCase(NavigatorProvider.AMAP_MAP)) {
startOtherNavi("amap");
Log.i(TAG,"launchNaviApp: 高德");
return;
}
if (pkgName.equalsIgnoreCase(NavigatorProvider.BAIDU_MAP)) {
startOtherNavi("baidu");
Log.i(TAG,"launchNaviApp: 百度");
return;
}
if (pkgName.equalsIgnoreCase(NavigatorProvider.CARELAND_NAVI)) {
startOtherNavi("kailide");
Log.i(TAG,"launchNaviApp: 凯立德");
return;
}
}
private void startOtherNavi(String type) {
Intent intent =null;
if (type.equals("amap")) {
StringBuffer stringBuffer =new StringBuffer("androidamap://navi?sourceApplication=").append("com.tima.cowin")
.append("&poiname=").append(endName).append("&lat=").append(endLatlng.getLatitude()).append("&lon=").append(endLatlng.getLongitude())
.append("&dev=").append(1).append("&style=").append(2);
intent =new Intent();
intent.setAction(Intent.ACTION_VIEW);
intent.addCategory(Intent.CATEGORY_DEFAULT);
Uri uri = Uri.parse(stringBuffer.toString());
intent.setData(uri);
}else if (type.equals("baidu")) {
double baidu_point_end[] = BaiduMapUtils.gcj02_To_Bd09(endLatlng.getLatitude(),endLatlng.getLongitude());
double baidu_point_start[] = BaiduMapUtils.gcj02_To_Bd09(currentLocation.getLatitude(),currentLocation.getLongitude());
intent =new Intent();
String uri ="baidumap://map/direction?origin=name:当前位置|latlng:"
+ baidu_point_start[0] +"," + baidu_point_start[1]//起始点经度
+"&destination=" + baidu_point_end[0] +"," + baidu_point_end[1]//终点纬度
+"&mode=driving";
intent.setData(Uri.parse(uri));
intent.setPackage("com.baidu.BaiduMap");
}
if (intent !=null) {
startActivity(intent);
}
}