获取室内位置 最后更新时间: 2021年01月22日
构造定位对象
示例:
OnlineLocation* indoorLocation = [[OnlineLocation alloc]initWithDelegate:self];
功能: 初始化室内定位模块。
方法: -(instancetype)initWithDelegate:(id)delegate;
参数:
参数 | 类型 | 说明 |
---|---|---|
delegate | id | 接收室内定位事件 |
返回值:
类型 | 说明 |
---|---|
OnlineLocation | 返回室内定位模块对象 |
设置API Key
功能: 设置高德地图API的Key,用于访问高德服务器鉴权。
示例:
indoorLocation.key = @"您申请的高德地图API的Key";
属性: @property(nonatomic, strong) NSString* key;
参数:
参数 | 类型 | 说明 |
---|---|---|
key | NSString* | 高德地图API Key |
说明: 用户在使用本SDK之前需要获取高德地图API Key。(使用高德开发者账号登陆,若不是开发者账号,则会提醒认证成为开发者)
相关说明请参考 获取key 相关内容。 如果Key不正确,将无法使用本SDK的各项功能。
指定定位建筑
功能: 指定在哪栋建筑物内进行室内定位。
示例:
indoorLocation.buildingId = @"室内建筑POIID";
属性: @property(nonatomic, strong) NSString* buildingId;
参数:
参数 | 类型 | 说明 |
---|---|---|
buildingId | NSString* | 建筑物的高德POIID,线下获取 |
说明: 必须指定建筑物,否则可能无法定位。
启动定位
功能: 启动室内定位模块,进行定位操作。
示例:
[indoorLocation startLocation];
方法: -(int)startLocation;
返回值:
类型 | 说明 |
---|---|
int | 0:启动室内定位成功 -1:室内定位已经启动 |
停止定位
功能: 停止室内定位模块。
示例:
[indoorLocation stopLocation];
方法: -(int)stopLocation;
返回值:
类型 | 说明 |
---|---|
int | 0:停止室内定位成功 -1:室内定位已经启动 |
获取版本号
功能: 获取定位模块的版本号,当前版本是5.6
示例:
[OnlineLocation getVersion];
方法: +(NSString*)getVersion;
返回值:
类型 | 说明 |
---|---|
NSString* | 定位模块的版本号 |
定位成功事件
功能: 定位成功时获得定位结果
示例:
-(void)indoorLocation:(LocationBase*)indoorLocation didLocationResult:(LocationResult*)result
{
self.result = result;
NSString* text = [NSString stringWithFormat:@"定位结果: %@", self.result];
[self.textView setText:text];
}
方法: -(void)indoorLocation:(LocationBase)indoorLocation didLocationResult:(LocationResult)result;
参数:
参数 | 类型 | 说明 |
---|---|---|
indoorLocation | LocationBase * | 定位模块实例 |
result | LocationResult* | 定位结果 |
定位失败事件
功能: 定位失败时获取失败原因
示例:
-(void)indoorLocation:(LocationBase*)indoorLocation
didLocationError:(NSString*)buildingId error:(NSError*)error
{
NSString* text = [NSString stringWithFormat:@"%@定位失败: %@", buildingId, error];
[self.textView setText:text];
}
方法: -(void)indoorLocation:(LocationBase)indoorLocation didLocationError:(NSString)buildingId error:(NSError*)error;
参数:
参数 | 类型 | 说明 |
---|---|---|
indoorLocation | LocationBase * | 定位模块实例 |
buildingId | NSString* | 定位的建筑物ID |
error | NSError* | 错误原因,error.code是错误码 |
定位结果
功能: 室内定位结果
示例:
int floorId = result.floorId;
double longitude = result.longitude;
double latitude = result.latitude;
结构:
@interface LocationResult : NSObject
@property(nonatomic) int type;
@property(nonatomic, strong) NSString* buildingId;
@property(nonatomic) double longitude;
@property(nonatomic) double latitude;
@property(nonatomic) int floorId;
@property(nonatomic) float accuracy;
@property(nonatomic) float orientation;
@end
参数:
参数 | 类型 | 说明 |
---|---|---|
type | int | 结果类型(0:ONLINE,1:OFFLINE) |
buildingId | NSString* | 定位的建筑物ID |
longitude | double | 经度(-180~180) |
latitude | double | 纬度(-90~90) |
floorId | int | 楼层(-100~-1,1-127) |
accuracy | float | 精度(单位米) |
orientation | float | 方向(0~360) |