目录
简述
百度全景SDK为开发者提供了便捷的显示百度地图数据的接口,通过以下几步操作,即可在您的应用中使用百度全景图区:
全景图初始化
全景图初始化提供了三种方式。分别为
- (id)initWithFrame:(CGRect)frame key:(NSString *)key;
其中frame为全景图所需frame,key为统一在百度LBS平台申请的接入密钥。密钥申请方法参考:
https://lbs.baidu.com/index.php?title=iossdk/guide/create-project/ak
- (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没有室外全景图