本文介绍地理围栏的相关功能。
基础概念
LBS
LBS 即基于位置的服务(Location Based Services,LBS),是指围绕地理位置数据而展开的服务。由移动终端使用无线通信网络(或卫星定位系统),基于控件数据库,获取用户的地理位置坐标信息并与其他信息集成,以便向用户提供所需的、与位置相关的增值服务。
地理围栏
地理围栏(Geo-fencing)是 LBS 的一种新应用,是物理位置周围的虚拟围栏或边界。与真正的围栏一样,地理围栏会在该位置与其周围区域之间建立隔离。与真实围栏不同的是,它还可以检测虚拟边界内的移动,当设备进入或离开某个特定地理区域,设备可以接收自动通知和警告。
地理围栏的应用
出行的地理围栏功能是基于设备当前定位,以设备为圆心向外的围栏设置。以下将以公版功能为例,讲解如何使用地理围栏功能。
开启地理围栏并设置告警方式:调用地理围栏设置接口,您可以开启地理围栏功能并设置告警方式,包括 App、短信、电话告警等。
地理围栏中心地址:地理围栏的中心地址通常以车辆锁车时的地址为准,随着车辆行驶而变化。当车辆锁车时上报位置信息,锁车后位置上报偏移量超过设置半径时,会触发对应的告警。如果希望其他状态触发告警,可设置其他 DP。
通过以上功能,地理围栏可以有效监控车辆的位置变化,并及时进行告警提醒,提高车辆防盗的安全性。
地理围栏服务
类名(协议名)
说明
TSODGeofenceService
地理围栏相关服务
TSODGeofenceModel
地理围栏信息模型
设置地理围栏
- (void)setGeofenceWithRequestModel:(TSODGeofenceModel *)requestModel
success:(nullable ThingSuccessBOOL)success
failure:(nullable ThingFailureError)failure NS_SWIFT_NAME(setGeofence(requestModel:success:failure:));
示例代码
TSODGeofenceModel *requestModel = [[TSODGeofenceModel alloc] init];
requestModel.devID = self.device.deviceModel.devId;
requestModel.geofenceInfo.open = YES;
requestModel.geofenceInfo.radius = 50;
requestModel.geofenceInfo.noticeType = noticeType;
requestModel.geofenceInfo.dpCode = @"blelock_switch";
requestModel.geofenceInfo.dpValue = @NO;
self.service = [[TSODGeofenceService alloc] init]
[self.service setGeofenceWithRequestModel:requestModel success:^(**BOOL** result) {
//...
} failure:^(NSError *error) {
}];
获取地理围栏信息
- (void)getGeofenceInfoWithDevID:(NSString *)devID
success:(nullable void(^)(TSODGeofenceModel *geofenceModel))success
failure:(nullable ThingFailureError)failure NS_SWIFT_NAME(getGeofenceInfo(devID:success:failure:));
示例代码
self.service = [[TSODGeofenceService alloc] init]
[self.service getGeofenceInfoWithDevID:self.deviceModel.devId success:^(TSODGeofenceModel * _Nonnull geofenceModel) {
BOOL isOpen = geofenceModel.geofenceInfo.isOpen;
//...
} failure:^(NSError *error) {
}];
TSODGeofenceModel 数据模型
字段
类型
描述
devID
NSString
设备 ID
geofenceInfo
TSODGeofenceInfoModel
地理围栏信息
TSODGeofenceInfoModel 数据模型
字段
类型
描述
radius
NSInteger
半径,单位米。开启时,需要设置大于 0 的值。
noticeType
TSODGeofenceNoticeType
告警类型,支持 App、短信和电话,其中短信和电话需要购买相应服务。
open
BOOL
是否开启地理围栏。
dpCode
NSString
关联的 DP。一般根据此 DP 的 Code,确定是否要触发地理围栏。如果是公版,则关联锁车 DP。
dpValue
id
希望地理围栏激活的 DP 对应的值。如果希望锁车状态激活地理围栏,则设置 @NO,那么锁车后地理围栏就会激活。