当前位置: 首页 > news >正文

腾讯位置商业授权微信小程序距离计算

微信小程序JavaScript SDK 距离计算

产品通知
由于 /ws/distance/v1 接口已逐步下线,后续不再进行维护,建议您通过WebService API接口的距离矩阵实现相关需求,接入方法请参考微信小程序中使用服务API

calculateDistance(options:Object)

        计算一个点到多点的步行、驾车距离。

        注:坐标系采用gcj02坐标系

options属性说明

属性类型必填说明
modeString可选值:‘driving’(驾车)、‘walking’(步行),默认:'walking’
新增直线距离计算,‘straight’(直线)直线距离计算适用于 jssdkv1.1 jssdkv1.2
fromStringIObject位置坐标,
①String格式:lat<纬度>,lng<经度>(例:from: ‘39.984060,116.307520’)
②Object格式:
{
  latitude: 纬度,
  longitude: 经度
}
(例:from: {
latitude: 39.984060,
longitude: 116.307520
})
默认是当前位置
toStringIObject终点坐标,
①String格式:lat,lng;lat,lng… (经度与纬度用英文逗号分隔,坐标间用英文分号分隔)
(例:to: ‘39.984060,116.307520;39.984060,116.507520’)
②Object格式1:
[{
  latitude: 纬度,
  longitude: 经度
}, …]
(例:to:[{
  latitude:39.984060,
  longitude:116.307520
},…])
③Objec格式2:
此格式主要对应search返回的数据结构格式,方便开发这批量转换
[{
location: {
  lat: 纬度,
  lng: 经度
}
}, …]
(例:to:[{
location:{
  lat:39.984060,
  lng:116.307520
}
},…])
sigString签名校验
开启WebServiceAPI签名校验的必传参数,只需要传入生成的SK字符串即可,不需要进行MD5加密操作
该参数适用于 jssdkv1.1 jssdkv1.2

调用结果

        通过属性success, fail, complete的回调参数来接收调用结果

        success的回调参数可以有2个,第1个参数接收调用结果,第2个参数控制返回处理后的数据(非必须参数),示例:success:function(res,data)

        该属性适用于 jssdkv1.1 jssdkv1.2

名称类型说明
statusnumber状态码,0为正常,
310请求参数信息有误,
311Key格式错误,
306请求有护持信息请检查字符串,
110请求来源未被授权
messagestring状态说明,即对状态码status进行说明,
如:
status为0,message为"query ok",为正常,
status为310,message为"请求参数信息有误",
status为311,message为"key格式错误",
status为306,message为"请求有护持信息请检查字符串",
status为110,message为"请求来源未被授权"
resultobject计算结果
elementsarray结果数组
fromobject起点坐标
latnumber纬度
lngnumber经度
toobject终点坐标
latnumber纬度
lngnumber经度
distancenumber起点到终点的距离,单位:米,
如果radius半径过小或者无法搜索到,则返回-1
durationnumber表示从起点到终点的结合路况的时间,秒为单位
注:步行方式不计算耗时,该值始终为0

示例

WXML 模板文件中添加map组件,并绑定markers数据:

<!--form表单-->
<form bindsubmit="formSubmit"><!--输入起点和终点经纬度坐标,格式为string格式--><label>起点坐标:<input style="border:1px solid #000;" name="start"></input></label><!--多个终点位置示例:39.984060,116.307520;39.984060,116.507520--><label>终点坐标:<input style="border:1px solid #000;" name="dest"></input></label><!--提交表单数据--><button form-type="submit">计算距离</button>
</form>
<!--渲染起点经纬度到终点经纬度距离,单位为米-->
<view wx:for="{{distance}}" wx:key="index"><view>起点到终点{{index+1}}的步行距离为{{item}}米</view>
</view>

Javascript 关键代码片段:

// 引入SDK核心类
var QQMapWX = require('xxx/qqmap-wx.js');// 实例化API核心类
var qqmapsdk = new QQMapWX({key: '开发密钥(key)' // 必填
});//在Page({})中使用下列代码
Page({data: {distance: [],},//事件触发,调用接口formSubmit(e){var _this = this;//调用距离计算接口qqmapsdk.calculateDistance({//mode: 'driving',//可选值:'driving'(驾车)、'walking'(步行),不填默认:'walking',可不填//from参数不填默认当前地址//获取表单提交的经纬度并设置from和to参数(示例为string格式)from: e.detail.value.start || '', //若起点有数据则采用起点坐标,若为空默认当前地址to: e.detail.value.dest, //终点坐标success: function(res) {//成功后的回调console.log(res);var res = res.result;var dis = [];for (var i = 0; i < res.elements.length; i++) {dis.push(res.elements[i].distance); //将返回数据存入dis数组,}_this.setData({ //设置并更新distance数据distance: dis});},fail: function(error) {console.error(error);},complete: function(res) {console.log(res);}});}
})

接口调用说明

    calculateDistance(options:Object)方法调用接口服务如下:

  • /ws/distance/v1 距离计算:步行
  • /ws/distance/v1 距离计算:驾车

注:微信小程序JavaScript SDK通过对腾讯位置服务WebServiceAPI接口进行封装而形成,因此和直接调用WebSerivceAPI的限制是等同的,
具体可参考:腾讯位置服务WebServiceAPI配额及使用限制

资料来源:

腾讯位置商业授权微信小程序距离计算-腾讯地图代理商

http://www.dtcms.com/a/356369.html

相关文章:

  • OpenAI GPT-realtime 实时语音 API 完整指南:2025年语音AI的革命性突破
  • STM32的RTC模块及其应用场景
  • MTK Linux DRM分析(二十三)- MTK mtk_drm_crtc.c(Part2)
  • 嵌入式Linux驱动开发 - GPIO LED驱动
  • 税务岗位能力提升培训课程推荐
  • 嵌入式Linux驱动开发:定时器驱动
  • 解析DB-GPT项目中三个 get_all_model_instances 方法的区别
  • 【WebRTC】从入门到忘记
  • 解密 Vue 3 shallowRef:浅层响应式 vs 深度响应式的性能对决
  • 园区智慧水电管理系统:让能源管理从“成本黑洞”变“利润引擎”
  • 【GM3568JHF】FPGA+ARM异构开发板 使用指南:以太网
  • nginx 怎么将 https 请求转为 http
  • AR巡检系统:数字化传统工作流程SOP的第一步
  • //Q是一个队列,S是一个空栈,实现将队列中的元素逆置的算法。
  • 从零开始学习单片机17
  • 医疗AI时代的生物医学Go编程:高性能计算与精准医疗的案例分析(五)
  • AR智能眼镜:能源行业运维的数字化革新
  • iOS 文件管理与 uni-app 性能优化实战 多工具协作的完整指南
  • Frida-dexdump 使用指南:从内存中脱取安卓 Dex 文件
  • Go对接全球期货数据源指南:基于StockTV API实现多品种实时监控
  • LeetCode第二题知识点2 ---- 栈、堆、地址
  • 不止 ChatGPT:多模态 AI(文本 + 图像 + 音频)正重构内容创作全流程
  • 数据质检之springboot通过yarn调用spark作业实现数据质量检测
  • 第三章 Vue3 + Three.js 实战:用 OrbitControls 实现相机交互与 3D 立方体展示
  • Unity学习----【数据持久化】二进制存储(一)
  • ExcelJS实现导入转换HTML展示(附源码可直接使用)
  • Excel数组学习笔记
  • 在Excel和WPS表格中隔一行插入多个空白行
  • 网络编程 04:TCP连接,客户端与服务器的区别,实现 TCP 聊天及文件上传,Tomcat 的简单使用
  • 从零开始部署 Kubernetes Dashboard:可视化管理你的集群