Android 开发中的代码片段(3)地图操作相关

本贴最后更新于 2043 天前,其中的信息可能已经渤澥桑田

前言

收集常用的代码块,留存记录。此次代码块包含:唤起高德地图导航、唤起百度地图导航

代码

判断手机内安装的地图

/**判断是否安装目标应用*/
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: 默认偏好;
默认使用地图中已保存的路线偏好(缺省值)。
除缺省值外,若用户已勾选车牌限行,其他类型都会默认增加车牌限行的偏好。

最后

本文只写了驾车相关的导航实例,剩余的公交、步行、骑行可参考官方文档。

官方文档:

未完待续、后续补充!
我的博客地址

  • B3log

    B3log 是一个开源组织,名字来源于“Bulletin Board Blog”缩写,目标是将独立博客与论坛结合,形成一种新的网络社区体验,详细请看 B3log 构思。目前 B3log 已经开源了多款产品:SymSoloVditor思源笔记

    1083 引用 • 3461 回帖 • 287 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...