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

  • iqooz5什么处理器(iqooz5处理器性能怎么样)

    iqooz5什么处理器(iqooz5处理器性能怎么样)

  • 淘宝怎么更换支付宝账号(淘宝怎么更换支付宝绑定)

    淘宝怎么更换支付宝账号(淘宝怎么更换支付宝绑定)

  • 小米手机怎么看电池健康程度(小米手机怎么看流量使用明细)

    小米手机怎么看电池健康程度(小米手机怎么看流量使用明细)

  • 有页眉页脚的空白页怎么删除不掉(有页眉页脚的空白页)

    有页眉页脚的空白页怎么删除不掉(有页眉页脚的空白页)

  • ipad短信标志有个叹号(ipad短信一直有角标)

    ipad短信标志有个叹号(ipad短信一直有角标)

  • iphone se2电池容量多少(iphone se2电池容量是多少)

    iphone se2电池容量多少(iphone se2电池容量是多少)

  • 22.5w快充有多快(22.5w快充充满要多久)

    22.5w快充有多快(22.5w快充充满要多久)

  • huawei web view是什么(huawei webview_10.0.0.311)

    huawei web view是什么(huawei webview_10.0.0.311)

  • 华为荣耀8x怎么隐藏应用程序(华为荣耀8x怎么录屏)

    华为荣耀8x怎么隐藏应用程序(华为荣耀8x怎么录屏)

  • 手机恢复出厂设置后果(手机恢复出厂设置还能找回数据吗)

    手机恢复出厂设置后果(手机恢复出厂设置还能找回数据吗)

  • 为什么qq音乐会自动暂停(为什么qq音乐会员到期了我还是会员)

    为什么qq音乐会自动暂停(为什么qq音乐会员到期了我还是会员)

  • 通话黑屏怎么关闭(通话黑屏怎么关闭OPPO)

    通话黑屏怎么关闭(通话黑屏怎么关闭OPPO)

  • 为什么我的iPhone没有照片流(为什么我的iphone打王者没有声音)

    为什么我的iPhone没有照片流(为什么我的iphone打王者没有声音)

  • qq新闻怎么关闭(怎么关闭qq的新闻推送)

    qq新闻怎么关闭(怎么关闭qq的新闻推送)

  • airpods只能连苹果吗(airpods只能连苹果耳机吗)

    airpods只能连苹果吗(airpods只能连苹果耳机吗)

  • 滴滴出行怎么解除实名认证(滴滴出行怎么解绑银行卡)

    滴滴出行怎么解除实名认证(滴滴出行怎么解绑银行卡)

  • 华为授权体验店可以贴膜吗(华为授权体验店可以免费贴膜吗)

    华为授权体验店可以贴膜吗(华为授权体验店可以免费贴膜吗)

  • 局域网的硬件组成有什么(局域网的硬件组成有什么或其他智能设备网卡及电缆等)

    局域网的硬件组成有什么(局域网的硬件组成有什么或其他智能设备网卡及电缆等)

  • airpods刻了字还能退吗(airpods刻了字还能退货吗)

    airpods刻了字还能退吗(airpods刻了字还能退货吗)

  • 为什么苹果手机不能认证(为什么苹果手机发烫严重)

    为什么苹果手机不能认证(为什么苹果手机发烫严重)

  • 怎么用数据下载超过150m(怎么用数据下载视频)

    怎么用数据下载超过150m(怎么用数据下载视频)

  • 短信回收站在哪(苹果手机短信回收站在哪)

    短信回收站在哪(苹果手机短信回收站在哪)

  • ppt视频怎么旋转90度

    ppt视频怎么旋转90度

  • Win7系统中,如何关闭Windows默认的防火墙?(Win7系统中如何快速查询文件内容)

    Win7系统中,如何关闭Windows默认的防火墙?(Win7系统中如何快速查询文件内容)

  • ipssvc.exe - ipssvc是什么进程 有什么作用

    ipssvc.exe - ipssvc是什么进程 有什么作用

  • 【前端修炼场】 — 这些标签你学会了么?快速拿下 “hr”(web前端修炼之道)

    【前端修炼场】 — 这些标签你学会了么?快速拿下 “hr”(web前端修炼之道)

  • 【YOLOv7】Python基于YOLOv7的人员跌倒检测系统(源码&部署教程&数据集)(python yolo)

    【YOLOv7】Python基于YOLOv7的人员跌倒检测系统(源码&部署教程&数据集)(python yolo)

  • 印花税申报是含税收入还是不含税收入
  • 坏账准备转回的条件
  • 国税地税电子钥匙价格
  • 公司买手表可以抵扣吗
  • 年终奖是否列入社保基数
  • 一般纳税人企业所得税政策最新2023税率
  • 持有待售固定资产按照账面价值与可收回金额
  • 收到建设方工程款怎么办
  • 股权转让的溢价要交什么税
  • 非独立核算的分公司是法人主体吗
  • 房地产开发企业应交税费科目
  • 小规模纳税人减免增值税会计处理
  • 支付土地出让金怎样做账
  • 汽修厂纳税多少
  • 发票冲红还需要作废吗
  • 无偿取得票据的持票人不享有追索权
  • 记账错误是什么意思
  • 淘宝无票采购账务处理
  • 安全生产费用包含哪些
  • 已认证发票退货怎么办
  • 保税区内的货物交易
  • 利润表里的其他业务利润怎么形成的
  • 发行股票的承销商佣金分录
  • 企业分红需要缴纳什么税
  • 苹果13promax哪个颜色最贵
  • 微信收款会计分录,然后提现有手续费
  • 信息技术费用如何做分录
  • 暂估入库入库单范本
  • 如何让游戏速度加快
  • PHP:spl_object_hash()的用法_spl函数
  • php -i
  • nginx加php
  • 公司开发新产品或购买许可证最快的方法是
  • js前端路由
  • 清除命令窗口所有内容用()命令,清除变量用()命令
  • create命令属于什么语句
  • 往来款项清查账务处理
  • 定额发票新旧版区别
  • linux 静态链接
  • 进项税加计抵减是什么意思
  • 怎样合理的运用网络
  • 小规模企业所得税优惠政策最新2022
  • wordpress部署到github
  • 公司注册后一直没有申报
  • 营业总成本包括投资收益吗
  • 所得税费用影响企业营业利润吗
  • 申报表本期金额和上期金额
  • 主办会计的工作内容和职责
  • 会计记错账有什么后果
  • 三包适用范围
  • 一般纳税人金税盘分录
  • 不抵扣的进项发票需要在电子税务局操作么
  • 公司赠送客户礼品怎么做账
  • 购进货物用于集体福利会计分录
  • 投资款项是什么意思
  • 农民工工资专用账户管理制度的办法
  • 公司给公司的工会拨款
  • 待摊费用属于流动负债吗
  • win8如何调整电脑屏幕亮度
  • linux 软件 安装
  • win7系统玩游戏好吗
  • centos源码安装软件
  • encore是什么软件
  • 一岁的宝宝可以喝枸杞水吗
  • linux系统怎么访问网页
  • 在linux操作系统中,/etc/rc.d/init.d
  • opengl多级采样消除锯齿有什么用
  • jquery animation
  • js原型面试题
  • jquery自定义组件
  • matlab中sort函数的作用
  • android studio downloading
  • python的垃圾处理机制
  • python 获取uuid
  • 日历 caldav
  • 贵阳网上办税服务厅
  • 企业招用退役士兵
  • 蜀山区税务局工资待遇
  • 宝马535车船税
  • 联通前面加什么可以隐藏号码
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设