百度地图开放平台
更新时间: 2026/10/12 16:11
逆地址解析
简介

reverseGeocoding 即逆向地理编码,把经纬度解析为详细的地址描述、语义化位置描述、所在商圈以及周边高权重 POI,用于快速回答"我在哪"。不传 location 时解析当前定位点。

v2.0 起该方法由 regeocoding 规范化为 reverseGeocoding。旧方法名 regeocoding 仍保留为兼容别名,参数与返回值完全一致,建议新代码使用新名称。
请求参数
参数类型必填默认值说明

location

String

否

当前定位点

待解析的"纬度,经度",如 39.915,116.404

coordtype

String

否

gcj02ll

输入坐标类型,默认与小程序坐标系一致

radius

Number

否

1000

周边 POI 检索半径,单位米

extensions_poi

Number

否

1

是否返回周边 POI:0 不返回,1 返回

extensions_road

Boolean

否

false

是否返回周边道路

extensions_town

Boolean

否

false

是否返回乡镇街道信息

language

String

否

zh-CN

返回语言

language_auto

Number

否

0

是否自动填充省市区等行政区划名称:0 不填充,1 填充

output

String

否

json

返回格式

iconPath

String

否

—

小程序 marker 图标路径

iconTapPath

String

否

—

小程序 marker 点击后的图标路径

width

Number

否

30

marker 宽度,新版基础库必填,未传时取默认值

height

Number

否

30

marker 高度,新版基础库必填,未传时取默认值

alpha

Number

否

1

marker 透明度

success

Function

否

—

解析成功回调

fail

Function

否

—

解析失败回调

其余参数与Geocoding API 逆地址解析请求参数一致,会原样透传。

返回值

success 回调入参:

字段类型说明

wxMarkerData

Array

小程序格式的 marker 数组,元素结构见下表

originalData

Object

Geocoding API 返回的完整原始数据,周边 POI、道路等在此读取

wxMarkerData 数组元素字段:

字段类型说明

id

Number

marker 序号,固定为 0

latitude

Number

纬度(gcj02)

longitude

Number

经度(gcj02)

address

String

完整地址(对应原始字段 formatted_address)

desc

String

语义化位置描述(对应 sematic_description),如"天安门附近"

business

String

所在商圈

返回的 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 -->
<map
style="width: 100%; height: 300px;"
longitude="{{longitude}}"
latitude="{{latitude}}"
scale="16"
show-location
markers="{{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"逆地址解析"的运行界面,扫描下方小程序码即可直接体验。Demo 是产品化示例,界面比上面的示例代码精致,但调用方式与返回数据完全一致。

注意事项
  • location 的顺序是"纬度,经度";天气接口与静态图是"经度,纬度",两者相反,容易写错,对照表见"服务介绍 → 坐标系说明"。

  • 周边 POI 只在 originalData.result.pois 中返回,wxMarkerData 只包含解析出的中心点。

  • 把 extensions_poi 设为 0 可减小响应体积,只需要地址文本时推荐这样做。

  • 未显式传 location 时会调用 wx.getLocation,请先在 app.json 中声明 getLocation 隐私接口,见配置环境。

  • 如需反向能力(地址转坐标),请使用"地址解析"。

上一篇

地址解析

下一篇

天气查询
本篇文章对您是否有帮助?