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

  • 手机短信加密怎么解开(手机短信加密)(手机短信加密怎么取消设置)

    手机短信加密怎么解开(手机短信加密)(手机短信加密怎么取消设置)

  • 朋友圈不可见的朋友怎么取消(朋友圈不可见的朋友别人能看到吗)

    朋友圈不可见的朋友怎么取消(朋友圈不可见的朋友别人能看到吗)

  • 微信删除好友后对方还有聊天记录吗(微信删除好友后怎么恢复聊天记录)

    微信删除好友后对方还有聊天记录吗(微信删除好友后怎么恢复聊天记录)

  • 没有连接wifi怎么登录路由器(没有连接wifi怎么查看ip地址)

    没有连接wifi怎么登录路由器(没有连接wifi怎么查看ip地址)

  • 小红书账号注销要多久(小红书账号注销不了怎么回事)

    小红书账号注销要多久(小红书账号注销不了怎么回事)

  • 克拉克拉直播可以回放吗(克拉克拉直播可以横屏吗)

    克拉克拉直播可以回放吗(克拉克拉直播可以横屏吗)

  • 滴滴出行打不开(滴滴出行打不开滴滴车主)

    滴滴出行打不开(滴滴出行打不开滴滴车主)

  • pdf可以修改里面的文字吗(pdf能不能修改内容)

    pdf可以修改里面的文字吗(pdf能不能修改内容)

  • 华为如何安装谷歌商店(华为如何安装谷歌三件套)

    华为如何安装谷歌商店(华为如何安装谷歌三件套)

  • 锂电池短路了一下还能用吗(锂电池短路了会出现什么现象)

    锂电池短路了一下还能用吗(锂电池短路了会出现什么现象)

  • 淘宝卖出的钱多久到账(淘宝卖出的东西钱到哪去了)

    淘宝卖出的钱多久到账(淘宝卖出的东西钱到哪去了)

  • 对方通过扫一扫添加什么意思(对方通过扫一扫添加微信)

    对方通过扫一扫添加什么意思(对方通过扫一扫添加微信)

  • 苹果x卡槽怎么打开(苹果X卡槽怎么弹出来)

    苹果x卡槽怎么打开(苹果X卡槽怎么弹出来)

  • word2003如何制作稿纸(word2003如何制作表格)

    word2003如何制作稿纸(word2003如何制作表格)

  • 华为nova2是多少寸的(华为nova2是多少赫兹)

    华为nova2是多少寸的(华为nova2是多少赫兹)

  • powerpoint的主要功能是(powerpoint的主要应用)

    powerpoint的主要功能是(powerpoint的主要应用)

  • 显示器是输出设备还是输入设备(显示器是输出设备不是输入设备是否正确)

    显示器是输出设备还是输入设备(显示器是输出设备不是输入设备是否正确)

  • 怎么转换eps文件格式(eps文件怎么转换成jpg)

    怎么转换eps文件格式(eps文件怎么转换成jpg)

  • 免费安全共享wifi是啥(免费安全共享无线网)

    免费安全共享wifi是啥(免费安全共享无线网)

  • 黄钻进空间有浏览量吗(开通黄钻访问空间有浏览痕迹)

    黄钻进空间有浏览量吗(开通黄钻访问空间有浏览痕迹)

  • 抖音被拉黑还能私聊吗(抖音被拉黑还能发私信吗?)

    抖音被拉黑还能私聊吗(抖音被拉黑还能发私信吗?)

  • 4g和4g十有什么区别(4g的区别)

    4g和4g十有什么区别(4g的区别)

  • vivo反向充电怎么弄(vivo反向充电怎么给苹果充电)

    vivo反向充电怎么弄(vivo反向充电怎么给苹果充电)

  • 一文详解卡尔曼滤波两处噪声的来源及影响(一文详解卡尔曼人物形象)

    一文详解卡尔曼滤波两处噪声的来源及影响(一文详解卡尔曼人物形象)

  • ps换脸后如何统一肤色(ps换脸后怎样修理痕迹)

    ps换脸后如何统一肤色(ps换脸后怎样修理痕迹)

  • 经销商返点方案范文
  • 一般纳税人可以开1%的发票吗
  • 个人保险怎么办理
  • 差旅费的现金流
  • 对公账户发工资1万要交税吗
  • 抵债资产处置账务实例
  • 收到政府补贴现金流量表怎么填
  • 代发工资开票内容
  • 暂估成本跨年后未收到票如何处理
  • 存款利率怎么算存一年后的金额
  • 企业收到的政府补贴,怎么入账
  • 发票上传多久可以验旧
  • 子公司注销投资收益是否纳税合并层面
  • 简易计税的劳务公司员工社保可以抵扣增值税吗
  • 劳务发票备注怎么填
  • 外币利润分配科目如何折算?
  • 注册资本与注册资金的区别
  • 非正常损失和非正常损耗的区别
  • 快捷工具栏在哪儿
  • win7取消共享文件夹
  • php中的函数可以分为哪几种
  • windows 11预览版
  • enw是什么文件
  • 结转本月发生的费用
  • .hpp是什么文件
  • 路由器wds桥接成功为什么不能上网
  • 二手商铺要缴纳契税吗
  • 银行存款利息是按月结还是按年
  • 实际收到的货款怎么做账
  • 餐饮企业库存盘点表
  • 客户抽奖活动方案
  • php 延迟
  • vue.js前端开发快速入门与专业应用
  • PHP如何使用资源路由方式改进新闻管理
  • 高新技术企业补助需要交所得税吗
  • 长期借款的利息计入
  • 微信公众号模板软件
  • 一万字综述怎么写
  • 资产处置损益计算公式
  • 增值税专用发票和普通发票的区别
  • python 元类 详解
  • 2022年windows11windows10最强VMware Workstation 16 Pro for Windows虚拟机软件最新授权版16.2.3-19376536版本
  • 成本核算的会计处理
  • 分公司能给总公司担保吗
  • 暂估入库算材料成本差异吗
  • mongodb配置远程访问
  • 小型微利企业所得税按什么预缴
  • 深入分析的成语
  • 购入固定资产款项未付
  • 免征水利建设基金条件
  • 航天信息的发票以什么形式导入开票信息
  • 公账上的钱怎么提出来
  • 发票遗失复印件可以入账吗
  • 三栏式明细账需要结账吗
  • 发货单票据格式
  • 培训费发票是否可以抵扣
  • 会计错账的更正方法
  • 存货科目包括哪几类
  • mysql服务自动停止运行
  • win7电脑默认打开方式怎么设置
  • windows iis配置
  • centos安装完成后重启进不去
  • xp停在windows界面
  • 支付宝安全控件可以卸载吗
  • rhel配置网卡文件和图形界面
  • win7怎么取消开机选择系统
  • perl keys
  • jquery给复选框赋值
  • unity3d操作
  • nodejs怎么使用
  • javascript文本框获得焦点
  • python简单gui
  • bootstrap要学到什么程度
  • 怎么用python画图具体步骤
  • 小规模纳税人开1%普票怎么报税
  • 增值税应税货物清单
  • 化妆品的消费税税率为15%的比例税率
  • 无偿赠送怎么做账
  • 税控盘红字发票开具流程
  • 认缴制什么时候开始的?
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设