reverseGeocoding 即逆向地理编码,把经纬度解析为详细的地址描述、语义化位置描述、所在商圈以及周边高权重 POI,用于快速回答"我在哪"。不传 location 时解析当前定位点。
其余参数与Geocoding API 逆地址解析请求参数一致,会原样透传。
success 回调入参:
wxMarkerData 数组元素字段:
返回的 marker 元素会原样透传调用方传入的样式字段(iconPath / iconTapPath / width / height / alpha),因此可直接绑定到 小程序 map 组件 的 markers 属性。
失败时走 fail 回调,入参统一为 { errMsg, message, statusCode, rawMessage },字段含义见"服务介绍 → 统一的回调约定"。
解析当前定位点,并支持点击地图任意位置重新解析:
// pages/index/index.js// 引用百度地图微信小程序 JSAPI 模块const { BMapWX } = require('../../libs/bmap-wx.min.js');const bmap = new BMapWX({ ak: '您的ak' });Page({data: {latitude: '',longitude: '',markers: [],rgcData: null,pois: [],error: '',},onLoad() {this.resolve(); // 不传 location 时解析当前定位点},// 点击地图任意位置,解析该点地址onMapTap(e) {const { latitude, longitude } = e.detail;this.resolve(latitude + ',' + longitude);},// location 为空时走当前定位,否则解析指定坐标resolve(location) {bmap.reverseGeocoding({location,iconPath: '../../img/marker_red.png',iconTapPath: '../../img/marker_red.png',success: (res) => {const m = res.wxMarkerData[0];const detail = res.originalData.result || {};this.setData({markers: res.wxMarkerData,latitude: m.latitude,longitude: m.longitude,rgcData: {address: m.address,desc: m.desc || '暂无',business: m.business || '暂无',},// 周边高权重 POI 只在原始数据里,wxMarkerData 只有中心点pois: (detail.pois || []).slice(0, 5),error: '',});},fail: err => this.setData({ error: '逆地址解析失败:' + (err.message || err.errMsg) }),});},});
<!-- pages/index/index.wxml --><mapstyle="width: 100%; height: 300px;"longitude="{{longitude}}"latitude="{{latitude}}"scale="16"show-locationmarkers="{{markers}}"bindtap="onMapTap"/><view wx:if="{{rgcData}}"><text>地址:{{rgcData.address}}</text><text>描述:{{rgcData.desc}}</text><text>商圈:{{rgcData.business}}</text></view><view wx:for="{{pois}}" wx:key="index"><text>{{item.name}}</text><text>{{item.distance}}m</text></view><view wx:if="{{error}}">{{error}}</view>
下图为官方 Demo"逆地址解析"的运行界面,扫描下方小程序码即可直接体验。Demo 是产品化示例,界面比上面的示例代码精致,但调用方式与返回数据完全一致。


location 的顺序是"纬度,经度";天气接口与静态图是"经度,纬度",两者相反,容易写错,对照表见"服务介绍 → 坐标系说明"。
周边 POI 只在 originalData.result.pois 中返回,wxMarkerData 只包含解析出的中心点。
把 extensions_poi 设为 0 可减小响应体积,只需要地址文本时推荐这样做。
未显式传 location 时会调用 wx.getLocation,请先在 app.json 中声明 getLocation 隐私接口,见配置环境。
如需反向能力(地址转坐标),请使用"地址解析"。
上一篇
下一篇