115 lines
3.0 KiB
Objective-C
Executable File
115 lines
3.0 KiB
Objective-C
Executable File
//
|
||
// BMKGeoFenceRegion.h
|
||
// BMKLocationKit
|
||
//
|
||
// Created by baidu on 2017/3/2.
|
||
// Copyright © 2017年 baidu. All rights reserved.
|
||
//
|
||
|
||
#import <Foundation/Foundation.h>
|
||
#import <CoreLocation/CoreLocation.h>
|
||
#import "BMKLocationManager.h"
|
||
|
||
///BMKGeoFence Region State
|
||
typedef NS_ENUM(NSInteger, BMKGeoFenceRegionStatus)
|
||
{
|
||
BMKGeoFenceRegionStatusUnknown = 0, ///< 未知
|
||
BMKGeoFenceRegionStatusInside = 1, ///< 在范围内
|
||
BMKGeoFenceRegionStatusOutside = 1 << 1, ///< 在范围外
|
||
BMKGeoFenceRegionStatusStayed = 1 << 2, ///< 停留(在范围内超过10分钟)
|
||
};
|
||
|
||
#pragma mark - BMKGeoFenceRegion
|
||
|
||
|
||
///地理围栏基类,不可直接使用
|
||
@interface BMKGeoFenceRegion : NSObject<NSCopying>
|
||
|
||
|
||
///BMKGeoFenceRegion的唯一标识符
|
||
@property (nonatomic, copy, readonly) NSString *identifier;
|
||
|
||
|
||
///用户自定义ID,可为nil。
|
||
@property (nonatomic, copy, readonly) NSString *customID;
|
||
|
||
|
||
///坐标点和围栏的关系,比如用户的位置和围栏的关系
|
||
@property (nonatomic, assign) BMKGeoFenceRegionStatus fenceStatus;
|
||
|
||
///设定围栏坐标系类型。默认为 BMKLocationCoordinateTypeGCJ02。
|
||
@property(nonatomic, readonly) BMKLocationCoordinateType coordinateType;
|
||
|
||
///上次发生状态变化的时间
|
||
@property(nonatomic, assign)NSTimeInterval lastEventTime;
|
||
|
||
|
||
/**
|
||
* @brief 判断位置与围栏状态
|
||
* @param CLLocationCoordinate2D 坐标值
|
||
* @return 返回BMKGeoFenceRegionStatus状态
|
||
*/
|
||
-(BMKGeoFenceRegionStatus)judgeStatusWithCoor:(CLLocationCoordinate2D)coor;
|
||
|
||
@end
|
||
|
||
|
||
#pragma mark - BMKLocationCircleRegion
|
||
|
||
|
||
///圆形地理围栏
|
||
@interface BMKGeoFenceCircleRegion : BMKGeoFenceRegion
|
||
|
||
|
||
///中心点的经纬度坐标
|
||
@property (nonatomic, readonly) CLLocationCoordinate2D center;
|
||
|
||
|
||
///半径,单位:米
|
||
@property (nonatomic, readonly) CLLocationDistance radius;
|
||
|
||
/**
|
||
* @brief 构造圆形围栏
|
||
* @param customid 用户自定义ID
|
||
* @param identityid 识别id
|
||
* @param center 中心坐标
|
||
* @param radius 围栏半径
|
||
* @param type 坐标系类型
|
||
* @return BMKGeoFenceCircleRegion id
|
||
*/
|
||
- (id)initWithCustomID:(NSString *)customid identityID:(NSString *)identityid center:(CLLocationCoordinate2D)center radius:(CLLocationDistance)radius coor:(BMKLocationCoordinateType)type;
|
||
|
||
|
||
|
||
@end
|
||
|
||
|
||
#pragma mark -BMKGeoFencePolygonRegion
|
||
|
||
|
||
///多边形地理围栏
|
||
@interface BMKGeoFencePolygonRegion : BMKGeoFenceRegion
|
||
|
||
|
||
///经纬度坐标点数据
|
||
@property (nonatomic, readonly) CLLocationCoordinate2D *coordinates;
|
||
|
||
|
||
///经纬度坐标点的个数
|
||
@property (nonatomic, readonly) NSInteger count;
|
||
|
||
|
||
/**
|
||
* @brief 构造多边形围栏
|
||
* @param customid 用户自定义ID
|
||
* @param identityid 识别id
|
||
* @param coor 多边形顶点
|
||
* @param count 顶点个数
|
||
* @param type 坐标系类型
|
||
* @return BMKGeoFencePolygonRegion id
|
||
*/
|
||
- (id)initWithCustomID:(NSString *)customid identityID:(NSString *)identityid coor:(CLLocationCoordinate2D *)coor count:(NSInteger)count coor:(BMKLocationCoordinateType)type;
|
||
|
||
@end
|
||
|