位置: 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)

  • 华为手机显示无服务怎么回事(华为手机显示无服务是怎么回事)

    华为手机显示无服务怎么回事(华为手机显示无服务是怎么回事)

  • 如何把腾讯视频下载的视频保存到本地(如何把腾讯视频的视频保存到相册)

    如何把腾讯视频下载的视频保存到本地(如何把腾讯视频的视频保存到相册)

  • 华为支付保护中心的利弊(华为支付保护中心利弊)

    华为支付保护中心的利弊(华为支付保护中心利弊)

  • soul怎么删除聊天记录(soul怎么删除聊天列表)

    soul怎么删除聊天记录(soul怎么删除聊天列表)

  • 联想笔记本网线接口在哪(联想笔记本网线连接不到网络)

    联想笔记本网线接口在哪(联想笔记本网线连接不到网络)

  • 佳能mg2400可以无线打印吗(佳能mg2400怎么用)

    佳能mg2400可以无线打印吗(佳能mg2400怎么用)

  • 华为平板能插手机卡吗(华为平板能插手绘板吗)

    华为平板能插手机卡吗(华为平板能插手绘板吗)

  • 小米手环4怎么放音乐呀(小米手环4怎么开机)

    小米手环4怎么放音乐呀(小米手环4怎么开机)

  • iphone7p摄像头下方发烫严重(苹果7摄像头下面那块发烫)

    iphone7p摄像头下方发烫严重(苹果7摄像头下面那块发烫)

  • 苹果手机无缘无故没有信号(苹果手机无缘无故开不了机)

    苹果手机无缘无故没有信号(苹果手机无缘无故开不了机)

  • 电话充值卡哪里去买(电话充值卡哪里去卖)

    电话充值卡哪里去买(电话充值卡哪里去卖)

  • 音响中英文语音切换(音响中英文语音怎么设置)

    音响中英文语音切换(音响中英文语音怎么设置)

  • 华为应用助手悬浮窗显示不了(华为应用助手悬浮窗怎么关闭)

    华为应用助手悬浮窗显示不了(华为应用助手悬浮窗怎么关闭)

  • 手机屏幕没坏触摸失灵 (手机屏幕没坏触摸屏时好时坏)

    手机屏幕没坏触摸失灵 (手机屏幕没坏触摸屏时好时坏)

  • 拼多多下架的商品可以退货吗(拼多多下架的商品怎么上架)

    拼多多下架的商品可以退货吗(拼多多下架的商品怎么上架)

  • 快手下载的视频在哪里(快手下载的视频如何去水印保存)

    快手下载的视频在哪里(快手下载的视频如何去水印保存)

  • 微博怎么设置手机型号隐蔽(微博怎么设置手机号搜不到)

    微博怎么设置手机型号隐蔽(微博怎么设置手机号搜不到)

  • 小米手机系统ui是什么意思(小米手机系统ui没有响应)

    小米手机系统ui是什么意思(小米手机系统ui没有响应)

  • 拼多多工单能撤销吗(拼多多工单结束了还可以在投诉吗)

    拼多多工单能撤销吗(拼多多工单结束了还可以在投诉吗)

  • idqq.com什么意思(qq id 是什么)

    idqq.com什么意思(qq id 是什么)

  • 苹果volte是什么功能(iphone volte有什么用)

    苹果volte是什么功能(iphone volte有什么用)

  • 怎么清理手机缓存垃圾(怎么清理手机缓存垃圾内存)

    怎么清理手机缓存垃圾(怎么清理手机缓存垃圾内存)

  • 微信怎么发长视频(微信怎么发长视频教程)

    微信怎么发长视频(微信怎么发长视频教程)

  • 小米msa可以删除吗(小米删除ca)

    小米msa可以删除吗(小米删除ca)

  • 电脑一键恢复出厂设置(电脑一键恢复出厂系统win7)

    电脑一键恢复出厂设置(电脑一键恢复出厂系统win7)

  • 最具性价比的手机(最具性价比的手表品牌)

    最具性价比的手机(最具性价比的手表品牌)

  • 手机ca证书怎么删除(手机ca证书怎么申请流程)

    手机ca证书怎么删除(手机ca证书怎么申请流程)

  • 苹果8p支持5g吗(苹果8p支持5g网络吗?)

    苹果8p支持5g吗(苹果8p支持5g网络吗?)

  • 会计报税
  • 资金什么情况下退出企业
  • 苗圃公司会计分录
  • 两个金税盘能用一个系统
  • 其他综合收益影响所有者权益吗
  • 跨月作废增值税专用发票
  • 交了定金签了合同
  • 现金支票提取现金备用
  • 朋友抵押贷款通过我公司名义会怎样
  • 股票买卖属于投资活动吗
  • 土地增值税清算利息扣除规定
  • 白酒消费税税率多少钱一吨
  • 小规模纳税人可以开9%专票吗
  • 核定征收金额如何确定
  • 所得税汇算调增调减是什么意思
  • 企业年金个税如何计提
  • 对员工的罚款怎么做账
  • 公司缴纳的社保离职后自己可以缴纳社保
  • 确认整个会计年度的依据
  • 金税三期上线后的税收征管问题
  • 去年的发票今年能用吗
  • win10系统如何注册dll文件
  • 前任会计很多错账
  • win11任务栏失灵
  • ThinkPHP中SHOW_RUN_TIME不能正常显示运行时间的解决方法 原创
  • 销售折让负数发票如何入账
  • 总部资产减值测试例题
  • 增值税逾期申报情况说明
  • 虚假财务报表的法律后果
  • backup是什么文件夹怎么能打开
  • 在沙滩上的语句
  • 小型微利企业税收优惠2023
  • 报表上如何把账号删除
  • 深度测试软件
  • 自然人办税服务大厅
  • 帝国cms更换编辑器
  • 中小型科技企业所面临的普遍问题是资金缺乏
  • 经济独立可以做什么
  • 销售部门的固定资产
  • 支付临时工工资,需要个税申报吗
  • python中np.array用法
  • 帝国cms模型
  • 小规模季度等于几个月
  • 发票验真伪需要盖章吗
  • 公司注销之前需要做些什么
  • sqlserver2016使用方法
  • 固定资产减值准备可以转回吗
  • 抄税是什么时间截止
  • 外贸出口增值税附表二填哪项
  • 固定资产计提折旧的原则
  • 某企业福利部门
  • 待摊费用要怎么做账
  • 固定资产处理附件是什么
  • 背书转让的电子汇票怎么查询
  • 转销无法收回的应收账款会计分录
  • 财务费用在贷方负数表示什么
  • 业务招待算什么费用
  • 租金是含税价还是含税金
  • 收到保险公司赔款
  • 总账选项设置步骤
  • 跨网段加入域配置
  • ubuntu20安装fcitx5
  • cmdexe文件损坏
  • win7每次开机选系统
  • win7更新不了80072efe
  • linux系统磁盘管理的主要内容
  • win7系统播放器在哪
  • centos7.2安装
  • unix2dos linux实现
  • [置顶]从lv2开始开挂的原勇者候悠闲的异世界生活
  • c#中延时
  • array 和list
  • python3.8.3怎么用
  • 如何编写高质量创业计划书实验小结
  • python调用fortran函数传入数组
  • js如何使用cookie
  • 简述使用jquery实现表单验证的流程
  • 运满满订单取消技术服务费退还吗
  • 契税和耕地占用税由谁负责征收
  • 武汉代账公司一般怎么收费
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设