调用高德地图、百度地图客户端(Android版)


今天项目中要调用百度地图和高德地图的导航功能,上网搜了很多资料,介绍的都很局限,当然最好的学习方式是查看官方文档了。

百度地图URI:

http://lbsyun.baidu.com/index.php?title=uri/api/android

高德地图URI:

http://lbs.amap.com/api/amap-mobile/guide/android/navigation

当时搜资料时高德地图URI网上给的是过时,坑的我在开发者平台上找了好久。。。。

ok,我们现在来看看效果图和参数

百度地图:

高德地图:

言归正传,开始分享我的代码了,我写了一个工具类MapUtil,比较简单,各位可以根据上面看到的参数自行增减

public class MapUtil {/*** 获取打开百度地图应用* @param context 上下文对象* @param originLat 起点经度* @param originLon 起点纬度* @param desLat 终点经度* @param desLon 终点纬度* @return** mode:导航模式,可选transit(公交)、driving(驾车)、walking(步行)和riding(骑行).默认:driving**/public static void getBaiduMapUri(Context context,String originLat, String originLon,String desLat, String desLon){String uri="baidumap://map/direction?origin=name:我的位置|latlng:"+originLat+","+originLon+"&destination=name:目的地|latlng:"+desLat+","+desLon+"&mode=driving";Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(uri));intent.setPackage("com.baidu.BaiduMap");context.startActivity(intent);}/*** 启动高德App进行导航** @param slat 起点纬度。如果不填写此参数则自动将用户当前位置设为起点纬度。* @param slon 起点经度。如果不填写此参数则自动将用户当前位置设为起点经度。* @param dlat 终点纬度* @param dlon 终点经度**  dev 必填 是否偏移(0:lat 和 lon 是已经加密后的,不需要国测加密; 1:需要国测加密)*  t 必填 t = 0(驾车)= 1(公交)= 2(步行)= 3(骑行)= 4(火车)= 5(长途客车)(骑行仅在V788以上版本支持)**/public static  void getGaoDeMapUri(Context context, String slat , String slon ,String dlat , String dlon){String uri="amapuri://route/plan/?slat="+slat+"&slon="+slon+"&sname=我的位置&dlat="+dlat+"&dlon="+dlon+"&dname=目的地&dev=0&t=0";Intent intent = new Intent("android.intent.action.VIEW", android.net.Uri.parse(uri));intent.setPackage("com.autonavi.minimap");context.startActivity(intent);}/*** 根据包名检测某个APP是否安装* @param packageName 包名* @return true 安装 false 没有安装*/public static boolean isInstallByRead(String packageName) {return new File("/data/data/" + packageName).exists();}/*** 百度地图定位经纬度转高德经纬度* @param bd_lat* @param bd_lon* @return*/public static double[] bdToGaoDe(double bd_lat, double bd_lon) {double[] gd_lat_lon = new double[2];double PI = 3.14159265358979324 * 3000.0 / 180.0;double x = bd_lon - 0.0065, y = bd_lat - 0.006;double z = Math.sqrt(x * x + y * y) - 0.00002 * Math.sin(y * PI);double theta = Math.atan2(y, x) - 0.000003 * Math.cos(x * PI);gd_lat_lon[0] = z * Math.cos(theta);gd_lat_lon[1] = z * Math.sin(theta);return gd_lat_lon;}/*** 高德地图定位经纬度转百度经纬度* @param gd_lon* @param gd_lat* @return*/public static double[] gaoDeToBaidu(double gd_lon, double gd_lat) {double[] bd_lat_lon = new double[2];double PI = 3.14159265358979324 * 3000.0 / 180.0;double x = gd_lon, y = gd_lat;double z = Math.sqrt(x * x + y * y) + 0.00002 * Math.sin(y * PI);double theta = Math.atan2(y, x) + 0.000003 * Math.cos(x * PI);bd_lat_lon[0] = z * Math.cos(theta) + 0.0065;bd_lat_lon[1] = z * Math.sin(theta) + 0.006;return bd_lat_lon;}
}

使用说明:

 //调用百度地图客户端if(MapUtil.isInstallByRead("com.baidu.BaiduMap")){MapUtil.getBaiduMapUri(this,"39.98871 ","116.43234","39.91441","116.40405");}else{Toast.makeText(MainActivity.this, "您尚未安装百度地图", Toast.LENGTH_LONG).show();Uri uri = Uri.parse("market://details?id=com.baidu.BaiduMap");Intent intent = new Intent(Intent.ACTION_VIEW, uri);startActivity(intent);}//调用高德地图客户端if (MapUtil.isInstallByRead("com.autonavi.minimap")){                      MapUtil.getGaodeMapUri(this,"39.92848272","116.39560823","39.98848272","116.47560823");}else{Toast.makeText(MainActivity.this, "您尚未安装高德地图", Toast.LENGTH_LONG).show();Uri uri = Uri.parse("market://details?id=com.autonavi.minimap");Intent intent = new Intent(Intent.ACTION_VIEW, uri);startActivity(intent);
}

效果图

已安装百度地图和高德地图

百度地图

高德地图

未安装百度地图和高德地图(调用手机的应用商店进行下载)

好了,就分享到这了!!!

调用高德地图、百度地图客户端相关推荐

  1. vue项目H5调起高德或百度地图手机应用,或调起高德百度网页版实现导航功能(已实现)

    需求说明:H5实现唤起高德和百度地图导航到目标景点的功能 分析:用户通过点击选择使用百度还是高德地图,点击后调用guide方法,判断设备上是否有高德或者百度APP,有就直接调用APP,如果没有就调用网 ...

  2. WEB页面或者H5页面如何打开高德或者百度地图APP导航(实战向)

    一.序言 在日常开发中,地图的接入使用在各大app和网站中我们都不难见到,打开方式也各有不同,嵌套内部的,或者是直接打开百度,高德,谷歌等地图app.相对来说,各大地图app的文档写的非常齐全,即使是 ...

  3. Android实现高德地图上拉,ScrollLayout:上拉滑动上滑拖出,类似高德地图百度地图抽屉拖拽效果...

    摘要 在ScrollView或者ListView里面使用ViewPager.支持手势上拉滑出,中途停顿,下滑退出页面,类似高德地图百度地图内场景抽屉拖拽效果效果 Gif动画 类似使用 Demo 下载A ...

  4. H5页面唤醒高德地图|百度地图App

    H5页面唤醒高德地图|百度地图App 移动端H5页面唤醒app,若唤醒失败则跳转到应用商城下载. 唤醒前需要检测当前操作系统,不同的操作系统用不同的协议 我这里的需求是唤醒失败就跳转到网页版的地图,若 ...

  5. Flutter对接第三方高德地图+百度地图基础定位实现

    Flutter对接第三方高德地图+百度地图基础定位实现 原创:@As.Kai 博客地址:https://blog.csdn.net/qq_42362997 如果以下内容对您有帮助,点赞点赞点赞~ 高德 ...

  6. 地图导航业下半场,高德与百度地图各缺一子?

    百度地图和高德地图的份额之争一直没有平息,二者的用户量高低在业内一直是个谜. 有说高德超过百度的:在2017年8月,国内第三方数据研究机构Talking Data移动观象台发布的月度APP覆盖率排行榜 ...

  7. 5张对比图告诉你,天地图,高德地图,百度地图,谷歌地图区别

    先来看看传说中最争议的天地图吧. 最大放大距离,每厘米25米. 我们用这个体育场和下面的大厦做对比..其实还有大厦下的车..(这张图上的车看不清,真有,没骗你们....) 再上一张高德的, 最大50M ...

  8. Android调用跳转百度地图、高德地图、腾讯地图进行目的地导航

    Android App跳转百度地图.高德地图.腾讯地图进行目的地导航. 先放上百度.高德.腾讯地图调起API文档地址,有些参数不懂可以参考. 百度地图:http://lbsyun.baidu.com/ ...

  9. 前端调用高德地图 百度地图

    这边是vue得 先在public下得index.html加上请求得js 根据搜索模糊查询,然后自己点击获取精确经纬度. 高德<script type="text/javascript& ...

  10. 调用高德地图,百度地图,腾讯地图,苹果地图路线规划(无需集成SDK)

    1.调用百度地图 baidumap if ([[UIApplication sharedApplication]canOpenURL:[NSURL URLWithString:@"baidu ...

最新文章

  1. 前阿里程序员吐槽女友败家:开酒店必须400元起步,工资只有自己的1/3
  2. C# MVC中返回JSON 对象
  3. SweetAlert插件 弹框插件
  4. 关于VS2017使用中常见的几个问题
  5. initdz linux挖坑病毒分析
  6. 关于jsp中 对只转发结果集的无效操作: last 异常
  7. java 人脸检测_Java+OpenCV实现人脸检测并自动拍照
  8. 09.snapshot and restore操作
  9. 递归锁、信号量、GIL锁、基于多线程的socket通信和进程池线程池
  10. Mongo DB 简单搭建和部署
  11. Linux中断子系统-通用框架处理
  12. 将excel转为python的字典_python读取excel数据转换成字典
  13. C# 10 的五大新功能
  14. php简化URL路径,thinkphp框架实现路由重定义简化url访问地址的方法分析
  15. jquery表单美化组件实例
  16. 谷歌卫星地图上的奇特景象
  17. 【Word】解决mathtype已插入公式按新章节开始编号的问题
  18. MySQL用户权限系统
  19. 透视网格的数据如何导出Excel?一招教你搞定
  20. 大学计算机基础报告总结,windows7实验报告总结.docx

热门文章

  1. 复旦版最佳医院排行 沪21家医院入选全国百佳
  2. DID去中心化身份认证技术调研
  3. OPC UA SDK案例:虹科OPC UA SDK助力立功科技ZWS云平台
  4. linux下mariadb的服务启动异常,centos7 – CentOS 7 MariaDB错误“无法启动mariadb.service:找不到单位.”...
  5. weblogic异常之 [Security:090303]Authentication Failed: User weblogic weblogic.security.providers.authen
  6. 【华为浏览器如何安装扩展程序】
  7. w10系统服务器管理器,Win10如何打开服务管理器
  8. HTML导航条和翻页栏
  9. Python 中 set 的基本用法
  10. U盘文件系统格式快速转换