自 v4.0 版本起,百度地图 Android SDK 正式上线室内地图功能,帮助开发者为用户提供更完整的地理位置服务体验。室内地图数据与百度地图 App 同步更新,支持的公共建筑包括购物商场、机场和火车站等交通枢纽,以及医院等。截至 2020 年 6 月,已覆盖全国约 5000 余个大型购物中心,覆盖的建筑类型和城市仍在持续增加。
本章节将对显示室内图、获取室内图信息、切换楼层、室内 POI 检索、室内路线规划等功能做进一步说明。
开启室内地图后,当地图可见区域内包含室内地图覆盖的建筑(如王府井等知名商场),且地图缩放到一定级别时,即可直接在地图上看到精细的室内地图效果。室内图最大支持 22 级缩放。
打开室内图的代码如下:
mBaiduMap.setIndoorEnable(true); // 打开室内图,默认为关闭状态
显示效果如图:

如需对室内图进行更多操作,例如获取室内图信息、切换楼层,可以按以下方式实现:
mBaiduMap.setOnBaseIndoorMapListener(new BaiduMap.OnBaseIndoorMapListener() {@Overridepublic 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。
上一篇
下一篇