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

  • 微信绑定银行卡里的钱怎么转到微信里(微信绑定银行卡安全吗?会被盗取吗?)

    微信绑定银行卡里的钱怎么转到微信里(微信绑定银行卡安全吗?会被盗取吗?)

  • 小米浏览器书签路径是什么(小米浏览器书签添加到桌面)

    小米浏览器书签路径是什么(小米浏览器书签添加到桌面)

  • 抖音私信消息不显示(抖音私信消息不显示红点了)

    抖音私信消息不显示(抖音私信消息不显示红点了)

  • 苹果11听筒声音小解决方法(苹果11听筒声音突然变小)

    苹果11听筒声音小解决方法(苹果11听筒声音突然变小)

  • 抖音被别人举报了可以看到谁举报的吗(抖音被别人举报了怎么显示)

    抖音被别人举报了可以看到谁举报的吗(抖音被别人举报了怎么显示)

  • 为什么苹果手机下载不了抖音极速版(为什么苹果手机wifi老是自动断开)

    为什么苹果手机下载不了抖音极速版(为什么苹果手机wifi老是自动断开)

  • oppor11更新后怎么没声音(oppor11s手机更新的版本)

    oppor11更新后怎么没声音(oppor11s手机更新的版本)

  • 快手能不能查到手机号(快手能不能查到浏览记录)

    快手能不能查到手机号(快手能不能查到浏览记录)

  • 悬浮窗管理是什么意思(悬浮窗管理在哪里打开)

    悬浮窗管理是什么意思(悬浮窗管理在哪里打开)

  • qq学生专属铭牌怎么取消(qq学生铭牌怎么设置)

    qq学生专属铭牌怎么取消(qq学生铭牌怎么设置)

  • 手机wps怎么搜索内容(手机wps怎么用)

    手机wps怎么搜索内容(手机wps怎么用)

  • 如何把爱奇艺的视频保存到相册(如何把爱奇艺的自动续费关掉)

    如何把爱奇艺的视频保存到相册(如何把爱奇艺的自动续费关掉)

  • 百度爱奇艺卡什么意思(爱奇艺卡的厉害)

    百度爱奇艺卡什么意思(爱奇艺卡的厉害)

  • 快手充的钱怎样能退回(快手充的钱怎么退回来)

    快手充的钱怎样能退回(快手充的钱怎么退回来)

  • 怎么看探探号是否封了(怎么看探探是否异常)

    怎么看探探号是否封了(怎么看探探是否异常)

  • 文档间距怎么缩小(word文档间距缩小)

    文档间距怎么缩小(word文档间距缩小)

  • word2016独特样式在哪(word2016独特样式叫什么)

    word2016独特样式在哪(word2016独特样式叫什么)

  • redmi7待机时间(红米7设置24小时)

    redmi7待机时间(红米7设置24小时)

  • macbookpro怎么测网速?mac查看网速教程(macbook pro怎么检测)

    macbookpro怎么测网速?mac查看网速教程(macbook pro怎么检测)

  • 前端技术搭建扫雷小游戏(内含源码)(前端架构怎么搭建)

    前端技术搭建扫雷小游戏(内含源码)(前端架构怎么搭建)

  • 【JavaScript 刨根问底之】requestAnimationFrame以及延时器

    【JavaScript 刨根问底之】requestAnimationFrame以及延时器

  • 万字详解JVM,让你一文吃透(jvm jmm)

    万字详解JVM,让你一文吃透(jvm jmm)

  • dedecms织梦调用三级四级无限级栏目教程(织梦相关文章调用)

    dedecms织梦调用三级四级无限级栏目教程(织梦相关文章调用)

  • 不确认递延所得税的特殊情况
  • 抵进项税分录
  • 注册资本金入账需要缴税么
  • 月收入不足10万免增值税的账务处理
  • 包装报废会计处理
  • 印花税销售收入按50%计算征收
  • 网上认证增值税专用发票步骤图解
  • 小规模纳税人的好处
  • 金融衍生工具的特点不包括
  • 应交增值税是总额吗
  • 移动纸质发票
  • 财务做账借贷分别表示
  • 不同方式的融资租赁业务如何贴花?
  • 工程款分配方式
  • 多结转成本的会计分录
  • 外地预交增值税退税了如何把申报报表
  • Linux系统中quota磁盘命令的相关使用解析
  • 子公司接受母公司捐赠的会计处理
  • 二手房过户提供发票好还是不提供
  • 亨茨维尔机场
  • 建筑安装收入会计分录
  • 固定资产的减值准备,一经确认,不得转回
  • 电费打发票用哪个软件
  • 预收账款为什么是负债类的
  • php cat
  • web前端性能响应时间
  • 滚动条基本样式有哪些
  • 什么是CHATGPT
  • php中cookie的值存储在哪
  • gawk命令 模式扫描与处理语言
  • cmsv6无法连接服务器
  • 提供加工劳务怎么开票
  • 增值税发票认证结果通知书在哪里打印
  • 增值税专票的开票要求
  • 开票物流辅助服务怎么搜
  • 劳务费发票怎么入账
  • 织梦使用手册
  • 借款的帐务处理?
  • 年收入1500万是富人吗
  • 核定征收企业所得税应税所得率
  • 变更股东投资比例
  • 房租收入如何纳税
  • 收款金额比开票金额多怎么处理
  • 税控盘的进项税在哪里申报
  • 工程施工的主要经济指标包括哪些
  • 房地产企业所得税管理办法
  • 利息收入是一级科目还是
  • 红冲凭证怎么做分录
  • 在建工程转固定资产凭证附件
  • 商业汇票怎么算到期日
  • 印花税为什么不用计提
  • 哪些减值准备一经计提不得转回
  • 流动比率多少合理
  • 从mysql导出数据
  • 电脑更新win10系统软件
  • windows8禁用uac
  • centos vncviewer
  • vim wqa
  • win10系统开机密码设置方法
  • ubuntu debian centos
  • CentOS救援模式实验笔记详解
  • Windows 8中Hyper-V虚拟机操作应用的具体步骤
  • windows8停止
  • win8功能大全介绍
  • cocos2d
  • unity怎么bake
  • android ios UI
  • 批处理 修改文件名
  • javascript web开发
  • Jquery中巧用Ajax的beforeSend方法
  • js实现双击屏幕放大
  • python enumeration
  • 深圳12366怎么转人工
  • 国税总局北京市税务局
  • 国税和地税比例
  • 河北电子税务局如何添加办税人员
  • 浦东经济开发区官网
  • 契税5年什么意思?
  • 存在未申报记录
  • 工伤保险怎么补申报
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设