6、android应用调用第三方地图

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:西直门

你可能感兴趣的:(6、android应用调用第三方地图)