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

  • 坦白说在哪里打开(坦白说)(坦白说怎么玩2020)

    坦白说在哪里打开(坦白说)(坦白说怎么玩2020)

  • amazfit怎么连接手机(amazfit怎么连接zepp)

    amazfit怎么连接手机(amazfit怎么连接zepp)

  • 快手上传视频模糊(快手上传视频模糊不清)

    快手上传视频模糊(快手上传视频模糊不清)

  • usp插口是什么意思(usp接口失灵怎么办)

    usp插口是什么意思(usp接口失灵怎么办)

  • 微信朋友圈底下的字怎么设(微信朋友圈底下的评论是谁都可见吗)

    微信朋友圈底下的字怎么设(微信朋友圈底下的评论是谁都可见吗)

  • 港版三星s20和国行的区别(港版三星s20和国行的区别在哪里)

    港版三星s20和国行的区别(港版三星s20和国行的区别在哪里)

  • 华为手机怎么设置密码锁(华为手机怎么设置锁屏密码)

    华为手机怎么设置密码锁(华为手机怎么设置锁屏密码)

  • 快手是不是交了保证金就可以直播了(快手交钱)

    快手是不是交了保证金就可以直播了(快手交钱)

  • 小米移动4g什么意思(小米移动4g什么时候上市)

    小米移动4g什么意思(小米移动4g什么时候上市)

  • 小米4强制开机方法(小米强制开机是什么键)

    小米4强制开机方法(小米强制开机是什么键)

  • 面向机器的语言是指(面向机器的语言是低级语言吗)

    面向机器的语言是指(面向机器的语言是低级语言吗)

  • 美团红包换城市可以用吗(美团换过的红包怎么转通用)

    美团红包换城市可以用吗(美团换过的红包怎么转通用)

  • vivox30pro什么处理器(vivox30pro测评视频)

    vivox30pro什么处理器(vivox30pro测评视频)

  • 手机垃圾怎么清理干净(手机垃圾怎么清除干净)

    手机垃圾怎么清理干净(手机垃圾怎么清除干净)

  • 苹果七软件闪退怎么回事(苹果七软件闪退怎么办)

    苹果七软件闪退怎么回事(苹果七软件闪退怎么办)

  • 飞利浦电动牙刷充电没反应(飞利浦电动牙刷充电时嘟嘟响是什么)

    飞利浦电动牙刷充电没反应(飞利浦电动牙刷充电时嘟嘟响是什么)

  • realmex青春版有nfc吗(realmex青春版有开盖弹窗吗)

    realmex青春版有nfc吗(realmex青春版有开盖弹窗吗)

  • 硬盘录像机资源不足(录像带转存电脑的方法)

    硬盘录像机资源不足(录像带转存电脑的方法)

  • 手机进油了油会蒸发吗(手机进油了会坏吗)

    手机进油了油会蒸发吗(手机进油了会坏吗)

  • 优酷会员号码怎么找到(优酷视频会员号码)

    优酷会员号码怎么找到(优酷视频会员号码)

  • iphoneX的屏幕是玻璃吗(iphonex的屏幕是什么屏)

    iphoneX的屏幕是玻璃吗(iphonex的屏幕是什么屏)

  • 微信怎么发6分钟视频(微信怎么发6分钟长视频)

    微信怎么发6分钟视频(微信怎么发6分钟长视频)

  • 华为鸿蒙系统耗电快怎么办?鸿蒙系统耗电快解决教程(华为鸿蒙系统耗电量快吗)

    华为鸿蒙系统耗电快怎么办?鸿蒙系统耗电快解决教程(华为鸿蒙系统耗电量快吗)

  • 航天信息开票软件
  • 出口退税分类管理办法最新
  • 房地产开发企业土地增值税预缴
  • 向银行借款存入银行会引起
  • 无形资产摊销是当月还是下月
  • 资产负债表日后调整事项与非调整事项的区别
  • 企业所得税的优点有哪些
  • 牛奶公司饲养奶牛生产牛奶
  • 税收制度具体内容
  • 税收返还怎么做会计分录
  • 多出来的费用
  • 水利建设专项收入怎么报税
  • 厂房转让企业所得税计算方法
  • 京东电子商务平台业务流程
  • 退休人员返聘工资怎么缴税
  • 劳务费发票是几个点的税率
  • 即征即退增值税政策
  • 开专票一定要公章吗
  • 印花税加工承揽税率
  • 小规模纳税人应纳税额的计算
  • 发票请求流水号不能为空
  • 有限合伙人公司
  • 银行手续费回单可以作为报销
  • 合同返点提成犯法吗
  • 售后回租 出租方
  • 外地项目不预缴税款
  • 技术合同与购销合同区别
  • 电信网费普通发票税率为什么是0
  • 出口汇兑损益的会计分录
  • 出纳人员怎么进入会计
  • 地下车库怎么缴费
  • win7怎么转移桌面到d盘
  • iphone6s怎么开启开发者选项
  • 软件维护费清单
  • 延期报税申请怎么操作
  • 债券到期收回本息的会计分录
  • 税控盘不交服务费的后果
  • 网络命令netstat
  • 应收账款转让分录
  • 系统之家哪个系统比较好用
  • PHP:http_build_query()的用法_url函数
  • 纳税人购进农产品取得
  • chat function
  • 外籍人员一次性奖金
  • 原材料的盘盈与盘亏的会计处理
  • 怎样把htm文件转成excel
  • syms命令
  • 小规模纳税人免税会计分录
  • php静态方法和非静态方法
  • 银行存款也有窍门
  • Vue3:探讨一下mixin
  • 股权转让会计分录摘要怎么写
  • sql语句清空表中数据
  • 小规模减免的增值税要交所得税吗
  • 收取加盟费的条件
  • 为什么预付账款是资产
  • 过程中必须有哪两种状态
  • 进项和销项税月底有余额吗
  • 利息发票可以抵税吗
  • 什么是汇总记账凭证账务处理程序?有哪些特点?
  • sql分几类
  • Win7安装i219v网卡驱动
  • win7系统连接打印机没有反应
  • win8.1关机没反应
  • centos安装命令yum
  • python生成二维码添加图片
  • nodejs解析路径
  • python迭代器iterator
  • android/bitmap.h
  • 归档 oracle
  • jQuery ajaxForm()的应用
  • jquery 修改
  • 安卓layout布局
  • bootstrap快速入门
  • 土地重置成本价
  • 黄南同仁县海拔多少米
  • 某地区土拍的楼盘有哪些
  • 竣工开始缴房产税吗
  • 电信宽带欠费滞纳金最多减免多少?
  • 地税企业所得税是多少
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设