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)

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

名称 类型 必填 说明
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配额及使用限制

这篇文章对您解决问题是否有帮助?

已解决
未解决