全部服务产品
开发者频道
定价
登录
室内地图
下载开发文档
室内地图简介

百度地图SDK支持室内地图功能,辅助开发者实现全新的地理位置服务体验,室内地图与百度地图App同步更新。 支持的公众建筑包含购物商场、机场和火车站等交通枢纽,医院等,截至2020年6月覆盖全国约5000+个大型购物中心,覆盖类型和城市还在持续增加中。

显示室内地图

开启室内地图后,如果可见区域内包含室内地图覆盖区域(如:王府井等知名商场),且缩放达到一定级别,便可直接在地图上看到精细室内地图效果。 仅室内地图区域与显示屏幕有交集时,最大支持22级地图缩放;室内地图区域与显示屏幕无交集时,基础地图支持最大缩放到21级。 打开室内地图的代码如下:

//打开室内地图,默认值为NO
_mapView.baseIndoorMapEnabled = YES;

效果图如下:

sndt_1.png
获取室内地图信息以及实现楼层切换

获取室内地图信息

通过实现delegate方法,设置监听事件来监听进入和移出室内地图,核心代码如下:

-(void)mapview:(BMKMapView *)mapView baseIndoorMapWithIn:(BOOL)flag baseIndoorMapInfo:(BMKBaseIndoorMapInfo *)info
{
if (flag) {//进入室内地图
//coding...
} else {//移出室内地图
//coding...
}
}

楼层切换

室内地图图区与屏幕有交集时,还可实现楼层间地图切换,展示不同楼层的室内。可以通过BMKMapView提供的接口,展示不同楼层的室内地图,核心代码如下: //进行楼层切换,indoorID可通过delegate方法:- mapview:baseIndoorMapWithIn:baseIndoorMapInfo: 获取,核心代码如下:

BMKSwitchIndoorFloorError error = [_mapView switchBaseIndoorMapFloor:@"F1" withID:indoorID];
if (error == BMKSwitchIndoorFloorSuccess) {
NSLog(@"切换楼层成功");
}

上面代码中,strFloor表示室内地图楼层,格式为F1,B1… indoorID表示室内地图ID;返回值BMKSwitchIndoorFloorError用于标识楼层切换错误信息,具体含义如下表:

错误信息含义
BMKSwitchIndoorFloorSuccess切换楼层成功
BMKSwitchIndoorFloorFailed切换楼层失败
BMKSwitchIndoorFloorNotFocused地图还未聚焦到传入的室内地图
BMKSwitchIndoorFloorNotExist当前室内地图不存在该楼层
注意: 楼层控制列表需要自行实现,demo中使用UITableView实现。

效果图如下:

sndt_2.png

上一篇

显示定位

下一篇

个性化地图

本篇文章对您是否有帮助?