百度地图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 | 当前室内地图不存在该楼层 |
效果图如下:
上一篇
下一篇
本篇文章对您是否有帮助?