位置: IT常识 - 正文

uniapp 开发安卓App实现高德地图路线规划导航(uniapp 开发安卓app怎么打包迭代版本)

编辑:rootadmin
uniapp 开发安卓App实现高德地图路线规划导航 文章目录技术概述技术详述问题与解决我的总结参考文献技术概述

推荐整理分享uniapp 开发安卓App实现高德地图路线规划导航(uniapp 开发安卓app怎么打包迭代版本),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:uniapp 开发安卓,uniapp开发安卓app需要分包吗,uniapp 开发安卓app怎么打包迭代版本,uniapp开发安卓app,性能要求,uniapp开发安卓app需要分包吗,uniapp开发安卓app坑,uniapp 开发安卓app怎么打包迭代版本,uniapp开发安卓app坑,内容如对您有帮助,希望把文章链接给更多的朋友!

描述这个技术是做什么的/什么情况下会使用到这个技术,学习该技术的原因,技术的难点在哪里。控制在50-100字内。

uniapp的map组件中导航路线的展示。是uniapp开发app时引入地图导航的实现方式。技术难点在于实现map组件时对于属性以及函数的细节使用很容易出现一些奇怪的bug。

技术详述

描述你是如何实现和使用该技术的,要求配合代码和流程图详细描述。可以再细分多个点,分开描述各个部分。

首先是在地图开发者平台申请地图的key

key在地图开发时引入地图时是必备

接着在开发工具HbuilderX的插件市场安装插件

在插件市场找到这个路线规划插件,点击进行安装到开发工具中。

在页面的script中引入js文件import Amap from '@/js/lyn4ever-gaode.js';以上的js文件有两个函数,分别为绘制路线与路线标记点函数uniapp 开发安卓App实现高德地图路线规划导航(uniapp 开发安卓app怎么打包迭代版本)

绘制规划路线函数

//绘制规划路线function PlanningRoute(start, end, _waypoints, result, fail) {let that = this;var myAmapFun = new amapFile.AMapWX({key: key});myAmapFun.getDrivingRoute({origin: start,destination: end,waypoints: _waypoints,success: function(data) {var points = [];if (data.paths && data.paths[0] && data.paths[0].steps) {var steps = data.paths[0].steps;for (var i = 0; i < steps.length; i++) {var poLen = steps[i].polyline.split(';');for (var j = 0; j < poLen.length; j++) {points.push({longitude: parseFloat(poLen[j].split(',')[0]),latitude: parseFloat(poLen[j].split(',')[1])})}}}result({points: points,color: "#0606ff",width: 8})},fail: function(info) {fail(info)}})}

路线标记点函数

//标记标记点function Makemarkers(startpoi, endpoi, waypoints, success) {let markers = [];//起点let start = {iconPath: "@/static/img/log/nav.png",id: 0,longitude: startpoi.split(",")[0],latitude: startpoi.split(",")[1],width: 23,height: 33,callout:{content:'起点',}}markers.push(start)//终点let end = {iconPath: "@/static/img/log/nav.png",id: 1,longitude: endpoi.split(",")[0],latitude: endpoi.split(",")[1],width: 23,height: 33,callout:{content:'终点',}}markers.push(end)//途经点,先将其分隔成为数组let _waypoints = waypoints.split(';')for (let i = 0, _len = _waypoints.length; i < _len; i++) {let point = {iconPath: "/static/tjd.png",id: i,longitude: parseFloat(_waypoints[i].split(",")[0]),latitude: parseFloat(_waypoints[i].split(",")[1]),width: 23,height: 33,callout:{content:'途径点',}}markers.push(point)}success(markers);}接着在script里的showRouter()调用js里面的两个函数

只要传入起点与终点的经纬度即可在map组件里展示出规划路线来

只要传入对应的路线途中打点的数组对象即可在路线中显示经过的点。

showRouter(){let that = this;var startPoi = that.longitude+','+that.latitude;var wayPoi ="";var endPoi = that.addressObj.longitude+','+that.addressObj.latitude;Amap.line(startPoi, endPoi, wayPoi,function(res){that.polyline=[];that.polyline.push(res)});Amap.markers(startPoi,endPoi,wayPoi,function(res){that.markers=[];that.markers.push.apply(that.markers,res)})}效果图

问题与解决

技术使用中遇到的问题和解决过程。要求问题的描述和解决有一定的内容,不能草草概括。要让遇到相关问题的人看了你的博客之后能够解决该问题。

问题:

导航路线展示后地图页面缩放大小不能很好的控制, 由于展示路线后我们期望地图视角能够涵括这个路线的起始点,这个问题困扰了我很久,解决前,总是在路线规划展示后视野仅仅停留在路线的一小部分。解决后,即可完全展示整个路线的视野。

解决:

我根据路线的起始点之间的距离,利用一个拟合函数来处理地图scale的大小,这样就可以调整好地图的缩放大小。

通过请求后端来返回导航的距离,设置一个surface数组来存放标记值,将距离换算成km后去遍历surface数组,当距离大于数组的值时,将地图的scale设置为surface对应下标值+5,这样就可以实现路线展示后地图缩放大小的控制了。

uni.request({/* url: 'http://47.95.151.202:8087/getDist/福州大学/福州三坊七巷', */url: 'http://47.95.151.202:8087/getDist/'+that.myAddress+'/'+that.realAddress,success: (res) => {// 请求成功之后将数据给Infovar result = res.data;console.log(that.myAddress);console.log(that.realAddress);if(result.code===200){var surface = [500, 200, 100, 50, 20, 10, 5, 2, 1, 0.5, 0.2, 0.1, 0.05, 0.02];var isset=1;var farthestDistance=result.data/1000;console.log(result.data);for(var i in surface) {if(farthestDistance >surface[i]) {that.myscale = 5 + Number(i);isset=0;break;}}if(isset) that.myscale=16;console.log(that.myscale);};if(result.code===500){uni.showToast({title: '获取距离错误,换个地点试试呗',icon: 'none',});}},fail(err) {res(err);}});

我的总结通过此次的地图学习,基本掌握了地图的实现方式,导航路线的展示方法,以及map组件的相关属性和函数的使用,收获颇丰。参考文献

uniapp 开发安卓App引入高德地图

本文链接地址:https://www.jiuchutong.com/zhishi/297430.html 转载请保留说明!

上一篇:vue实现将自己网站(h5链接)分享到微信中形成小卡片(超详细)(vue引入网络js)

下一篇:resetFields重置初始值不生效的原因(reset fields)

  • qq音乐房间怎么删除(qq音乐房间怎么创建)

    qq音乐房间怎么删除(qq音乐房间怎么创建)

  • 微信群500人满了还能加人吗(微信群500人满了怎么弄1000人)

    微信群500人满了还能加人吗(微信群500人满了怎么弄1000人)

  • 番茄小说的扫一扫在哪(番茄小说的扫一扫在哪里打开)

    番茄小说的扫一扫在哪(番茄小说的扫一扫在哪里打开)

  • win10怎么取消开机密码(win10怎么取消开机选择操作系统)

    win10怎么取消开机密码(win10怎么取消开机选择操作系统)

  • 字幕与隐藏式字幕有什么用(字幕与隐藏式字幕怎么用)

    字幕与隐藏式字幕有什么用(字幕与隐藏式字幕怎么用)

  • 美团账号异常如何解除(美团账号异常如何解除视频)

    美团账号异常如何解除(美团账号异常如何解除视频)

  • 淘宝更换主图会影响权重吗(淘宝更换主图会影响什么)

    淘宝更换主图会影响权重吗(淘宝更换主图会影响什么)

  • 微博冻结验证频繁怎么解决(微博冻结验证频繁)

    微博冻结验证频繁怎么解决(微博冻结验证频繁)

  • 华为手机更改不了锁屏密码(华为手机更改不了锁屏密码怎么办)

    华为手机更改不了锁屏密码(华为手机更改不了锁屏密码怎么办)

  • 为什么人脸识别多次失败(为什么人脸识别突然不能用了)

    为什么人脸识别多次失败(为什么人脸识别突然不能用了)

  • 美团综合评分不足怎么恢复(美团综合评分不足是征信不好吗)

    美团综合评分不足怎么恢复(美团综合评分不足是征信不好吗)

  • nex3s和nex3区别(nex3跟nex3s有什么区别)

    nex3s和nex3区别(nex3跟nex3s有什么区别)

  • 华为手机扫码扫不出来(华为手机扫码扫不出来是怎么回事)

    华为手机扫码扫不出来(华为手机扫码扫不出来是怎么回事)

  • 电脑的fn键是哪个(电脑的fn是什么键)

    电脑的fn键是哪个(电脑的fn是什么键)

  • word2007没保存怎么找回(word2007没保存怎么恢复)

    word2007没保存怎么找回(word2007没保存怎么恢复)

  • 闪电退货会马上退款吗(闪电退货是先退款吗)

    闪电退货会马上退款吗(闪电退货是先退款吗)

  • 计算机off键是什么键(计算机上off键的功能是什么)

    计算机off键是什么键(计算机上off键的功能是什么)

  • 蓝牙耳机r是左还是右(蓝牙耳机r是左还是右好)

    蓝牙耳机r是左还是右(蓝牙耳机r是左还是右好)

  • vivo手机计时器在哪(vivo手机计时器怎么用)

    vivo手机计时器在哪(vivo手机计时器怎么用)

  • 怎么把两个盘合成一个盘(怎么把两个盘合成一个)

    怎么把两个盘合成一个盘(怎么把两个盘合成一个)

  • 反片打印是双面打印吗(反片打印是双面的吗)

    反片打印是双面打印吗(反片打印是双面的吗)

  • 小米8抬头灯怎么弄(小米8灯光怎么开启)

    小米8抬头灯怎么弄(小米8灯光怎么开启)

  • oppor17pro电池多少毫安(oppor17pro电池耐用吗)

    oppor17pro电池多少毫安(oppor17pro电池耐用吗)

  • 如何自定义win10通知中心的快捷按钮(如何自定义win10开机音乐)

    如何自定义win10通知中心的快捷按钮(如何自定义win10开机音乐)

  • cpupower命令  调整CPU主频参数(cpu power management设置)

    cpupower命令 调整CPU主频参数(cpu power management设置)

  • 一个季度超过30万怎么做账
  • 印花税征税范围是什么
  • 代销商品的手续费税率是多少
  • 租赁费税率3%
  • 企业以买一赠一
  • 简易计征开什么发票
  • 坏账转销会计分录应收帐款金额怎么写
  • 企业所得税虚报成本多少属于犯罪
  • 跨月未抵扣的专用发票开红字发票
  • 采购合同安装服务费审价规定
  • 买一赠一怎么确定真假
  • 事业单位购入车辆如何做账
  • 产业政策鼓励类
  • 年底买车险会便宜吗
  • 房地产增值税结转收入的条件是什么
  • 投资性房地产企业有哪些
  • 企业收到政府扶贫资金补助及运用补助金怎么做账
  • 专利代理费如何报销
  • 权益法初始入账价值和初始投资成本
  • 年底返利账务处理
  • php防止再次刷新
  • 房地产企业哪些成本上升了
  • 融资租入固定资产的入账价值
  • 企业所得税季初数怎么填
  • php读取文件的一部分
  • 教你一行代码
  • Yii2表单事件之Ajax提交实现方法
  • 学python真的好就业吗
  • 参加《2022 中国开发者影响力盛典》我的 4 重收获!
  • vue动态绑定背景图
  • Php实现注解注入
  • php密码加密技术phpass
  • python类 方法
  • 健身房注册公司名称带超字
  • 增值税的税目和税率
  • 新建厂房如何计提折旧费用
  • 关于实收资本的表述中,不正确的是
  • 固定资产包括无形资产吗?
  • 分公司可以分配利润吗
  • ps怎么移动某个图案
  • mongodb如何删除
  • 法院对行政机关罚款
  • 具体包括以下哪些方面
  • 房地产企业土地增值税清算
  • 增值税销项税额抵减账务处理
  • 劳务公司开出的劳务票需要申报个税吗
  • 印花税如何计算缴纳
  • 员工迟到扣款如何做账
  • 交通运输业安全经费提取的会计处理
  • 应付账款的发生额怎么算
  • 工程材料票占工程款的比例
  • 人力公司开的代驾发票
  • 违约金罚款计入什么科目
  • 企业免征税范围有哪些
  • 工会经费是什么凭证
  • 怎样填写记账凭证
  • 如何控制自己不磨牙
  • sql企业管理器在哪里
  • 勒索病毒2021
  • win7系统怎么更新到win10
  • Win10预览版拆弹
  • freebsd服务器搭建
  • thinkpad预装的office怎么激活
  • 在windows xp中说法正确的是
  • mac系统制作
  • centos配置httpd
  • MAC修改Dock烟雾效果及设置抓屏快捷键的方法
  • win2008怎么查看隐藏文件
  • shell检查语法错误
  • scm是啥
  • sql2000停止拒绝访问
  • linux怎么配置raid
  • Tutorial2 Hello dot!
  • 在布局中使用选定的比例
  • shell脚本tr
  • uploadify上传无反应
  • 浅谈JavaScript事件的属性列表
  • 在python中的用法
  • 地税局 业务
  • 航信报税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设