微信小程序地图导航功能实现完整源代码附效果图(推荐)
更新时间:2019年04月28日 16:52:24 作者:a_靖
这篇文章主要介绍了微信小程序地图导航功能实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
正文:
一:需求及效果图展示
从后端API获取到起始地和目的地的经纬度坐标与地名。用户点击起始地便打开地图展示坐标的附近街景,路线,或者打开外部地图。
二:源代码
<block wx:for="{{data_2}}" wx:key='index' wx:if="{{data_2.length}}"> <view style='margin-left:10rpx;'>订单号: {{item.order_num}}</view> <view class='page_row'> <view class='centent'> <view style='margin-left:10rpx;' wx:if='{{item.server_info.linkman}}'>下单人: {{item.server_info.linkman}} <text style='color:#999;margin-left:40rpx;font-size:32rpx;' wx:if='{{item.server_info.tel}}'>联系电话: {{item.server_info.tel}}</text> </view> <view style='color:#999;margin-top:15rpx;' wx:if='{{item.car_info.title}}'> <view style='color:#999;margin-left:10rpx;font-size:28rpx' bindtap='apen_add'data-name='{{item.server_info.address}}' data-latitude_siji='{{item.server_info.coordinate_start}}'><image style='width:32rpx;height:32rpx' src='../../image/location.png'/> 导航至起始地:{{item.server_info.address}} </view> </view> <view style='color:#999;margin-top:15rpx;' wx:if='{{item.car_info.title}}'> <view style='color:#999;margin-left:10rpx;font-size:28rpx' bindtap='apen_add' data-name='{{item.server_info.address_end_text}}' data-longitude_siji='{{item.server_info.coordinate_end}}'><image style='width:32rpx;height:32rpx' src='/image/location.png'/> 导航至目的地: {{item.server_info.address_end_text}} </view> </view> <view style='color:#999;margin-top:15rpx;' wx:if='{{item.car_info.title}}'> <view style='color:#999;margin-left:10rpx;font-size:28rpx'> 分配时间:{{item.time_tired}}</view> </view> </view> </view> <view class='xxx'></view> </block>
apen_add: function (e) { var that = this var latitude, longitude var name = e.currentTarget.dataset.name if (e.currentTarget.dataset.latitude_siji) { var latitude_siji = e.currentTarget.dataset.latitude_siji.split(',') latitude = Number(latitude_siji[0]) longitude = Number(latitude_siji[1]) } if (e.currentTarget.dataset.longitude_siji) { var longitude_siji = e.currentTarget.dataset.longitude_siji.split(',') latitude = Number(longitude_siji[0]) longitude = Number(longitude_siji[1]) } wx.getSetting({ success: (res) => { if (res.authSetting['scope.userLocation'] != undefined && res.authSetting['scope.userLocation'] != true) { wx.showModal({ title: '是否授权当前位置', content: '需要获取您的地理位置,请确认授权,否则地图定位功能将无法使用', success: function (res) { if (res.cancel) { console.info("1授权失败返回数据"); } else if (res.confirm) { //village_LBS(that); wx.openSetting({ success: function (data) { if (data.authSetting["scope.userLocation"] == true) { wx.showToast({ title: '授权成功', icon: 'success', duration: 5000 }) wx.openLocation({ latitude: latitude, longitude: longitude, name: name, scale: 28 }) } else { wx.showToast({ title: '授权失败', icon: 'success', duration: 5000 }) } } }) } } }) } else { wx.openLocation({ latitude: latitude, longitude: longitude, name: name, scale: 28 }) } } }) },
数据请求
show_data: function () { var that = this; if (wx.getStorageSync('register') != '司机') { var data = { openid: app._openid, program_id: app.jtappid, only_num: app._openid, online_code: wx.getStorageSync('online_code') } var url = '/pg.php/CarTrailer/roder_list'; util.request(url, 'get', data, '正在加载', function (res) { res.data.reverse() for (var i = 0; i < res.data.length; i++) { res.data[i].time_xd = util.js_date_time(res.data[i].time_xd) switch (res.data[i].state) { case '1': that.setData({ data_1: that.data.data_1.concat(res.data[i]), }) break; case '2': that.setData({ data_2: that.data.data_2.concat(res.data[i]), }) break; case '3': that.setData({ data_3: that.data.data_3.concat(res.data[i]), }) break; case '4': that.setData({ data_4: that.data.data_4.concat(res.data[i]), }) break; } } }) } else { var data = { openid: app._openid, program_id: app.jtappid, online_code: wx.getStorageSync('online_code') } var url = '/pg.php/CarTrailer/driver_order_list'; util.request(url, 'get', data, '正在加载', function (res) { for (var i = 0; i < res.data.length; i++) { res.data[i].time_tired = util.js_date_time(res.data[i].time_tired) } res.data.reverse() that.setData({ siji: true }) for (var i = 0; i < res.data.length; i++) { switch (res.data[i].state) { case '1': that.setData({ data_1: that.data.data_1.concat(res.data[i]), }) break; case '2': that.setData({ data_2: that.data.data_2.concat(res.data[i]), }) break; case '3': that.setData({ data_3: that.data.data_3.concat(res.data[i]), }) break; case '4': that.setData({ data_4: that.data.data_4.concat(res.data[i]), }) break; } } }) } },
以上所述是小编给大家介绍的微信小程序地图导航功能实现详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
相关文章
vue模块导入报错问题Module not found: Error:[CaseSensi
这篇文章主要介绍了vue模块导入报错问题Module not found: Error:[CaseSensitivePathsPlugin],具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2023-06-06vue-element-admin 登陆及目录权限控制的实现
本文主要介绍了vue-element-admin 登陆及目录权限控制的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2022-04-04Element树形控件整合带图标的下拉菜单(tree+dropdown+input)
Element UI 官网提供的树形控件包含基础的、可选择的、自定义节点内容的、带节点过滤的以及可拖拽节点的树形结构,本文实现了树形控件整合带图标的下拉菜单,感兴趣的可以了解一下2021-07-07
最新评论