BMKGeoFenceRegion.h 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. //
  2. // BMKGeoFenceRegion.h
  3. // BMKLocationKit
  4. //
  5. // Created by baidu on 2017/3/2.
  6. // Copyright © 2017年 baidu. All rights reserved.
  7. //
  8. #import <Foundation/Foundation.h>
  9. #import <CoreLocation/CoreLocation.h>
  10. #import "BMKLocationManager.h"
  11. ///BMKGeoFence Region State
  12. typedef NS_ENUM(NSInteger, BMKGeoFenceRegionStatus)
  13. {
  14. BMKGeoFenceRegionStatusUnknown = 0, ///< 未知
  15. BMKGeoFenceRegionStatusInside = 1, ///< 在范围内
  16. BMKGeoFenceRegionStatusOutside = 1 << 1, ///< 在范围外
  17. BMKGeoFenceRegionStatusStayed = 1 << 2, ///< 停留(在范围内超过10分钟)
  18. };
  19. #pragma mark - BMKGeoFenceRegion
  20. ///地理围栏基类,不可直接使用
  21. @interface BMKGeoFenceRegion : NSObject<NSCopying>
  22. ///BMKGeoFenceRegion的唯一标识符
  23. @property (nonatomic, copy, readonly) NSString *identifier;
  24. ///用户自定义ID,可为nil。
  25. @property (nonatomic, copy, readonly) NSString *customID;
  26. ///坐标点和围栏的关系,比如用户的位置和围栏的关系
  27. @property (nonatomic, assign) BMKGeoFenceRegionStatus fenceStatus;
  28. ///设定围栏坐标系类型。默认为 BMKLocationCoordinateTypeGCJ02。
  29. @property(nonatomic, readonly) BMKLocationCoordinateType coordinateType;
  30. ///上次发生状态变化的时间
  31. @property(nonatomic, assign)NSTimeInterval lastEventTime;
  32. /**
  33. * @brief 判断位置与围栏状态
  34. * @param CLLocationCoordinate2D 坐标值
  35. * @return 返回BMKGeoFenceRegionStatus状态
  36. */
  37. -(BMKGeoFenceRegionStatus)judgeStatusWithCoor:(CLLocationCoordinate2D)coor;
  38. @end
  39. #pragma mark - BMKLocationCircleRegion
  40. ///圆形地理围栏
  41. @interface BMKGeoFenceCircleRegion : BMKGeoFenceRegion
  42. ///中心点的经纬度坐标
  43. @property (nonatomic, readonly) CLLocationCoordinate2D center;
  44. ///半径,单位:米
  45. @property (nonatomic, readonly) CLLocationDistance radius;
  46. /**
  47. * @brief 构造圆形围栏
  48. * @param customid 用户自定义ID
  49. * @param identityid 识别id
  50. * @param center 中心坐标
  51. * @param radius 围栏半径
  52. * @param type 坐标系类型
  53. * @return BMKGeoFenceCircleRegion id
  54. */
  55. - (id)initWithCustomID:(NSString *)customid identityID:(NSString *)identityid center:(CLLocationCoordinate2D)center radius:(CLLocationDistance)radius coor:(BMKLocationCoordinateType)type;
  56. @end
  57. #pragma mark -BMKGeoFencePolygonRegion
  58. ///多边形地理围栏
  59. @interface BMKGeoFencePolygonRegion : BMKGeoFenceRegion
  60. ///经纬度坐标点数据
  61. @property (nonatomic, readonly) CLLocationCoordinate2D *coordinates;
  62. ///经纬度坐标点的个数
  63. @property (nonatomic, readonly) NSInteger count;
  64. /**
  65. * @brief 构造多边形围栏
  66. * @param customid 用户自定义ID
  67. * @param identityid 识别id
  68. * @param coor 多边形顶点
  69. * @param count 顶点个数
  70. * @param type 坐标系类型
  71. * @return BMKGeoFencePolygonRegion id
  72. */
  73. - (id)initWithCustomID:(NSString *)customid identityID:(NSString *)identityid coor:(CLLocationCoordinate2D *)coor count:(NSInteger)count coor:(BMKLocationCoordinateType)type;
  74. @end