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

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 隐私接口,见配置环境

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

上一篇

地址解析

下一篇

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