reverseGeocoder(options:Object)
本接口提供由坐标到坐标所在位置的文字描述的转换,输入坐标返回地理位置信息和附近poi列表。
注:坐标系采用gcj02坐标系
options属性说明
属性
类型
必填
说明
location
StringIObject
否
位置坐标,①String格式:lat,lng(例:location: ‘39.984060,116.307520’)②Object格式:{ latitude: 纬度, longitude: 经度}(例:location: { latitude: 39.984060, longitude: 116.307520})默认是当前位置
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=policy=1/2/3控制返回场景,policy=1[默认] 以地标+主要的路+近距离poi为主,着力描述当前位置;policy=2 到家场景:筛选合适收货的poi,并会细化收货地址,精确到楼栋;policy=3 出行场景:过滤掉车辆不易到达的POI(如一些景区内POI),增加道路出路口、交叉口、大区域出入口类POI,排序会根据真实API大用户的用户点击自动优化。
sig
String
否
签名校验开启WebServiceAPI签名校验的必传参数,只需要传入生成的SK字符串即可,不需要进行MD5加密操作该参数适用于 jssdkv1.2
调用结果
通过属性success, fail, complete的回调参数来接收调用结果
success的回调参数可以有2个,第1个参数接收调用结果,第2个参数控制返回处理后的数据(非必须参数),示例:success:function(res,data)
名称
类型
必填
说明
status
number
是
状态码,0为正常,310请求参数信息有误,311Key格式错误,306请求有护持信息请检查字符串,110请求来源未被授权
message
string
是
状态说明,即对状态码status进行说明,如:status为0,message为"query ok",为正常,status为310,message为"请求参数信息有误",status为311,message为"key格式错误",status为306,message为"请求有护持信息请检查字符串",status为110,message为"请求来源未被授权"
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
object
坐标
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对象,返回的POI数量及页数可通过请求参数poi_options设置
id
string
POI唯一标识
title
string
poi名称
address
string
地址
category
string
POI分类
location
object
提示所述位置坐标
id
string
POI唯一标识
lat
number
纬度
lng
number
经度
_distance
number
该POI到逆地址解析传入的坐标的直线距离
示例
WXML 模板文件中添加组件:
markers="{{markers}}"
style="width:100%;height:300px;"
longitude="{{poi.longitude}}"
latitude="{{poi.latitude}}" scale='16' show-location>
逆地址解析
当前位置为:{{markers[0].title}}
Javascript 关键代码片段:
// 引入SDK核心类
var QQMapWX = require('xxx/qqmap-wx.js');
// 实例化API核心类
var qqmapsdk = new QQMapWX({
key: '开发密钥(key)' // 必填
});
//在Page({})中使用下列代码
//触发表单提交事件,调用接口
formSubmit(e) {
var _this = this;
qqmapsdk.reverseGeocoder({
//位置坐标,默认获取当前位置,非必须参数
/**
*
//Object格式
location: {
latitude: 39.984060,
longitude: 116.307520
},
*/
/**
*
//String格式
location: '39.984060,116.307520',
*/
location: e.detail.value.reverseGeo || '', //获取表单传入的位置坐标,不填默认当前位置,示例为string格式
//get_poi: 1, //是否返回周边POI列表:1.返回;0不返回(默认),非必须参数
success: function(res){//成功后的回调
console.log(res);
var res = res.result;
var mks = [];
/**
* 当get_poi为1时,检索当前位置或者location周边poi数据并在地图显示,可根据需求是否使用
*
for (var i = 0; i < result.pois.length; i++) {
mks.push({ // 获取返回结果,放到mks数组中
title: result.pois[i].title,
id: result.pois[i].id,
latitude: result.pois[i].location.lat,
longitude: result.pois[i].location.lng,
iconPath: './resources/placeholder.png', //图标路径
width: 20,
height: 20
})
}
*
**/
//当get_poi为0时或者为不填默认值时,检索目标位置,按需使用
mks.push({ // 获取返回结果,放到mks数组中
title: res.address,
id: 0,
latitude: res.location.lat,
longitude: res.location.lng,
iconPath: './resources/placeholder.png',//图标路径
width: 20,
height: 20,
callout: { //在markers上展示地址名称,根据需求是否需要
content: res.address,
color: '#000',
display: 'ALWAYS'
}
});
_this.setData({ //设置markers属性和地图位置poi,将结果在地图展示
markers: mks,
poi: {
latitude: res.location.lat,
longitude: res.location.lng
}
});
},
fail: function(error){
console.error(error);
},
complete: function(res){
console.log(res);
}
})
}
接口调用说明
reverseGeocoder(options:Object)方法调用接口服务如下:
/ws/geocoder/v1 逆地址解析(位置描述)
超过日调用量和并发数的开发者,可通过以下途径解决:
1.对于多频次的相同请求,可通过缓存结果,并定时访问更新的方式,减少对在线服务调用的依赖;
2.企业开发者的配额高于个人开发者,申请企业认证后,需要在控制台->配额申请中免费申请你需要的配额。
我们将对您的申请进行评估并进行审批(3个工作日内),审批通过后将会获得您申请的配额。
3.对于切实需要大配额来满足应用需求的,请在控制台->配额管理中提交购买配额申请,我们的商务会与您取得联系。