美文网首页经验之谈
6、android应用调用第三方地图

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

作者: Shelton_Kevin | 来源:发表于2016-12-13 16:58 被阅读1672次

    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应用调用第三方地图

      本文链接:https://www.haomeiwen.com/subject/qukbmttx.html