地理围栏

更新时间:2024-07-04 06:57:55下载pdf

本文介绍地理围栏的相关功能。

基础概念

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,那么锁车后地理围栏就会激活。