百度地图SDK支持室内地图功能,辅助开发者实现全新的地理位置服务体验,室内地图与百度地图App同步更新。 支持的公众建筑包含购物商场、机场和火车站等交通枢纽,医院等,截至2020年6月覆盖全国约5000+个大型购物中心,覆盖类型和城市还在持续增加中。
开启室内地图后,如果可见区域内包含室内地图覆盖区域(如:王府井等知名商场),且缩放达到一定级别,便可直接在地图上看到精细室内地图效果。 仅室内地图区域与显示屏幕有交集时,最大支持22级地图缩放;室内地图区域与显示屏幕无交集时,基础地图支持最大缩放到21级。 打开室内地图的代码如下:
//打开室内地图,默认值为NO_mapView.baseIndoorMapEnabled = YES;
效果图如下:
获取室内地图信息
通过实现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 | 当前室内地图不存在该楼层 |
效果图如下:
上一篇
下一篇
本篇文章对您是否有帮助?