百度地图开放平台
更新时间: 2026/09/08 10:03
室内地图
下载开发文档
室内地图简介

自 v4.0 版本起,百度地图 Android SDK 正式上线室内地图功能,帮助开发者为用户提供更完整的地理位置服务体验。室内地图数据与百度地图 App 同步更新,支持的公共建筑包括购物商场、机场和火车站等交通枢纽,以及医院等。截至 2020 年 6 月,已覆盖全国约 5000 余个大型购物中心,覆盖的建筑类型和城市仍在持续增加。
本章节将对显示室内图、获取室内图信息、切换楼层、室内 POI 检索、室内路线规划等功能做进一步说明。

显示室内地图

开启室内地图后,当地图可见区域内包含室内地图覆盖的建筑(如王府井等知名商场),且地图缩放到一定级别时,即可直接在地图上看到精细的室内地图效果。室内图最大支持 22 级缩放。
打开室内图的代码如下:

mBaiduMap.setIndoorEnable(true); // 打开室内图,默认为关闭状态

显示效果如图:

室内图
注意:
1. 路况图和城市热力图的最大缩放级别为 21 级,卫星图的最大缩放级别为 20 级。因此当室内地图放大到 22 级时,即使打开路况图、卫星图或城市热力图,也不会有相应数据显示。
2. 室内图默认为关闭状态,需调用 setIndoorEnable(true) 开启。
获取室内图信息及切换楼层

如需对室内图进行更多操作,例如获取室内图信息、切换楼层,可以按以下方式实现:

设置监听器,监听进入和移出室内图
mBaiduMap.setOnBaseIndoorMapListener(new BaiduMap.OnBaseIndoorMapListener() {
@Override
public void onBaseIndoorMapMode(boolean on, MapBaseIndoorMapInfo mapBaseIndoorMapInfo) {
if (on) {
// 进入室内图
// 通过回调参数 mapBaseIndoorMapInfo 可获取室内图信息,
// 包含楼层信息、室内图 ID 等
} else {
// 移出室内图
}
}
});
切换楼层,展示不同楼层的室内图
// 切换楼层
// strID 通过 mapBaseIndoorMapInfo.getID() 方法获得
SwitchFloorError switchFloorError = mBaiduMap.switchBaseIndoorMapFloor(strFloor, strID);

上面代码中,strFloor 表示目标楼层,格式为 “F1”(地上一层)、“B1”(地下一层);strID 表示室内图 ID。返回值 switchFloorError 用于标识楼层切换的结果,取值如下:

SwitchFloorError.SWITCH_OK: // 切换成功
SwitchFloorError.FLOOR_INFO_ERROR: // 室内图 ID 信息错误
SwitchFloorError.FLOOR_OVERLFLOW: // 楼层溢出,即当前室内图不存在该楼层
SwitchFloorError.FOCUSED_ID_ERROR: // 要切换的室内图 ID 与当前聚焦的室内图 ID 不匹配
SwitchFloorError.SWITCH_ERROR: // 切换楼层失败

详情请参考 BaiduMapsApiASDemo 中的 IndoorMapDemo。

上一篇

显示定位

下一篇

个性化地图
本篇文章对您是否有帮助?