项目中遇到的一个需求,跳转外部App进行步行导航。分别是百度、高德、腾讯。
东西不难但是每次都要去官方文档找(有时候会更新一些字段)。
所以在此做下记录和分享。
百度地图
// 获取gps定位坐标值
double[] bdGPS = myLocation.getLocPoint();
Intent bdNav = new Intent();
// 步行导航
bdNav.setData(Uri.parse("baidumap://map/walknavi?origin="+bdGPS[0]+","+bdGPS[1]+"&destination=43.81710,125.38332&coord_type=bd09ll&src=andr.baidu.openAPIdemo"));
// 骑行导航
//bdNav.setData(Uri.parse("baidumap://map/bikenavi?origin="+bdGPS[0]+","+bdGPS[1]+"&destination=43.81710,125.38332&coord_type=bd09ll&src=andr.baidu.openAPIdemo"));
// 驾车导航
//bdNav.setData(Uri.parse("baidumap://map/navi?query=解放大路与人民大街交汇&src=andr.baidu.openAPIdemo"));
startActivity(bdNav);
高德地图
// 获取gps定位坐标值
double[] gdGPS = myLocation.getLocPoint();
// 终点的显示名称 必要参数
String gbNavName = "终点";
Uri gdUri = Uri.parse("amapuri://route/plan/?dlat="+gdGPS[0]+"&dlon="+gdGPS[1]+"&dname="+gbNavName+"&dev=0&t=2");
Intent gdNav =new Intent("android.intent.action.VIEW", gdUri);
gdNav.addCategory("android.intent.category.DEFAULT");
startActivity(gdNav);
腾讯地图
// 终点的经纬度坐标值
double[] txGPS = new double[]{43.81710,125.38332};
//终点的显示名称 必要参数
String txNavName = "终点";
Uri txUri = Uri.parse("qqmap://map/routeplan?type=walk" +
"&to=" +txNavName
+"&tocoord=" + txGPS[0] +"," + txGPS[1]
+"&referer=呼唤");
Intent txNav =new Intent();
txNav.setData(txUri);
startActivity(txNav);
标签:app,Uri,bdGPS,parse,Intent,跳转,bdNav,Android,高德
来源: https://blog.youkuaiyun.com/qq_19688207/article/details/112219651