1.百度地图官方文档地址:http://lbsyun.baidu.com/index.php?title=uri/api/android
2.高德地图官方文档地址:http://lbs.amap.com/api/amap-mobile/guide/android/route
3.具体写法:
(1)首先检查手机上是否安装了导航软件(百度地图,高德地图)
//检查手机上是否安装了指定的软件 public static boolean isExist(Context context, String packageName){ //获取PackageManager final PackageManager packageManager = context.getPackageManager(); //获取所有已安装程序的包信息 List<PackageInfo> packageInFos = packageManager.getInstalledPackages(0); //用于存储所有已安装程序的包名 List<String> packageNames = new ArrayList<String>(); //从packageInFos中将包名字逐一取出,压入pName list中 if(packageInFos != null){ for(int i = 0; i < packageInFos.size(); i++){ String packName = packageInFos.get(i).packageName; packageNames.add(packName); } } //判断packageNames中是否有目标程序的包名,有TRUE,没有FALSE return packageNames.contains(packageName); }
(2)百度地图:
public void intoBaiDuMap() { // http://lbsyun.baidu.com/index.php?title=uri/api/android if (Utils.isExist(this, "com.baidu.BaiduMap")) { Intent intent = new Intent(); intent.setData(Uri.parse("baidumap://map/direction?" + "region=beijing" + //城市 "&origin=" + //起点 "&destination=latlng:39.9761,116.3282|name:中关村" + //终点*坐标先纬度,后经度) "&mode=driving")); //出行方式 startActivity(intent); } else {//未安装(注释掉部分为可以进入手机商店下载App) //market为路径,id为包名 //显示手机上所有的market商店 Toast.makeText(this, "您尚未安装百度地图", Toast.LENGTH_LONG).show(); // Uri uri = Uri.parse("market://details?id=com.baidu.BaiduMap"); // Log.d("DaoHangActiv3ity", "uri:" + uri); // Intent intent = new Intent(Intent.ACTION_VIEW, uri); // startActivity(intent); } }
(3)高德地图:
public void intoGaoDeMap() { //http://lbs.amap.com/api/amap-mobile/guide/android/route if (Utils.isExist(this, "com.autonavi.minimap")) { Intent intent = new Intent(); intent.setData(Uri.parse("amapuri://route/plan/?" + "dlat=39.98848272" + //终点纬度 "&dlon=116.47560823" + //终点经度 "&dname=博物馆" + //终点名称 "&dev=0" + //是否偏移 "&t=0")); //出行方式 startActivity(intent); } else { Toast.makeText(this, "您尚未安装高德地图", Toast.LENGTH_LONG).show(); } }