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 模板文件中添加组件:
<!--地图容器-->
<!--longitude及latitude为设置为调转到指定坐标位置,默认不显示-->
<map id="myMap"
markers="{{markers}}"
style="width:100%;height:300px;"
longitude="{{poi.longitude}}"
latitude="{{poi.latitude}}" scale='16' show-location>
</map>
<!--form表单-->
<form bindsubmit="formSubmit">
<!--地址输入框,例:39.984060,116.307520-->
<input style="border:1px solid #000;" name="reverseGeo"></input>
<!--提交表单按钮-->
<button form-type="submit">逆地址解析</button>
</form>
<view>当前位置为:{{markers[0].title}}</view>
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 逆地址解析(位置描述)
注:微信小程序JavaScript SDK通过对腾讯位置服务WebServiceAPI接口进行封装而形成,因此和直接调用WebSerivceAPI的限制是等同的,
具体可参考:腾讯位置服务WebServiceAPI配额及使用限制
这篇文章对您解决问题是否有帮助?
已解决
未解决