您当前的位置: iOS全景SDK > 开发指南 > 全景图初始化以及显示
全景图初始化以及显示

简述

百度全景SDK为开发者提供了便捷的显示百度地图数据的接口,通过以下几步操作,即可在您的应用中使用百度全景图区:

%E5%85%A8%E6%99%AF%E5%9B%BE%E5%88%9D%E5%A7%8B%E5%8C%96%E5%8F%8A%E6%98%BE%E7%A4%BA.png

坐标说明

百度iOS全景SDK接口和功能目前支持BD09坐标,因此开发者在使用全景SDK的接口和功能时,都需要将WGS84坐标或GCJ02坐标转换为BD09坐标。

相应的接口和转换方法请参考坐标转换请勿使用非官方的转换方法。

全景图初始化

全景图初始化提供了三种方式。分别为

- (id)initWithFrame:(CGRect)frame key:(NSString *)key;

其中frame为全景图所需frame,key为统一在百度LBS平台申请的接入密钥。密钥申请方法参考:

http://developer.baidu.com/map/index.php?title=iossdk/guide/key

- (id)initWithFrame:(CGRect)frame;

此种初始化方法需要额外调用setPanoramaAccessKey 进行密钥设定。

- (id)initWithFrame:(CGRect)frame mcX:(NSInteger)x mcY:(NSInteger)y;

此种初始化方法可以直接得到当前百度坐标下的全景图。仍然需要进行密钥设定,否则将出现未授权提示。

利用百度坐标展示全景图

[self.panoranaView setPanoramaWithLon:116.48 andY:39.84];

利用百度墨卡托坐标检索全景图

[self.panoramaView setPanoramaWithX:x Y:y];

利用原始GPS坐标或者其他坐标系坐标检索全景图

为了能够让开发者更方便的获取全景图,SDK提供了坐标转化工具,利用BaiduPanoUtils 工具中的方法可以很方便进行坐标转换。

COOR_TYPE_BDLL = 1,//百度坐标
COOR_TYPE_BDMC = 2,//百度墨卡托坐标
COOR_TYPE_GPS = 3,//GPS原始坐标
COOR_TYPE_COMMON = 4,//其他坐标,腾讯,高德,google等

转换方法为:

+ (CLLocationCoordinate2D)baiduCoorEncryptLon:(double)lon lat:(double)lat coorType:(COOR_TYPE)type;

开发者可以利用转化后的坐标进行获取百度全景

利用全景Pid获取指定全景图

地图中每一个全景图对应一个pid,pid的获取方式可以通过POI信息方式获取,或者经纬度获取当前的pid。

- (void)setPanoramaWithPid:(NSString *)pid;

利用地图中的POI获取指定全景图

在百度地图中,POI点对应的id为UID(历史原因,此处不多解释),可以根据uid来直接显示当前UID下的全景图,注意考虑没有全景图的情况。

- (void)setPanoramaWithUid:(NSString *)uid;

在全景SDK2.1.0 中,引入新的接口:

- (void)setPanoramaWithUid:(NSString*)uid
                        type:(BaiduPanoramaType)type;

其中BaiduPanoramaType代表室内还是室外。因为POI点可以是室内也可以是室外,而在室内的话,会默认调用室内相册的插件,进而显示室内全景图。此方法注意判断相应错误情况:

1、传入室内类型,但是此POI并没有室内全景图

2、传入室内类型,但是没有添加室内相册.a,依然无法显示室内全景图

3、传入室外类型,但是此POI没有室外全景图

POI%E9%85%8D%E5%9B%BE.png

POI%E9%85%8D%E5%9B%BE2.png