微信小程序 知道商家的具体地址但不知道经纬度 如何通过自身的位置 再通过距离的远近接单?
认定了 就要好好的珍惜对待,人生不容辜负,你必须要更加努力 。加油 骚年。
微信小程序 知道商家的具体地址但不知道经纬度 如何通过自身的位置 再通过距离的远近接单?
话不多说 按步骤来就完事了
第一步 : 先创建Key :在腾讯地图API官网 登录进去后 在 控制台-> 应用管理-> 我的应用 创建Key
地址:https://lbs.qq.com/dev/console/application/mine
如下填写
第二步 下载 腾讯地图 微信小程序JavaScript SDK
地址:https://lbs.qq.com/miniProgram/jsSdk/jsSdkGuide/jsSdkOverview`
下载完后放入 项目 文件里面 这是我的
../../../lib/wxParse/qqmap-wx-jssdk
具体的看你放在哪
第三步 写代码 具体如下
后台会把 数据返回给你 是一个 list 具体如下 这是其中一项的数据 下面遍历这个list
遍历这个数组
res.orderEntityList.list.forEach((resList, index) => {// 把位置信息转为经纬度// 引入SDK核心类var QQMapWX = require('../../../lib/wxParse/qqmap-wx-jssdk'); // 引入刚才下载的SDk// 实例化API核心类var qqmapsdk = new QQMapWX({key: '4YDBZ-XQC6D-VRA4S-HJSOY-GN4G7-OQBJD' // 必填 填写 第一步申请的Key});//调用地址解析接口qqmapsdk.geocoder({//获取表单传入地址address: resList.address, //地址参数,例如 address: '北京市海淀区彩和坊路海淀西大街74号'success: function (resCak) {//成功后的回调console.log(resCak);var staff = wx.getStorageSync("localObj") // 用户端的地址 就是起点地址var staffLocal = JSON.parse(staff)// 用户端的地址 就是起点地址// 计算距离qqmapsdk.calculateDistance({mode: 'driving',//可选值:'driving'(驾车)、'walking'(步行),不填默认:'walking',可不填 ,straight直线//from参数不填默认当前地址//是当前地址 刚进入小程序 获取当前地址 并且保存在本地//获取表单提交的经纬度并设置from和to参数(示例为string格式)from: {latitude: staffLocal.latitude,longitude: staffLocal.longitude,},//若起点有数据则采用起点坐标,若为空默认当前地址to: [{latitude: resCak.result.location.lat,longitude: resCak.result.location.lng}], //终点坐标success: function (resJuLi) {//成功后的回调// console.log(resJuLi);//计算成功后 因为需要是千米所以转一下 for (var i = 0; i < resJuLi.result.elements.length; i++) {resList.distance = (resJuLi.result.elements[i].distance / 1000).toFixed(2);}//又因为 业务需求是 按接单距离 远近排序 所以这里处理下function sortId(a, b) {return a.distance - b.distance;//由低到高//return b.distance - a.distance;//由高到低}// 下面是具体的业务逻辑 就是上拉加载下一页 然后再进行从新排序if (index + 1 == res.orderEntityList.list.length) {const newList = [...that.data.orderList, ...res.orderEntityList.list]let changList = []for (let k = 0; k < newList.length; k++) {console.log(newList[k].distance)console.log(res.sysConfig.paramValue)if (Number(newList[k].distance) <= Number(res.sysConfig.paramValue)) {console.log(newList[k])changList.push(newList[k])}}changList.sort(sortId);that.setData({orderList: changList})// 这里是最后处理好的数据 console.log(that.data.orderList)}setTimeout(() => {wx.hideLoading();}, 500)},fail: function (error) {console.error(error);},});//根据地址解析在地图上标记解析地址位置},fail: function (error) {console.error(error);},})})
上面处理完了 效果图是这样
后台 说是没法获取经纬度 所以只能前端通过地址 逆向解析该地址 最后进行计算
如有不足之处请指出来 或联系邮箱 yuyong1663519276@163.com 谢谢
微信小程序 知道商家的具体地址但不知道经纬度 如何通过自身的位置 再通过距离的远近接单?相关推荐
- 微信小程序如何在地图选择地址并返回经纬度
微信小程序如何在地图选择地址并返回经纬度 微信小程序的地址管理中,经常需要获取地址的详细地址信息和地址经纬度信息 实现效果: var that = thiswx.chooseLocation({suc ...
- 微信小程序|area组件使用的地址数据文件plus
area组件使用的地址数据文件 前言 1.解析json的地址转换为area.js的格式 2.转换格式的java代码 3.运行结果截图示意 前言 实战篇内容参考: 1.腾讯的全球地址数据文件及Xml-& ...
- 微信小程序——获取视频的URL地址【已解决】
微信小程序--获取视频的URL地址[已解决] 如何获取音乐MV的URL地址 虾米音乐 试了很多音乐网站发现"虾米音乐"的MV的URL地址是可以获取的,并且在微信小程序播放视频的时候 ...
- QQ公众号,微信公众号,微信小程序,商家主页,商家APP
前文说明,没打广告,涉及侵权请联系,立即修改或删除 前文说明,没打广告,涉及侵权请联系,立即修改或删除 前文说明,没打广告,涉及侵权请联系,立即修改或删除 仅仅用了两天的小程序,感觉-.怎么说呢,请往 ...
- 微信小程序获取用户收货地址 完整代码
微信小程序开发交流qq群 173683895 承接微信小程序开发.扫码加微信. 获取用户收货地址需要用户点击授权,所以有两种情况,确认授权.取消授权. 情况一,用户第一次访问用户地址授权,并 ...
- 在微信小程序里自动获得当前手机所在的经纬度并转换成地址
效果:我在手机上打开微信小程序,自动显示出我当前所在的地理位置: 具体步骤: 1. 使用微信jssdk提供的getLocation API拿到经纬度: 2. 调用高德地图的api使用经纬度去换取地址的 ...
- 微信小程序根据坐标点解析地址常见报错:请求来源未被授权
功能需求 微信小程序提供的接口能够获取到当前位置的坐标(经纬度),但是不能得到当前位置的地址.或者从后台获取到坐标(经纬度)要解析成文字描述的地址小程序也没有对应的接口. 实现思路 这时候就需要通过腾 ...
- php地址选择插件,微信小程序中关于三级联动地址选择器的实例分享
本文介绍了微信小程序三级联动地址选择器的实例代码,分享给大家,有需要的可以一起了解一下 在一些电商类的小程序中,地址选择这个功能一般是必备的,一般的收货信息都需要有一个能选择省市县的控件,当然也有些人 ...
- 5分钟快速了解微信小程序如何获取收货地址,耶稣也拦不住,我说的!!!
写在前面 最近在学习一个微信小程序的项目,其中涉及了获取收货地址的部分,我将其总结了下,希望能给大家带来些许帮助~ 步骤分析 绑定点击事件 调用wx.chooseAddress获取用户的收货地址 利用 ...
最新文章
- 创建WINCE6.0设备的DLL工程
- 计数信号量的获取与释放
- android studio常用适配器,从ListView(Android Studio)的自定义适配器中的U...
- Android 时间轴
- 可以储存照片的字段类型是_sql server 中 哪个字段类型可以储存图象?
- GdiPlus[47]: IGPMatrix 矩阵(二)
- 无心剑2022年七绝83首
- oracle中的sysdba角色,oracle 以sysdba角色 登陆用户
- vivo z5和z5x有什么区别
- 数据分析之Pandas(一) 学习资料汇总
- 高级模电、数电实验室成套设备
- .NET解析BT种子,获取InfoHash
- Modifier源码总结
- ARM Mali-V VPU视频处理单元介绍 V61 V550 V500
- Oracle Golden Gate 系列七 -- 配置 GG Manager process
- BGP协议学习笔记——BGP基础
- SCAU华南农业大学-数电实验-用74LS283实现2*4乘法器
- mac 在调度中心关闭软件
- linux音乐服务器mpd,OpenWRT中使用mpd作为音频Server及其使用
- python可视化 Task04 文字图例尽眉目