浏览器版本低!无法浏览完整内容,建议升级或更换浏览器。
 
第1行: 第1行:
 
{{iossdk-sidebar}}
 
{{iossdk-sidebar}}
 +
<div class="wrap-time-sdk" style="margin-top: -15px;">更新时间:2020-06-23</div>
 
<div class="bluetitle"><div class="services-title-text">室内地图简介</div></div>
 
<div class="bluetitle"><div class="services-title-text">室内地图简介</div></div>
 
百度地图SDK支持室内地图功能,辅助开发者实现全新的地理位置服务体验,室内地图与百度地图App同步更新。 支持的公众建筑包含购物商场、机场和火车站等交通枢纽,医院等,截至2020年6月覆盖全国约5000+个大型购物中心,覆盖类型和城市还在持续增加中。
 
百度地图SDK支持室内地图功能,辅助开发者实现全新的地理位置服务体验,室内地图与百度地图App同步更新。 支持的公众建筑包含购物商场、机场和火车站等交通枢纽,医院等,截至2020年6月覆盖全国约5000+个大型购物中心,覆盖类型和城市还在持续增加中。

2020年6月29日 (一) 08:36的最后版本

更新时间:2020-06-23
室内地图简介

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

显示室内地图

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

Objective-C
Swift
//打开室内地图,默认值为NO
_mapView.baseIndoorMapEnabled = YES;
//打开室内地图,默认值为NO
mapView.baseIndoorMapEnabled = true

效果图如下:

sndt001.png

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

获取室内地图信息

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

Objective-C
Swift
-(void)mapview:(BMKMapView *)mapView baseIndoorMapWithIn:(BOOL)flag   baseIndoorMapInfo:(BMKBaseIndoorMapInfo *)info
 {
     if (flag) {//进入室内地图
        //coding...
     } else {//移出室内地图
        //coding...
     }
 }
func mapview(_ mapView: BMKMapView!, baseIndoorMapWithIn flag: Bool, baseIndoorMapInfo info: BMKBaseIndoorMapInfo!) {
        if flag {//进入室内地图
           //coding...
        } else {//移出室内地图
           //coding...
        }
    }

楼层切换

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

Objective-C
Swift
BMKSwitchIndoorFloorError error = [_mapView switchBaseIndoorMapFloor:@"F1" withID:indoorID];
if (error == BMKSwitchIndoorFloorSuccess) {
   NSLog(@"切换楼层成功");
}
/**
 设置室内图楼层
 baseIndoorMapInfo.arrStrFloors 楼层
 baseIndoorMapInfo.strID 室内图ID
 切换结果
 */
let error = mapView.switchBaseIndoorMapFloor("F1", withID: indoorID)
//BMKSwitchIndoorFloorError错误码:切换楼层成功
if error == BMKSwitchIndoorFloorSuccess {
   NSLog(@"切换楼层成功")
}

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

错误信息
含义
BMKSwitchIndoorFloorSuccess 切换楼层成功
BMKSwitchIndoorFloorFailed 切换楼层失败
BMKSwitchIndoorFloorNotFocused 地图还未聚焦到传入的室内地图
BMKSwitchIndoorFloorNotExist 当前室内地图不存在该楼层

注意: 楼层控制列表需要自行实现,demo中使用UITableView实现。

效果图如下:

sndt002.png

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

  • 文档根本没法用

  • 文档水平很差

  • 文档水平一般

  • 文档不错

  • 文档写的很好

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

提交反馈

拖动标注工具

添加矩形标注

添加箭头标注

完成

取消