简介

腾讯位置服务为微信小程序提供了基础的标点能力、线和圆的绘制接口等地图组件和位置展示、地图选点等地图API位置服务能力支持,使得开发者可以自由地实现自己的微信小程序产品。 在此基础上,腾讯位置服务微信小程序JavaScript SDK是专为小程序开发者提供的LBS数据服务工具包,可以在小程序中调用腾讯位置服务的POI检索、关键词输入提示、地址解析、逆地址解析、行政区划和距离计算等数据服务,让你的小程序更强大!

Hello world!

1. 申请开发者密钥(key):申请密钥

2. 下载微信小程序JavaScriptSDK,微信小程序JavaScriptSDK v1.0

3. 安全域名设置,需要在微信公众平台添加域名地址https://apis.map.qq.com

4. 小程序示例

01.// 引入SDK核心类
02.var QQMapWX = require('../../libs/qqmap-wx-jssdk.js');
03.var qqmapsdk;
04.Page({
05. 
06.onLoad: function () {
07.// 实例化API核心类
08.qqmapsdk = new QQMapWX({
09.key: '申请的key'
10.});
11.},
12.onShow: function () {
13.// 调用接口
14.qqmapsdk.search({
15.keyword: '酒店',
16.success: function (res) {
17.console.log(res);
18.},
19.fail: function (res) {
20.console.log(res);
21.},
22.complete: function (res) {
23.console.log(res);
24.}
25.});
26. 
27. 
28.})

使用限制

为了保证我们的服务稳定,我们对每个key的每个服务接口的调用量做了如下限制:

  • 日调用量:1万次 / Key

  • 并发数:5次 / key / 秒 。

超过日调用量和并发数的开发者,可通过以下途径解决:
     1. 对于多频次的相同请求,可通过缓存结果,并定时访问更新的方式,减少对在线服务调用的依赖;
     2. 对于切实需要大配额来满足应用需求的,请根据[配额申请模板](模板是邮件正文格式,请勿发送附件),编辑邮件发送至:mapapi@vip.qq.com;mapbd@tencent.com, 我们将对您的申请进行评估,并进行审批(3个工作日内),审批通过后将会获得您申请的配额。

QQMapWX

小程序JavaScriptSDK核心类

构造函数 说明
new QQMapWX(options:Object) 参数: key : 必填,开发密钥(key),申请地址 http://lbs.qq.com/mykey.html
方法 返回值 说明
search(options:Object) none 地点搜索,搜索周边poi,比如:“酒店” “餐饮” “娱乐” “学校” 等等
getSuggestion(options:Object) none 用于获取输入关键字的补完与提示,帮助用户快速输入
reverseGeocoder(options:Object) none 提供由坐标到坐标所在位置的文字描述的转换。输入坐标返回地理位置信息和附近poi列表
geocoder(options:Object) none 提供由地址描述到所述位置坐标的转换,与逆地址解析的过程正好相反
getCityList() none 获取全国城市列表数据
getDistrictByCityId(options:Object) none 通过城市ID返回城市下的区县
calculateDistance(options:Object) none 计算一个点到多点的步行、驾车距离

方法options参数通用属性

options中可以指定success, fail, complete来接收接口调用结果,调用结果状态码见下一个表《调用结果状态码》,具体结果数据见方法详细描述页面《返回值》说明。

属性 类型 必填 说明
success Function 接口调用成功的回调函数
fail Function 接口调用失败的回调函数
complete Function 接口调用结束的回调函数(调用成功、失败都会执行)

调用结果状态码

status message
0 正常
310 请求参数信息有误
311 key格式错误
306 请求有护持信息请检查字符串
110 请求来源未被授权
1000 小程序内部抛出的错误

示例

01.// 引入SDK核心类
02.var QQMapWX = require('xxx/qqmap-wx.js');
03. 
04.// 实例划API核心类
05.var demo = new QQMapWX({
06.key: '开发密钥(key)' // 必填
07.});
08. 
09.// 调用接口
10.demo.search({
11.keyword: '酒店',
12.success: function(res) {
13.console.log(res.status, res.message);
14.},
15.fail: function(res) {
16.console.log(res.status, res.message);
17.},
18.complete: function(res) {
19.console.log(res.status, res.message);
20.}
21.});

search(options:Object)

地点搜索,搜索周边poi,比如:“酒店” “餐饮” “娱乐” “学校” 等等

options属性说明

属性 类型 必填 说明
keyword String POI搜索关键字
location String|Object 位置坐标,String格式:lat<纬度>,lng<经度>
Object格式:
{
  latitude: 纬度,
  longitude: 经度
}
默认是当前位置
address_format String 短地址,缺省时返回长地址,可选值:'short'
page_size Number 每页条目数,最大限制为20条, 默认值10
page_index Number 第x页,默认第1页

调用结果

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

名称 类型 必有 说明
status number 状态码,0为正常,
310请求参数信息有误,
311key格式错误,
306请求有护持信息请检查字符串,
110请求来源未被授权
message string 状态说明
count number 本次搜索结果总数
data array 搜索结果POI数组,每项为一个POI对象
id string POI唯一标识
title string poi名称
address string 地址
tel string 电话
category string POI分类
type number POI类型,值说明:0:普通POI / 1:公交车站 / 2:地铁站 / 3:公交线路 / 4:行政区划
location object 坐标
lat number 纬度
lng number 经度
ad_info object 行政区划信息,目前仅提供adcode
adcode string 行政区划代码
boundary array - 轮廓,坐标数组,面积较大的POI会有,如住宅小区
pano object - 该POI的街景最佳查看场景及视角信息
id string 街景场景ID,若有pano信息,则id一定存在
heading number - 最佳偏航角(与正北方向夹角,街景相关知识请 点击查看)
pitch number - 俯仰角
zoom number - 缩放级别

示例

01.// 引入SDK核心类
02.var QQMapWX = require('xxx/qqmap-wx.js');
03. 
04.// 实例划API核心类
05.var demo = new QQMapWX({
06.key: '开发密钥(key)' // 必填
07.});
08. 
09.// 调用接口
10.demo.search({
11.keyword: '酒店',
12.success: function(res) {
13.console.log(res);
14.},
15.fail: function(res) {
16.console.log(res);
17.},
18.complete: function(res) {
19.console.log(res);
20.}
21.});

关键词输入提示

getSuggestion(options:Object)

用于获取输入关键字的补完与提示,帮助用户快速输入

options属性说明

属性 类型 必填 说明
keyword String 用户输入的关键词(希望获取后续提示的关键词)
region String 设置城市名,限制关键词所示的地域范围,如,仅获取“广州市”范围内的提示内容,默认值全国
region_fix Number 取值: 0:[默认]当前城市无结果时,自动扩大范围到全国匹配 1:固定在当前城市
policy Number 检索策略,目前支持:
policy=0:默认,常规策略 
policy=1:本策略主要用于收货地址、上门服务地址的填写, 
提高了小区类、商务楼宇、大学等分类的排序,过滤行政区、
道路等分类(如海淀大街、朝阳区等),排序策略引入真实用户对输入提示的点击热度,
使之更为符合此类应用场景,体验更为舒适

调用结果

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

名称 类型 必有 说明
status number 状态码,0为正常,
310请求参数信息有误,
311key格式错误,
306请求有护持信息请检查字符串,
110请求来源未被授权
message string 状态说明
count number 结果总数
data array 提示词数组,每项为一个POI对象
id string POI唯一标识
title string 提示文字
address string 地址
province string
city string
adcode string 行政区划代码
type number POI类型,值说明:0:普通POI / 1:公交车站 / 2:地铁站 / 3:公交线路 / 4:行政区划
location object 提示所述位置坐标
lat number 纬度
lng number 经度

示例

01.// 引入SDK核心类
02.var QQMapWX = require('xxx/qqmap-wx.js');
03. 
04.// 实例划API核心类
05.var demo = new QQMapWX({
06.key: '开发密钥(key)' // 必填
07.});
08. 
09.// 调用接口
10.demo.getSuggestion({
11.keyword: '技术',
12.success: function(res) {
13.console.log(res);
14.},
15.fail: function(res) {
16.console.log(res);
17.},
18.complete: function(res) {
19.console.log(res);
20.}
21.});

逆地址解析(坐标位置描述)

reverseGeocoder(options:Object)

用于获取输入关键字的补完与提示,帮助用户快速输入

options属性说明

属性 类型 必填 说明
location String|Object 位置坐标,String格式:lat<纬度>,lng<经度>
Object格式:
{
  latitude: 纬度,
  longitude: 经度
}
默认是当前位置
coord_type Number 输入的locations的坐标类型,可选值为[1,6]之间的整数,每个数字代表的类型说明: 
1 GPS坐标
2 sogou经纬度
3 baidu经纬度
4 mapbar经纬度
5 [默认]腾讯、google、高德坐标
6 sogou墨卡托
get_poi Number 是否返回周边POI列表:
1.返回;0不返回(默认)
poi_options String 用于控制Poi列表:
1 poi_options=address_format=short
返回短地址,缺省时返回长地址
2 poi_options=radius=5000
半径,取值范围 1-5000(米)
3 poi_options=page_size=20
每页条数,取值范围 1-20
4 poi_options=page_index=1
页码,取值范围 1-20
5 poi_options=policy=1/2/3
控制返回场景,
policy=1[默认] 以地标+主要的路+近距离poi为主,着力描述当前位置;
policy=2 到家场景:筛选合适收货的poi,并会细化收货地址,精确到楼栋;
policy=3 出行场景:过滤掉车辆不易到达的POI(如一些景区内POI),增加道路出路口、交叉口、大区域出入口类POI,排序会根据真实API大用户的用户点击自动优化。
6 poi_options=category=分类词1,分类词2, 
指定分类,多关键词英文逗号分隔;
poi_filter=category<>分类词1,分类词2, 
指定不包含分类,多关键词英文逗号分隔 
(支持类别参见:附录)

调用结果

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

名称 类型 必有 说明
status number 状态码,0为正常,
310请求参数信息有误,
311key格式错误,
306请求有护持信息请检查字符串,
110请求来源未被授权
message string 状态说明
result object 逆地址解析结果
address string 地址描述
formatted_addresses object 位置描述
recommend string 经过腾讯地图优化过的描述方式,更具人性化特点
rough string 大致位置,可用于对位置的粗略描述
address_component object 地址部件,address不满足需求时可自行拼接
nation string 国家
province string
city string
district string 区,可能为空字串
street string 街道,可能为空字串
street_number string 门牌,可能为空字串
ad_info object 行政区划信息
adcode string 行政区划代码
name string 行政区划名称
location object 行政区划中心点坐标
lat number 纬度
lng number 经度
nation string 国家
province string 省 / 直辖市
city string 市 / 地级区 及同级行政区划
district string 区 / 县级市 及同级行政区划
address_reference object 坐标相对位置参考
famous_area object 知名区域,如商圈或人们普遍认为有较高知名度的区域
title string 名称/标题
location object 坐标
lat number 纬度
lng number 经度
_distance number 此参考位置到输入坐标的直线距离
_dir_desc string 此参考位置到输入坐标的方位关系,如:北、南、内
town object 乡镇街道
title string 名称/标题
location objct 坐标
lat number 纬度
lng number 经度
_distance number 此参考位置到输入坐标的直线距离
_dir_desc string 此参考位置到输入坐标的方位关系,如:北、南、内
landmark_l1 object 一级地标,可识别性较强、规模较大的地点、小区等
【注】对象结构同 famous_area
landmark_l2 object 二级地标,较一级地标更为精确,规模更小
【注】:对象结构同 famous_area
street object 街道    【注】:对象结构同 famous_area
street_number object 门牌    【注】:对象结构同 famous_area
crossroad object 交叉路口    【注】:对象结构同 famous_area
water object 水系    【注】:对象结构同 famous_area
pois array POI数组,对象中每个子项为一个POI对象
id string POI唯一标识
title string poi名称
address string 地址
category string POI分类
location object 提示所述位置坐标
lat number 纬度
lng number 经度
_distance number 该POI到逆地址解析传入的坐标的直线距离

示例

01.// 引入SDK核心类
02.var QQMapWX = require('xxx/qqmap-wx.js');
03. 
04.// 实例划API核心类
05.var demo = new QQMapWX({
06.key: '开发密钥(key)' // 必填
07.});
08. 
09.// 调用接口
10.demo.reverseGeocoder({
11.location: {
12.latitude: 39.984060,
13.longitude: 116.307520
14.},
15.success: function(res) {
16.console.log(res);
17.},
18.fail: function(res) {
19.console.log(res);
20.},
21.complete: function(res) {
22.console.log(res);
23.}
24.});

地址解析(地址转坐标)

geocoder(options:Object)

提供由地址描述到所述位置坐标的转换,与逆地址解析reverseGeocoder()的过程正好相反。

options属性说明

属性 类型 必填 说明
address String 地址(注:地址中请包含城市名称,否则会影响解析效果),如:'北京市海淀区彩和坊路海淀西大街74号'

调用结果

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

名称 类型 必有 说明
status number 状态码,0为正常,
310请求参数信息有误,
311key格式错误,
306请求有护持信息请检查字符串,
110请求来源未被授权
message string 状态说明
result object 地址解析结果
location string 解析到的坐标
lat number 纬度
lng number 经度
address_components object 解析后的地址部件
province string
city string
district string 区,可能为空字串
street string 街道,可能为空字串
street_number string 门牌,可能为空字串
similarity number 查询字符串与查询结果的文本相似度
deviation number 误差距离,单位:米, 该值取决于输入地址的精确度;
如address输入:海淀区北四环西路,因为地址所述范围比较大,因此会有千米级误差;
而如:银科大厦这类具体的地址,返回的坐标就会相对精确;
该值为 -1 时,说明输入地址为过于模糊,仅能精确到市区级。
reliability number 可信度参考:值范围 1 低可信 - 10 高可信
我们根据用户输入地址的准确程度,在解析过程中,将解析结果的可信度(质量),由低到高,分为1 - 10级,该值>=7时,解析结果较为准确,<7时,会存各类不可靠因素,开发者可根据自己的实际使用场景,对于解析质量的实际要求,进行参考。

示例

01.// 引入SDK核心类
02.var QQMapWX = require('xxx/qqmap-wx.js');
03. 
04.// 实例划API核心类
05.var demo = new QQMapWX({
06.key: '开发密钥(key)' // 必填
07.});
08. 
09.// 调用接口
10.demo.geocoder({
11.address: '北京市海淀区彩和坊路海淀西大街74号',
12.success: function(res) {
13.console.log(res);
14.},
15.fail: function(res) {
16.console.log(res);
17.},
18.complete: function(res) {
19.console.log(res);
20.}
21.});

距离计算

calculateDistance(options:Object)

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

options属性说明

属性 类型 必填 说明
mode String 可选值:'driving'(驾车)、'walking'(步行),默认:'walking'
from String|Object 起点坐标,String格式:lat<纬度>,lng<经度>
Object格式:
{
  latitude: 纬度,
  longitude: 经度
}
默认是当前位置
to String|Object 终点坐标,String格式:lat,lng;lat,lng... (经度与纬度用英文逗号分隔,坐标间用英文分号分隔)
Object格式1:
[{
  latitude: 纬度,
  longitude: 经度
}, ...]
Object格式2:
此格式主要对应search返回的数据结构格式,方便开发这批量转换
[{
  location: {
    lat: 纬度,
    lng: 经度
  }
}, ...]

调用结果

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

名称 类型 说明 示例
status number 状态码,0为正常,
310请求参数信息有误,
311key格式错误,
306请求有护持信息请检查字符串,
110请求来源未被授权
{
    "status": 0,
    "message": "Query is OK",
    "result":{
        "elements":[
            {
               "from":{
               "lat":39.071510 
               "lng":117.190091 
                 }
                "to":{
               "lat":39.840177,
                "lng":116.463318 
                 }
               "distance":2000 
               "duration":2000 
             } 
        ] 
      } 
message string 对status的描述
result object 计算结果
elements array 结果数组
from object 起点坐标
lat number 纬度
lng number 经度
to object 终点坐标
lat number 纬度
lng number 经度
distance number 起点到终点的距离,单位:米,
如果radius半径过小或者无法搜索到,则返回-1
duration number 表示从起点到终点的结合路况的时间,秒为单位 
注:步行方式不计算耗时,该值始终为0

示例

01.// 引入SDK核心类
02.var QQMapWX = require('xxx/qqmap-wx.js');
03. 
04.// 实例划API核心类
05.var demo = new QQMapWX({
06.key: '开发密钥(key)' // 必填
07.});
08. 
09.// 调用接口
10.demo.calculateDistance({
11.to:[{
12.latitude: 39.984060,
13.longitude: 116.307520
14.}, {
15.latitude: 39.984572,
16.longitude: 116.306339
17.}],
18.success: function(res) {
19.console.log(res);
20.},
21.fail: function(res) {
22.console.log(res);
23.},
24.complete: function(res) {
25.console.log(res);
26.}
27.});

获取城市列表

getCityList(options:Object)

获取全国城市列表数据。

options属性说明

调用结果

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

名称 类型 必有 说明
status number 状态码,0为正常,
310请求参数信息有误,
311key格式错误,
306请求有护持信息请检查字符串,
110请求来源未被授权
message string 状态说明
result array 结果数组,第0项,代表一级行政区划,第1项代表二级行政区划,以此类推;使用getchildren接口时,仅为指定父级行政区划的子级
id number 行政区划唯一标识
name string - 简称,如“内蒙古”
fullname string 全称,如“内蒙古自治区”
location string 中心点坐标
lat number 纬度
lng number 经度
pinyin array - 行政区划拼音,每一下标为一个字的全拼,如:["nei","meng","gu"]
cidx array - 子级行政区划在下级数组中的下标位置

示例

// 引入SDK核心类
var QQMapWX = require('xxx/qqmap-wx.js');// 实例划API核心类
var demo = new QQMapWX({key: '开发密钥(key)' // 必填
});// 调用接口
demo.getCityList({success: function(res) {console.log(res);},fail: function(res) {console.log(res);},complete: function(res) {console.log(res);}
});

获取城市区县

getDistrictByCityId(options:Object)

通过城市ID返回城市下的区县。

options属性说明

属性 类型 必填 说明
id String 对应接口getCityList返回数据的Id,如:北京是'110000'

调用结果

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

名称 类型 必有 说明
status number 状态码,0为正常,
310请求参数信息有误,
311key格式错误,
306请求有护持信息请检查字符串,
110请求来源未被授权
message string 状态说明
result array 结果数组,第0项,代表一级行政区划,第1项代表二级行政区划,以此类推;使用getchildren接口时,仅为指定父级行政区划的子级
id number 行政区划唯一标识
name string - 简称,如“内蒙古”
fullname string 全称,如“内蒙古自治区”
location string 中心点坐标
lat number 纬度
lng number 经度
pinyin array - 行政区划拼音,每一下标为一个字的全拼,如:["nei","meng","gu"]
cidx array - 子级行政区划在下级数组中的下标位置

示例

01.// 引入SDK核心类
02.var QQMapWX = require('xxx/qqmap-wx.js');
03. 
04.// 实例划API核心类
05.var demo = new QQMapWX({
06.key: '开发密钥(key)' // 必填
07.});
08. 
09.// 调用接口
10.demo.getDistrictByCityId({
11.id: '110000'// 对应城市ID
12.success: function(res) {
13.console.log(res);
14.},
15.fail: function(res) {
16.console.log(res);
17.},
18.complete: function(res) {
19.console.log(res);
20.}
21.});

腾讯地图微信小程序JavaScript SDK相关推荐

  1. 微信小程序腾讯服务器地址要购买吗,微信小程序JavaScript SDK

    reverseGeocoder(options:Object) 本接口提供由坐标到坐标所在位置的文字描述的转换,输入坐标返回地理位置信息和附近poi列表. 注:坐标系采用gcj02坐标系 option ...

  2. api 定位 微信小程序 精度_微信小程序JavaScript SDK

    提供路线规划能力. 1. 驾车(driving):支持结合实时路况.少收费.不走高速等多种偏好,精准预估到达时间(ETA): 2. 步行(walking):基于步行路线规划. 3. 骑行(bicycl ...

  3. 浅谈对腾讯云微信小程序解决方案服务端的理解(主要针对信道服务)

    浅谈对腾讯云微信小程序解决方案服务端的理解(主要针对信道服务) 参考文章: (1)浅谈对腾讯云微信小程序解决方案服务端的理解(主要针对信道服务) (2)https://www.cnblogs.com/ ...

  4. python操作微信小程序云端数据库_微信小程序·云开发云数据库的基本使用-微信小程序云开发实例-腾讯云微信小程序...

    微信小程序·云开发云数据库的基本使用-微信小程序云开发实例-腾讯云微信小程序 浏览量:1120 时间:2020-04-06

  5. 引用百度地图微信小程序JS API模块

    1.原理 前百度和高德周边查询api的实现机制基本一致,都是使用request接口请求远程https接口,然后返回参数中位置的某种类型的周边信息,最后再把数据动态绑定到页面. 2. js 引入模块 在 ...

  6. uniapp使用高德地图微信小程序SDK生成地图轨迹

    一文看懂微信小程序生成地图轨迹 一.开发准备 1.下载微信小程序SDK 2.高德控制台申请相关平台key 二.html页面展示地图标签 三.引入sdk及定义数据 四.相关方法(静态生成两个点之间的轨迹 ...

  7. 使用高德地图微信小程序SDK开发案例-输入提示(附源码)

    闲来无事写一篇使用高德地图的微信小程序SDK开发应用的实例. 接下来先看需求: 我们要做的是,根据用户输入的关键词,给出相应的提示信息,列表中显示地方的名称,地方的详细地址以及对应的经纬度坐标. 当然 ...

  8. 高德地图微信小程序SDK x.fail is not a function ‘x.fail‘ is undefined

    报错情况 一个旧小程序项目, 微信小程序报错监控到, 项目引用的高德小程序插件SDK报错: 开始嘀咕: 前面的SB, 为毛小程序路径规划功能要用高德SDK. 懒得换,懒得查业务,先去高德官网看下: h ...

  9. 微信小程序-JavaScript 3DES对称加密算法加密使用

    一.前言: 1. 最近又被领导叫去谈话,公司最近有个二维码模块项目要开发,要求使用微信小程序,说是方面和快捷,不用安装手机APP.o(╥﹏╥)o真是无语,老子在公司的职位是Windwos 开发,现在他 ...

最新文章

  1. raptor五个数排序流程图_数据结构与算法(一):排序(上)
  2. maven 插件在线安装
  3. C++实现插值查找(附完整源码)
  4. 深度学习(三)之LSTM写诗
  5. 【毕业前夕,畅谈科研】一个清华土著的科研感想
  6. 关于javascript中apply()和call()方法
  7. 日月如梭,玩转JavaScript日期
  8. EntityFramework 元数据 设计分析
  9. 大数据调度工具之Oozie
  10. 手撸CAPL(二)——OSEK网络管理N个节点建环机制(包含节点建环/丢失/跳过等)代码自取
  11. 电脑win+R小知识
  12. 云打码实现验证码识别
  13. H5小游戏《看你有多色》扩展(辅助、眼力)
  14. java switch是什么意思_java switch语句详解
  15. ANSYS APDL中的ASEL面选择命令
  16. 在Windows中添加右键菜单选项及快捷键(转)
  17. python双样本t检验_SPSS详细操作 两个样本均数比较的t检验
  18. 微信小程序上传图片至服务器Springboot接收格式的问题
  19. STM32f103+protues仿真(一) 点亮led
  20. Android君子剑之ScrollView之君子好逑

热门文章

  1. 分布式事务(6)-分布式事务处理技术之RocketMQ
  2. 分布式计算、云计算与大数据
  3. 从最新的技术趋势看前端的未来
  4. 关于打印机打印网页出现字迹显示不全的问题心得
  5. Python xls文件和xlsx文件格式互相转换
  6. 200行Go代码实现自己的区块链——区块生成与网络通信
  7. 环信客服SDK接入-----(一)
  8. 【随笔记】我与Java的故事
  9. cpc和ocpc,如果你是运营,你选哪个?
  10. matlab响应曲面设计,响应曲面法与设计