前言
收集常用的代码块, 留存记录. 此次代码块包含: 唤起高德地图导航, 唤起百度地图导航
代码
判断手机内安装的地图
- /** 判断是否安装目标应用 */
- private boolean isInstallByread(String packageName) {
- return new File("/data/data/" + packageName)
- .exists();
- }
- /**
- * 判断和打开地图
- */
- public void navigationMap() {
- //1. 两个地图都安装了, 让用户选择
- boolean installBaidu = isInstallByread("com.baidu.BaiduMap");
- boolean installAmap = isInstallByread("com.autonavi.minimap");
- if (installBaidu && installAmap) {// 两个地图都安装了 让用户进行选择
- showSelectMap();
- } else if (installBaidu) {// 安装了百度地图
- startBaiduMap();
- } else if (installAmap) {// 安装了高德地图
- startAmapMap();
- } else {// 两个地图都没安装, 使用 web Api 进行导航, 不建议实现
- //startWebMap();
- T.showToast(mActivity, "您的手机未安装高德地图或者百度地图");
- }
- }
唤起高德地图导航 (驾车)
- /**
- * 唤起高德地图
- */
- private void startAmapMap() {
- try {
- Intent intent = new Intent("android.intent.action.VIEW",
- android.net.Uri.parse("androidamap://route?sourceApplication = 导航 demo" +
- "&dlat=" + mEndLat +
- "&dlon=" + mEndLng +
- "&dname=" + name +
- "&dev=0&t=2"));
- intent.setPackage("com.autonavi.minimap");
- mActivity.startActivity(intent);
- } catch (Exception e) {
- T.showToast(mActivity, "调起高德地图失败");
- }
- }
相关参数:
| 参数 | 说明 | 是否必填 |
|--|--|---|
|sourceApplication | 当前 app 的名字 |
|dlat | 纬度 |
|dlon | 经度 |
|name | 终点的名称 |
|dev | 是否偏移 (0:lat 和 lon 是已经加密后的, 不需要国测加密; 1: 需要国测加密)|
|t | 导航方式:
0 速度快
1 费用少
2 路程短;
3 不走高速
4 躲避拥堵
5 不走高速且避免收费
6 不走高速且躲避拥堵
7 躲避收费和拥堵
8 不走高速躲避收费和拥堵 |
效果如下:
唤起百度地图导航 (驾车)
- /**
- * 移动 APP 调起 Android 百度地图方式
- */
- private void startBaiduMap() {
- try {
- Intent intent = new Intent();
- intent.setData(Uri.parse("baidumap://map/direction?destination=name:" + name + "|" +
- "latlng:" + mEndLat + "," + mEndLng + "&mode=driving&car_type=TIME"));
- mActivity.startActivity(intent); // 启动调用
- } catch (Exception e) {
- T.showToast(mActivity, "调起百度地图失败");
- }
- }
相关参数:
| 参数 | 说明 |
|--|--|
|destination | 目的地名称 |
|latlng | 纬度, 进度 拼接字符串
|mode | 导航模式:
- transit(公交)
- driving(驾车)
- walking(步行)
- riding(骑行)
|car_type | 驾车路线规划类型:
BLK: 躲避拥堵 (自驾)
TIME: 高速优先 (自驾)
DIS: 不走高速 (自驾)
FEE: 少收费 (自驾)
DEFAULT: 默认偏好;
默认使用地图中已保存的路线偏好 (缺省值).
除缺省值外, 若用户已勾选车牌限行, 其他类型都会默认增加车牌限行的偏好.
最后
本文只写了驾车相关的导航实例, 剩余的公交, 步行, 骑行可参考官方文档.
来源: http://www.tuicool.com/articles/ya6n6b7