1、调用高德地图
高德地图应用包名:com.autonavi.minimap
高德地图url说明:
http://lbs.amap.com/api/uri-api/guide/android-uri-explain/route/
判断手机上是否安装过高德地图:
private boolean isInstallByread(String packageName) {
return new File("/data/data/" + packageName).exists();
}
调用方法:(此方法打开高德地图后默认显示的公交路线规划)
try {
if (isInstallByread("com.autonavi.minimap")) {
Intent intent = new Intent(
"android.intent.action.VIEW",
android.net.Uri.parse(
"androidamap://route?sourceApplication=你的应用名" + "&dlat="+ currentLatitude//终点的经度
+ "&dlon="+ currentLongitude//终点的纬度
+ "&dev=0" + "&t=1"));
intent.addCategory("android.intent.category.DEFAULT");
startActivity(intent);
} else {
Toast.makeText(context, "没有安装百度地图客户端,请先下载该地图应用", Toast.LENGTH_SHORT).show();
}
} catch (Exception e) {
e.printStackTrace();
}
注意:高德给的url参数写反了。API文档上标注的是dlat--终点纬度,dlon--终点经度。这个写反了!!!!
2、调用百度地图
百度地图应用包名:com.baidu.BaiduMap
百度地图url说明:
http://lbsyun.baidu.com/index.php?title=uri/api/android
判断手机上是否安装过百度地图:(同上)
调用方法:(此方法打开百度地图后默认显示的公交路线规划)
try {
if (isInstallByread("com.baidu.BaiduMap")) {
Intent intent = new Intent();
intent.setData(Uri.parse("baidumap://map/direction?origin=name:我的位置|latlng:"
+locLongitude//起始点纬度
+","
+locLatitude//起始点经度
+"&destination="
+currentLatitude//终点经度
+","
+currentLongitude//终点纬度
+"&mode=transit&sy=0&index=0&target=1"));
intent.setPackage("com.baidu.BaiduMap");
startActivity(intent); // 启动调用
} else {
Toast.makeText(context, "没有安装百度地图客户端,请先下载该地图应用", Toast.LENGTH_SHORT).show();
}
} catch (Exception e) {
e.printStackTrace();
}
注意1:下面这种格式中参数分别表示经度和纬度
origin=39.98871,116.43234&destination=40.055878,116.307854
注意2:下面这种格式中,latlng参数分别表示纬度和经度(跟上面正好相反)
origin=name:经海路|latlng:39.98871,116.43234&destination=name:西直门