这篇文章就主要来讲一下集成高德的导航SDK,实现app内导航;这样就不用调用高德的App了

一、申请key之类的这里就不说了自己去申请就ok

  • 高德开放平台
  • 高德开放平台—导航sdk
  • 高德开放平台—导航sdk下载

二、我这下载的SDK如下,只有3D地图和导航SDK这两个

三、配置工程导入导航SDK和so库文件

  • 配置Manifest.xml添加权限
<!--用于访问网络,网络定位需要上网-->
<uses-permission android:name="android.permission.INTERNET" />
<!--写入扩展存储,向扩展卡写入数据,用于写入缓存定位数据-->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<!--用于进行网络定位-->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<!--获取运营商信息,用于支持提供运营商信息相关的接口-->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!--用于访问GPS定位-->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<!--用于读取手机当前的状态-->
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<!--用于访问wifi网络信息,wifi信息会用于进行网络定位-->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<!--这个权限用于获取wifi的获取权限,wifi信息会用来进行网络定位-->
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<!--这个权限用于允许程序在手机屏幕关闭后后台进程仍然运行-->
<uses-permission android:name="android.permission.WAKE_LOCK"/>
  • 配置Manifest.xml、添加高德SDK的key和导航Activity
<meta-dataandroid:name="com.amap.api.v2.apikey"android:value="你申请的KEY" /><!--导航组件Activity-->
<activityandroid:name="com.amap.api.navi.AmapRouteActivity"android:configChanges="orientation|keyboardHidden|screenSizeandroid:theme="@android:style/Theme.NoTitleBar" />

四、因为我这里没有需要定制导航的需求所以直接使用高德封装好的导航组件直接使用

导航组件—文档地址

发起导航:给定起点、途经点、终点

  • 如果不传入起点,那么将会使用当前位置
  • 途径点可以不传
 /*** 路线规划** @param slat 起点纬度* @param slon 起点经度* @param dlat 终点纬度* @param dlon 终点经度*/public void navigation(Context context, double slat, double slon, double dlat, double dlon) {Poi start = null;//如果设置了起点if (slat != 0 && slon != 0) {start = new Poi("起点名称", new LatLng(slat, slon), "");}Poi end = new Poi("终点名称", new LatLng(dlat, dlon), "");AmapNaviParams params = new AmapNaviParams(start, null, end, AmapNaviType.DRIVER);params.setUseInnerVoice(true);params.setMultipleRouteNaviMode(true);params.setNeedDestroyDriveManagerInstanceWhenNaviExit(true);//发起导航AmapNaviPage.getInstance().showRouteActivity(context, params, null);}
  • 具体的参数取值可以前往导航组件—文档查看

五、来看下实现的效果:首先他会先规划一下路线然后你就可以发起导航了和使用高德App是一样的

六、Android调起高德App进行导航也就不行集成SDK,如下:

public class AMapUtil {/*** 路线规划** @param slat 起点纬度* @param slon 起点经度* @param dlat 终点纬度* @param dlon 终点经度*/public static void route(Context context, String slat, String slon, String dlat, String dlon) {if (isInstallApp(context, "com.autonavi.minimap")) {Intent intent = new Intent(Intent.ACTION_VIEW);intent.addCategory(Intent.CATEGORY_DEFAULT);intent.setPackage("com.autonavi.minimap");String uri = "androidamap://route?" + "sourceApplication=" + context.getString(R.string.app_name);//如果设置了起点if (!TextUtils.isEmpty(slat) && !TextUtils.isEmpty(slon)) {uri += "&slat=" + slat + "&slon=" + slon;}uri += "&dlat=" + dlat +"&dlon=" + dlon +"&dev=" + 0 +"&t=" + 0 +"&t=" + 0;intent.setData(Uri.parse(uri));context.startActivity(intent);} else {String uri = "https://uri.amap.com/navigation?";//如果设置了起点if (!TextUtils.isEmpty(slat) && !TextUtils.isEmpty(slon)) {uri += "from=" + slon + "," + slat + ",起点";}uri += "&to=" + dlon + "," + dlat + ",终点" +"&mode=car";Intent intent = new Intent(Intent.ACTION_VIEW,Uri.parse(uri));context.startActivity(intent);}}/*** 检测应用是否安装*/public static boolean isInstallApp(Context context, String packageName) {PackageInfo packageInfo;try {packageInfo = context.getPackageManager().getPackageInfo(packageName, 0);} catch (Exception e) {packageInfo = null;e.printStackTrace();}return packageInfo != null;}
}
  • 首先检测高德是否安装,如果没有则打开H5高德地图
  • 具体的参数设置查看这里的打开App导航文档
  • 具体的参数设置查看这里的打开H5导航文档

到这里就说完了可以愉快的玩耍了…

Android集成高德地图导航SDK、实现App内进行导航、打开高德App导航相关推荐

  1. android百度导航实现,Android 集成百度地图实现设备定位

    Android 集成百度地图实现设备定位 步骤1: 申请android 端SDK : http://lbsyun.baidu.com/ 步骤2: 下载基础版SDK 步骤3: 下载示例程序 步骤4: 开 ...

  2. Android 集成百度地图之申请TTS授权最新版

    Android 集成百度地图之申请TTS授权最新版. 前提:登录百度地图开放平台,且已创建好应用. 开发文档-Android 导航SDK-TTS授权申请. 这里有个坑,简单说下,进入http://yu ...

  3. 解决高德地图锁屏黑屏定位不更新,高德地图绘制定位轨迹,高德定位判断定位停留点,高德地图将所有坐标绘制在可视区域内

    本文章主要介绍 高德定位锁屏黑屏定位不更新的问题. 实现流程是:程序开始阶段正常执行定位,注册监听锁屏监听,唤醒cpu监听,当锁屏 广播每2秒发起一起单次定位唤醒.源码如下: package net. ...

  4. Android之高德地图定位SDK集成及地图功能实现

    一:百度高德官方网站,然后去创建应用. 网址:http://lbs.amap.com/ 1.找到控制台创建一个应用. 2.添加key名称,注意命名规范,还有就是下面的SHA1和包名. 3.点击右边的G ...

  5. Android 集成百度地图AR识别SDK(二)

    废话 今天我们开始集成百度地图AR识别SDK(后面简称AR SDK)的第二章,这一章我们主要讲Android Studio如何配置AR SDK 我们如果单单只看文档的话,很难看懂如何集成,我们需要结合 ...

  6. Android集成百度地图SDK

    本Demo中所含功能 1:定位,显示当前位置 2:地图多覆盖物(地图描点,弹出该点的详细信息) 3:坐标地址互相换算 4:POI兴趣点检索 5:线路查询(步行,驾车,公交) 6:绘制线路(OpenGL ...

  7. 高德地图标识大全_为什么自动驾驶汽车不能使用普通地图导航?

    为什么自动驾驶汽车不能使用普通地图导航?​baijiahao.baidu.com 钛媒体APP 发布时间:2019-11-26 16:56钛媒体APP官方帐号 图片来源@unsplash 文|汽车之心 ...

  8. Android集成百度地图-----显示地图、定位、长按显示地址信息

    一.基础部分 转载请注明出处:https://blog.csdn.net/Hunter2916/article/details/82867205 1.下载百度地图的SDK 下载地址:http://lb ...

  9. js 跳转到指定位置 高德地图_在H5页面内通过地址调起高德地图实现导航

    项目中用到的一个功能是要通过点击地址来实现打开地图app实现地址导航. 如下图: 实现思路就是在H5页面内通过点击marker图标然后进行当前位置与页面上地址的路程规划与导航. 由于项目中用到的是高德 ...

  10. 高德地图安卓 拖拽选点_行车记录仪当“眼睛” 高德地图手机AR导航再次升级...

    来源标题:行车记录仪当"眼睛" 高德地图手机AR导航再次升级 高德地图近日发布新版本,AR驾车导航服务再次升级,支持连接车内行车记录仪.由行车记录仪的摄像头充当"眼睛&q ...

最新文章

  1. JS中的call()方法和apply()方法和slice()用法总结
  2. linux git中央仓库地址,如何在Linux上搭建一个Git中央仓库
  3. 单元测试 python_Python单元测试简介
  4. linux的vi命令输入C,Linux中C语言简单实现之vi篇(详细内容)
  5. html css 自动滚动代码,使用CSS自动滚动
  6. 程序员的相亲那件小事,指南献给您
  7. 《大道至简》第一章,伪代码。
  8. 每周分享第 34 期
  9. IT战略规划怎样做得更务实
  10. 简单爬虫 爬取百度图片并批量重命名
  11. 学习新浪微博计数服务
  12. 实战用Python+Pygame+Kivy(Buildozer)+Ubuntu开发安卓android手机端apk游戏及踩坑分享
  13. Android证书信任问题与大表哥
  14. 【LeetCode】643. 子数组最大平均数 I
  15. js 正则校验 长数字 电话号码 银行卡号
  16. [回顾]2007年木马病毒“英雄榜”,你中过几个
  17. kubernetes学习:4.安装kubectl命令
  18. 浔阳江头夜送客,枫叶荻花秋瑟瑟——python标准输入、标准输出和注释
  19. [前端] marquee使用
  20. Adobe Acrobat Pro DC 2019 软件下载安装详细教程

热门文章

  1. 谷歌浏览器插件打包“文件清单缺失”与安装“文件损害”错误解决
  2. WebStorm之如何清除缓存
  3. Android像素密度dpi/ppi计算公式,px、sp、dp互转工具类——概念解释
  4. Android设备上px(像素)、dpi(像素密度)、dip(密度无关像素)之间的关系
  5. 联合国可持续发展目标,中国大数据服务支持
  6. C#语言自定义平方根函数
  7. 罗翔老师转谈记录,不同认知出发//心之所向,素履以往,生如逆旅,一苇以航。
  8. Task Scheduler 对win7中任务计划的编程
  9. twitter 授权过程
  10. python手写汉字识别项目_TensorFlow 2.0 中文手写字识别(汉字OCR)