浏览器版本低!无法浏览完整内容,建议升级或更换浏览器。
室内地图简介

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

显示室内地图

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

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

效果图如下:

sndt001.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实现。

效果图如下:

sndt002.png

如果您想了解更加丰富的功能和详细的使用方法,可以下载官方demo, 查看室内图部分的源码示例

  • 文档根本没法用

  • 文档水平很差

  • 文档水平一般

  • 文档不错

  • 文档写的很好

如发现文档错误,或对此文档有更好的建议,请在下方反馈。问题咨询请前往反馈平台提交工单咨询。

提交反馈

拖动标注工具

添加矩形标注

添加箭头标注

完成

取消