AI 地图
产品服务
解决方案
文档与支持
定价
更新时间: 2026/07/27 10:37
您当前查看的是 JSAPI 3.0 历史版本文档。该版本仅用于维护现有项目,不建议用于新项目开发。新项目请使用 JSAPI 4.0,如需升级现有项目,请参考升级指南
You are viewing the legacy JSAPI 3.0 documentation. This version is maintained for existing projects only and is not recommended for new development. For new projects, use the JSAPI 4.0 documentation. If you are upgrading an existing project, please refer to the Migration Guide.
简介

地址解析服务提供从地址转换到经纬度的服务,反之,逆地址解析则提供从经纬度坐标转换到地址的转换功能。

DEMO详情
地址解析
逆地址解析
提供的转换类
  • Geocoder:逆/地址解析,用于坐标与地址间的相互转换。详情见类参考

地址解析服务
  • 根据地址描述获得坐标信息。

百度地图API提供Geocoder类进行地址解析,您可以通过Geocoder.getPoint()方法来将一段地址描述转换为一个坐标。
如下示例,我们将地址“北京市海淀区上地10街10号”转换获取该位置的地理经纬度坐标,并在这个位置上添加一个标注。注意:在调用Geocoder.getPoint()方法时您需要提供地址解析所在的城市(本例为“北京市”)。

var map = new BMap.Map("l-map");
map.centerAndZoom(new BMap.Point(116.404,39.915),11);
// 创建地址解析器实例
var myGeo = new BMap.Geocoder();
// 将地址解析结果显示在地图上,并调整地图视野
myGeo.getPoint("北京市海淀区上地10街10号", function(point) {
if (point) {
map.centerAndZoom(point,16);
map.addOverlay(new BMap.Marker(point));
}
}, "北京市");
逆地址解析服务
  • 根据坐标点获得该地点的地址描述,是地址解析的逆向转换。

您可以通过Geocoder.getLocation()方法获得地址描述。当解析工作完成后,您提供的回调函数将会被触发。如果解析成功,则回调函数的参数为GeocoderResult对象,否则为null。
在构造Geocoder对象时,可以增加参数{extensions_town: true}来获得乡镇级数据,仅限国内。

1. 指定经纬度获取地址
var map = new BMap.Map("l-map");
map.centerAndZoom(new BMap.Point(116.404,39.915), 11);
// 创建地理编码实例, 并配置参数获取乡镇级数据
var myGeo = new BMap.Geocoder({ extensions_town: true });
// 根据坐标得到地址描述
myGeo.getLocation(new BMap.Point(116.364,39.993), function(result) {
if (result) {
alert(result.address);
}
});
2. 鼠标点击地图获取地址
var map = new BMap.Map("allmap");
var point = new BMap.Point(116.331398, 39.897445);
map.centerAndZoom(point, 12);
var geoc = new BMap.Geocoder();
map.addEventListener("click", function(e) {
var pt = e.point;
geoc.getLocation(pt, function(rs) {
var addComp = rs.addressComponents;
alert(addComp.province + ", " + addComp.city + ", " + addComp.district + ", " + addComp.street + ", " + addComp.streetNumber);
});
});

上一篇

检索POI

下一篇

出行路线规划
本篇文章对您是否有帮助?