android 跳转地图应用,android跳转其他app地图高德、百度、腾讯导航

不为0则switch进行调用if (packages.size() == 0) {

MyToast.show("请安装地图应用", Toast.LENGTH_LONG);

} else {

for (String packageName : packages) {

switch (packageName) {

case BAIDUMAP_PACKAGENAME:

invokeBaiDuMap(context, arg);

break;

case AUTONAVI_PACKAGENAME:

invokeAuToNaveMap(context, arg);

break;

case QQMAP_PACKAGENAME:

invokeQQMap(context, arg);

break;

}

}

}

下面介绍一下三个arg的格式和三个调用方法/**

* 调用百度地图----------------

*

* @param context 上下文对象

* @param arg 参数

*/

private static void invokeBaiDuMap(Context context, Map arg) {

try {

Uri uri = Uri.parse("baidumap://map/geocoder?" +

"location=" + arg.get(GCJO2_LAT) + "," + arg.get(GCJO2_LNG) +

"&name=" + arg.get(DESTINATION) + //终点的显示名称

"&coord_type=gcj02");//坐标 (百度同样支持他自己的db0911的坐标,但是高德和腾讯不支持)

Intent intent = new Intent();

intent.setPackage(BAIDUMAP_PACKAGENAME);

intent.setData(uri);

context.startActivity(intent);

} catch (Exception e) {

Logger.e(TAG, e.getMessage());

}

}

/**

* 调用高德地图

*

* @param context 上下文对象s

* @param arg 经纬度参数map

*/

private static void invokeAuToNaveMap(Context context, Map arg) {

try {

Uri uri = Uri.parse("androidamap://route?sourceApplication={你的应用名称}" +

"&dlat=" + arg.get(GCJO2_LAT)//终点的纬度

+ "&dlon=" + arg.get(GCJO2_LNG)//终点的经度

+ "&dname=" + arg.get(DESTINATION)终点的显示名称

+ "&dev=0&m=0&t=0");

Intent intent = new Intent("android.intent.action.VIEW", uri);

intent.addCategory("android.intent.category.DEFAULT");

context.startActivity(intent);

} catch (Exception e) {

Logger.e(TAG, e.getMessage());

}

}

/**

* 调用腾讯地图

*

* @param context 上下文对象s

* @param arg 经纬度参数map

*/

private static void invokeQQMap(Context context, Map arg) {

try {

Uri uri = Uri.parse("qqmap://map/routeplan?type=drive" +

"&to=" + arg.get(DESTINATION)//终点的显示名称 必要参数

+ "&tocoord=" + arg.get(GCJO2_LAT) + "," + arg.get(GCJO2_LNG)//终点的经纬度

+ "&referer={你的应用名称}");

Intent intent = new Intent();

intent.setData(uri);

context.startActivity(intent);

} catch (Exception e) {

Logger.e(TAG, e.getMessage());

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值