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

  • 苹果手机怎么投影到墙上(苹果手机怎么投屏到电视上观看)

    苹果手机怎么投影到墙上(苹果手机怎么投屏到电视上观看)

  • 魅族17有红外功能线的吗(魅族17p有没有红外)

    魅族17有红外功能线的吗(魅族17p有没有红外)

  • 苹果xr改双卡弊端(xr改双卡有风险吗)

    苹果xr改双卡弊端(xr改双卡有风险吗)

  • 华为手机浮屏怎么设置(华为手机浮屏怎么开启关闭)

    华为手机浮屏怎么设置(华为手机浮屏怎么开启关闭)

  • 淘宝商品货号在哪里(淘宝商品货号在哪)

    淘宝商品货号在哪里(淘宝商品货号在哪)

  • 苹果xr卡屏关不了机(苹果xr卡屏不动也重启不了)

    苹果xr卡屏关不了机(苹果xr卡屏不动也重启不了)

  • 移动亲情网怎么删除成员(移动亲情网怎么退出成员)

    移动亲情网怎么删除成员(移动亲情网怎么退出成员)

  • wifi太远了信号不好怎么办(wifi远了信号不好怎么办)

    wifi太远了信号不好怎么办(wifi远了信号不好怎么办)

  • 华为屏幕保修多久呢(华为屏幕保修几年)

    华为屏幕保修多久呢(华为屏幕保修几年)

  • 拉黑之后聊天记录还有吗(拉黑之后聊天记录还会在吗?)

    拉黑之后聊天记录还有吗(拉黑之后聊天记录还会在吗?)

  • 苹果手机微信自动退出怎么回事(苹果手机微信自动续费功能在哪里关闭)

    苹果手机微信自动退出怎么回事(苹果手机微信自动续费功能在哪里关闭)

  • 手机上下载的软件桌面上没有找到(手机上下载的软件怎么传到另一个手机上)

    手机上下载的软件桌面上没有找到(手机上下载的软件怎么传到另一个手机上)

  • 怎样用微信交合作医疗

    怎样用微信交合作医疗

  • 微信出现风险提示怎么快速解决(微信出现风险提示)

    微信出现风险提示怎么快速解决(微信出现风险提示)

  • 手机投屏检测不到电脑(手机投屏检测不到设备怎么回事)

    手机投屏检测不到电脑(手机投屏检测不到设备怎么回事)

  • 钉钉能直播上课吗(钉钉直播上课老师可以看见学生吗)

    钉钉能直播上课吗(钉钉直播上课老师可以看见学生吗)

  • 华为mate20参数配置(华为mate20参数配置中关村)

    华为mate20参数配置(华为mate20参数配置中关村)

  • mq8j2ch a是什么型号(mq8j2cha是什么型号)

    mq8j2ch a是什么型号(mq8j2cha是什么型号)

  • 组织结构设计的原则是什么(组织结构设计的弹性原则就是要求部门)

    组织结构设计的原则是什么(组织结构设计的弹性原则就是要求部门)

  • 华为p30怎么关闭分屏(华为p30怎么关闭防误触模式)

    华为p30怎么关闭分屏(华为p30怎么关闭防误触模式)

  • 抖音怎么更换绑定的手机号(抖音怎么更换绑定手机号)

    抖音怎么更换绑定的手机号(抖音怎么更换绑定手机号)

  • gtx2080和rtx2080区别

    gtx2080和rtx2080区别

  • xs和x一样大吗(xs和x大小一样嘛)

    xs和x一样大吗(xs和x大小一样嘛)

  • gioneegn8003什么型号(gioneegn8002s是什么型号)

    gioneegn8003什么型号(gioneegn8002s是什么型号)

  • 西瓜视频怎么看个人资料(西瓜视频怎么看自己的作品)

    西瓜视频怎么看个人资料(西瓜视频怎么看自己的作品)

  • Python如何提取字符串的内容(python如何提取字典中的键)

    Python如何提取字符串的内容(python如何提取字典中的键)

  • 帝国CMS列表页中获取当前信息所属专题名称的方法(帝国cms自定义列表)

    帝国CMS列表页中获取当前信息所属专题名称的方法(帝国cms自定义列表)

  • 营业外收入要交企业所得税吗
  • 实收资本印花税是营业账簿吗
  • 销售佣金计入什么会计科目
  • 计提无形资产摊销额计入什么科目
  • 装修收入如何填报增值税表
  • 资产处置收益计入利润总额吗
  • 本期金额和上期金额怎么填写
  • 金税系统维护费可以全额抵扣吗
  • 哪些项目容易漏缴个人所得税
  • 债权如何变现
  • 企业购进货物发生的下列相关税费中,应计入货物
  • 产品试用装入什么科目里
  • 食堂开支计入什么科目
  • 开公司怎么报账
  • 船运费发票抵扣多少税
  • 开具增值税专用发票怎么开
  • 开进来的发票冲红怎么处理?
  • 环保税和环境税一样吗
  • 房产报废手续
  • 应交税金的明细科目
  • 一万元国债一年多少利息
  • 应发工资包含
  • 年底买车险会便宜吗
  • 计提坏账准备的会计分录
  • 社保增加人员网上申报
  • 银行拒付汇票金额的救济方法
  • php怎么配置环境
  • frameworkservic.exe是什么进程 有什么作用 frameworkservic进程查询
  • 个人所得税应该计入什么科目
  • php精彩编程200例
  • 以本年利润弥补以前年度亏损会影响所有者权益总额吗
  • 会计中的计算公式
  • 图像分割 unet
  • 逾期未收回包装物押金的实务处理
  • laslajas大教堂
  • 小企业的费用包括生产成本吗
  • 境外汇款预处理是什么意思
  • phpsession和cookie
  • 科研toc
  • 委托开发和购买开发
  • Vue3通透教程【十三】TS简单类型详解
  • 2023年网络安全专题教育
  • 中小企业内部分析
  • 增值税专用发票电子版
  • 应收的货款
  • wordpress!
  • mongodb 数据文件
  • 捐款怎么组织
  • 增值税税目明细
  • 哪些企业不能核算成本
  • 小规模纳税人季报需要报什么
  • 报销差旅费大于预借差旅费会计分录
  • 委托代销商品的核算
  • 新公司几个月不报税
  • 投标保证金支付给谁
  • 客户手续费率
  • 商品未入库直接销售怎么记账
  • 税务开票系统怎么开票
  • 公司员工报销油费
  • 城市生活垃圾处理方式有哪几种
  • MySQL数据库远程登录
  • ubuntu系统安装教程详细
  • centos7怎么变成图形化界面
  • 联想随笔
  • linux安装过程中的硬盘分区
  • win7关闭系统更新在哪里
  • excel怎么添加动态图
  • Interlnk、Intersvr、Qbasic命令的使用方法
  • 微信小程序基于spingboot
  • linux系统搜索文件内容
  • jquery插件使用教程
  • node.js mysql
  • unity导入max文件
  • android的数据储存方式
  • jquery怎么设置样式
  • javascript 加法
  • 安卓手机管家推荐
  • javascript对象定义
  • 武汉市国税局局长黄英简历
  • 发票号码的8位是什么
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设