声明

bug: 页面脚的步行、骑行、驾车区域在真机测试是会出现不显示问题?

造成原因:在小程序map组件的同一区域,map组件的视图层比普通的文本视图层要高,所以在真机会遮挡!

解决办法:将该文本视图采用cover-view,放在map中。

感谢: 感谢Lrj_estranged指出问题!

效果图

进入页面直接定位到当前位置,输入目的地!

返回首页查看路线规划—选择驾车、步行、骑行

原理

采用微信小程序的map组件;

采用高德地图的 微信小程序SDK获取规划路线的坐标点。

WXML

驾车

步行

骑行

{{distance}}米

{{duration}}分钟

JS

var amapFile = require('../../src/js/amap-wx.js');

Page({

data: {

key: 'c290b7e016c85e8f279b2f80018c6fbf',

show: false,

currentLo : null,

currentLa : null,

newCurrentLo : null,

newCurrentLa : null,

distance : 0,

duration : 0,

markers : null,

scale: 16,

polyline: null,

statusType: 'car',

includePoints:[]

},

onLoad(){

var _this = this;

wx.getLocation({

success(res){

_this.setData({

currentLo: res.longitude,

currentLa: res.latitude,

includePoints: [{

longitude: res.longitude,

latitude: res.latitude

}],

markers: [{

id: 0,

longitude: res.longitude,

latitude: res.latitude,

title: res.address,

iconPath: '../../src/images/navi_s.png',

width: 32,

height: 32

}]

});

}

})

},

getAddress(e){

var _this = this;

wx.chooseLocation({

success(res){

var markers = _this.data.markers;

markers.push({

id: 0,

longitude: res.longitude,

latitude: res.latitude,

title: res.address,

iconPath: '../../src/images/navi_e.png',

width: 32,

height: 32

});

var points = _this.data.includePoints;

points.push({

longitude: res.longitude,

latitude: res.latitude

});

_this.setData({

newCurrentLo: res.longitude,

newCurrentLa: res.latitude,

includePoints: points,

markers: markers,

show:true

});

_this.getPolyline(_this.data.statusType);

}

});

},

drawPolyline(self,color){

return {

origin: this.data.currentLo + ',' + this.data.currentLa,

destination: this.data.newCurrentLo + ',' + this.data.newCurrentLa,

success(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])

})

}

}

}

self.setData({

distance: data.paths[0].distance,

duration: parseInt(data.paths[0].duration/60),

polyline: [{

points: points,

color: color,

width: 6,

arrowLine: true

}]

});

}

}

},

getPolyline(_type){

var amap = new amapFile.AMapWX({ key: this.data.key });

var self = this;

switch (_type){

case 'car':

amap.getDrivingRoute(this.drawPolyline(this,"#0091ff"));

break;

case 'walk':

amap.getWalkingRoute(this.drawPolyline(this, "#1afa29"));

break;

case 'ride':

amap.getRidingRoute(this.drawPolyline(this, "#1296db"));

break;

default:

return false;

}

},

goTo(e){

var _type = e.currentTarget.dataset.type;

this.setData({statusType : _type});

this.getPolyline(_type);

}

})

WXSS

.tui-map-search{

width: 100%;

height: 80rpx;

position: fixed;

top: 0;

left: 0;

z-index: 1000000;

box-sizing: border-box;

padding: 5rpx 10px;

background-color: #fff;

line-height: 70rpx;

}

.tui-map-input{

height: 70rpx;

line-height: 70rpx;

font-size: 30rpx;

margin-left: 25px;

}

.tui-map-search-icon{

position: absolute;

top: calc(50% - 10px);

left: 10px;

}

.tui-map{

width: 100%;

height: calc(100% - 80rpx);

position: fixed;

bottom: 0;

left: 0;

}

.tui-map-direction{

width: 32px;

height: 32px;

position: fixed;

right: 10px;

bottom: 80px;

z-index: 100000;

}

.page-group{

display: table;

width: 100%;

table-layout: fixed;

background-color: #fff;

}

.page-nav-list{

padding:20rpx 0 ;

font-size: 30rpx;

display: table-cell;

text-align: center;

width: 100%;

color: #222;

}

.page-nav-list.active{color:blue;}

.tui-warn{

height: 50px;

line-height: 50px;

padding-left: 10px;

color: lightseagreen;

font-size: 30rpx;

}

.tui-search-bottom{

height: 150px;

background: #fff;

width: 100%;

position: fixed;

bottom: 0;

left: 0;

z-index: 1000;

}

注意

在实例化 AMapWX 对象前,必须引入amap-wx.js,amap-wx.js下载;

驾车、步行、骑行这三个类型返回的数据类似,所以直接采用drawPolyline方法进行数据处理,而公交返回的数据和他们相差太大,所以下一章另行讲解;

wx.chooseLocation() API返回搜索坐标需要时间,如果在还未完成搜索定位前确定,会返回之前的定位位置。

其他

高德地图小程序步行路线显示_微信小程序----map路线规划相关推荐

  1. 高德地图小程序步行路线显示_微信小程序 高德地图路线规划实现过程详解

    前言 最近项目中做到相关网约车小程序.需要使用到地图中的路线规划,对3种地图进行了分析.这里稍微做一下总结: 百度地图 百度坐标 (BD-09) 腾讯地图 火星坐标(GCJ-02) 高德地图 火星坐标 ...

  2. 高德地图小程序步行路线显示_微信小程序之:小程序接入高德地图SDK

    前言 最近在捣腾小程序,想开发一个自己的小程序,过一把独立开发的瘾. 自己设计,自己搞数据,自己找图标,自己决定要或者不要什么功能,完全跟着心走,目前体验下来,感觉还是蛮爽的.比在公司产品要你做什么你 ...

  3. python天气查询小程序加背景图_微信小程序开发背景图显示功能

    这两天开发微信小程序,在设置背景图片时,发现在wxss里面设置background-image:(url) 属性,不管是开发工具还是线上都无法显示.经过查资料发现,background-image只能 ...

  4. 小程序全局悬浮窗_微信小程序悬浮窗弹出怎么实现?

    微信小程序悬浮窗弹出怎么实现?很多的微信小程序管理员会在微信小程序界面开发微信小程序悬浮窗弹出功能,接下来小编会为大家介绍微信小程序悬浮窗弹出关注实现的全部步骤哦. 微信小程序悬浮窗弹出怎么实现? 微 ...

  5. 小程序商店刷榜_微信小程序游戏跳一跳刷榜原理解析!

    最近微信出了一个"跳一跳"的小游戏,这个游戏其实在之前有手机端版本,无奈微信借助强大的用户把这游戏又拿起来弄火了,而且通过最新版的微信可以看出,微信已经开始重视小程序的入口释放了, ...

  6. 微信小程序存在的风险_微信小程序开发技术风险存在,如何规避是重点

    微信小程序开发技术风险存在,如何规避是重点 微信小程序自上线以来已经历经三年的时间,不断推陈出新,推展业务,如今已形成了一定规模和影响力,线上购物.在线点餐.预订服务.便捷出行.小游戏等多种多样的小程 ...

  7. 微信小程序存在的风险_微信小程序存在哪些风险

    微信小程序存在哪些风险?之前一直在给大家爱关于微信小程序的各种好处,但是它其实也是存在一定的风险的,今天小编就来给大家讲一下微信小程序都存在哪些风险. 由于微信主程序会通过 JS 接口向小程序暴露规定 ...

  8. 微信小程序超级占内存_微信小程序占用内存小,用户再也不用担心内存不足问题了...

    内存占用小,微信小程序,让用户再也不用担心小程序不足内存问题了,时下,一站式支持常用APP(手机应用软件)的微信小程序受到市民青睐. 微信小程序,是一种不需要下载安装即可使用的应用,它实现了应用&qu ...

  9. 小程序商店刷榜_微信小程序怎么通过“硬广”“软广”来运营引流?运营干货...

    随着互联网的飞速发展,如今微信小程序已经成为家喻户晓的一款应用了,生活中随处可见的微信小程序成为了许多人日常生活中必不可少的应用.那么对于小程序商家来说营销策划方案显得格外重要,如果想要引入更多流量用 ...

最新文章

  1. android 启动服务权限,android – 当我尝试启动服务时权限被拒绝
  2. 使用Nginx搭建简单的音视频直播平台RTMP协议
  3. Android属性动画 ViewPropertyAnimator
  4. HTML5+CSS3构建同页面表单间的动画切换
  5. opencv物品定位_如何使用OpenCV实现基于标记的定位
  6. ArcGIS10.1之crossdomain文件
  7. Unicode和UTF-8之间的转换详解
  8. optuna 自动化调参利器
  9. excel模板 基金账本_专项基金拨款记录EXCEL图表
  10. 黑马程序员—-C语言入门十重奏之十renascence
  11. lol12.11服务器维护,英雄联盟11.1版本更新维护公告 装备调整新赛季开始
  12. [计算机网络]计算机网络发展历程,osi7层模型,报文交换
  13. Python入门进阶:68 个 Python 内置函数详解
  14. Android中,长度单位详解(dp、sp、px、in、pt、mm)具体解释与换算(1)
  15. python图像倾斜校正_校正倾斜的文本
  16. java获取微信token_Java微信公众平台开发(六)--微信开发中的token获取
  17. idea的tools下面没有deployment选项
  18. 一只猴子和那些超神的脚本......
  19. 那些年,我们画过的圣诞树
  20. linux服务器如何测试网速

热门文章

  1. USACO Monthly Expense
  2. Android手机拍照APP闪退问题及应对措施
  3. 在vue中二级页面返回一级页面
  4. 模板式表单与响应式表单关系
  5. 看完后,你将离成功不远了...让我们一起奋斗吧!【转】
  6. python程序运行时间计时
  7. 服务被人当肉鸡了,叫一路赚钱 xig
  8. 嫁给我是你一生的赌注,我怎么舍得让你输
  9. 迅雷向链享云售让部分区块链业务:包括链克与链克商城
  10. R和R-Studio安装