# HdiLpfenceGeofence
## 概述
为低功耗围栏服务提供地理围栏的API。
本模块接口提供添加圆形和多边形地理围栏,删除地理围栏,获取地理围栏状态信息,获取设备地理位置等功能。本模块可在AP休眠状态下持续工作。 应用场景:判断用户设备是否达到某个精确地理位置区域,从而进行一些后续服务,如门禁卡的切换、定制消息的提醒等。
**起始版本:** 4.0
## 汇总
### 文件
| 名称 | 描述 |
| -------- | -------- |
| [GeofenceTypes.idl](lpfence_geofence_types_8idl.md) | 定义地理围栏使用的数据类型。 |
| [IGeofenceCallback.idl](lpfence_i_geofence_callback_8idl.md) | 定义地理围栏模块回调接口。 |
| [IGeofenceIntf.idl](lpfence_i_geofence_intf_8idl.md) | 声明基站围栏模块提供的API,用于添加多种地理围栏,删除地理围栏,获取地理围栏状态信息,获取设备地理位置,下发基站离线数据库。 |
### 类
| 名称 | 描述 |
| -------- | -------- |
| struct [Point](lpfence_point.md) | 定义位置坐标的数据结构。 |
| struct [GeofenceCircleRequest](lpfence_geofence_circle_request.md) | 定义添加圆形地理围栏的数据结构。 |
| struct [GeofencePolygonRequest](lpfence_geofence_polygon_request.md) | 定义添加多边形地理围栏的数据结构。 |
| struct [GeofenceResult](lpfence_geofence_result.md) | 定义添加或删除地理围栏执行结果的数据结构。 |
| struct [OfflineDb](lpfence_offline_db.md) | 定义下发基站离线数据库的数据结构。 |
| struct [GeoLocationInfo](lpfence_geo_location_info.md) | 定义设备具体位置信息的数据结构。 |
| struct [GeofenceSize](lpfence_geofence_size.md) | 定义地理围栏使用信息的数据结构。 |
| struct [CurrentCell](lpfence_current_cell.md) | 定义设备驻留的基站主区信息的数据结构。 |
| struct [NeighborCell](lpfence_neighbor_cell.md) | 定义设备驻留的基站邻区信息的数据结构。 |
| struct [GeofenceCellInfo](lpfence_geofence_cell_info.md) | 定义设备驻留的基站小区信息的数据结构。 |
| struct [RequestCellDb](lpfence_request_cell_db.md) | 定义请求基站离线数据库数据的数据结构。 |
| interface [IGeofenceCallback](lpfence_interface_i_geofence_callback.md) | 定义地理围栏模块的回调函数 |
| interface [IGeofenceInterface](lpfence_interface_i_geofence_interface.md) | 定义对地理围栏模块进行基本操作的接口。 |
### 枚举
| 名称 | 描述 |
| -------- | -------- |
| [GeofenceTransition](#geofencetransition) {
GEOFENCE_TRANSITION_ENTERED = (1 << 0) , GEOFENCE_TRANSITION_EXITED = (1 << 1) , GEOFENCE_TRANSITION_UNCERTAIN = (1 << 2) , GEOFENCE_TRANSITION_DWELL = (1 << 3) , GEOFENCE_TRANSITION_INDOOR = (1 << 4) , GEOFENCE_TRANSITION_OUTDOOR = (1 << 5)
} | 枚举可关注的地理围栏状态事件。 |
| [GeofenceAttribute](#geofenceattribute) { GEOFENCE_ATTRI_COORDINATE_WGS84 = 16 } | 枚举地理围栏支持的设置项。 |
| [GeofenceAccuracy](#geofenceaccuracy) { ACCURACY_FINE = 1 , ACCURACY_BALANCE = 2 , ACCURACY_COARSE = 3 } | 枚举地理围栏支持的精度模式。 |
| [GeofenceCellType](#geofencecelltype) { GEOFENCE_CELL_G4 = 0 , GEOFENCE_CELL_NR = 1 } | 枚举移动通信技术代。 |
| [GeofenceLocSource](#geofencelocsource) {
GEOFENCE_GNSS = 1 , GEOFENCE_WIFI = 2 , GEOFENCE_SENSOR = 4 , GEOFENCE_CELL = 8 , GEOFENCE_BT = 16
} | 枚举位置信息来源。 |
## 枚举类型说明
### GeofenceAccuracy
```
enum GeofenceAccuracy
```
**描述**
枚举地理围栏支持的精度模式。
**起始版本:** 4.0
| 枚举值 | 描述 |
| -------- | -------- |
| ACCURACY_FINE | 高精度模式,GNSS模块接收GPS定位信号频率为1秒1次,功耗较高。 |
| ACCURACY_BALANCE | 中精度模式,GNSS模块接收GPS定位信号频率为60秒1次,功耗较低。 |
| ACCURACY_COARSE | 低精度模式,只使用基站定位,不依赖GNSS模块。 |
### GeofenceAttribute
```
enum GeofenceAttribute
```
**描述**
枚举地理围栏支持的设置项。
**起始版本:** 4.0
| 枚举值 | 描述 |
| -------- | -------- |
| GEOFENCE_ATTRI_COORDINATE_WGS84 | 地理位置使用WGS-84地心坐标系。 |
### GeofenceCellType
```
enum GeofenceCellType
```
**描述**
枚举移动通信技术代。
**起始版本:** 4.0
| 枚举值 | 描述 |
| -------- | -------- |
| GEOFENCE_CELL_G4 | 第2、3、4代移动通信技术 |
| GEOFENCE_CELL_NR | 第5代移动通信技术 |
### GeofenceLocSource
```
enum GeofenceLocSource
```
**描述**
枚举位置信息来源。
**起始版本:** 4.0
| 枚举值 | 描述 |
| -------- | -------- |
| GEOFENCE_GNSS | 位置信息来源于GNSS模块 |
| GEOFENCE_WIFI | 位置信息来源于Wi-Fi模块 |
| GEOFENCE_SENSOR | 位置信息来源于Sensor模块 |
| GEOFENCE_CELL | 位置信息来源于基站模块 |
| GEOFENCE_BT | 位置信息来源于蓝牙模块 |
### GeofenceTransition
```
enum GeofenceTransition
```
**描述**
枚举可关注的地理围栏状态事件。
**起始版本:** 4.0
| 枚举值 | 描述 |
| -------- | -------- |
| GEOFENCE_TRANSITION_ENTERED | 设备在地理围栏范围内。 |
| GEOFENCE_TRANSITION_EXITED | 设备在地理围栏范围外。 |
| GEOFENCE_TRANSITION_UNCERTAIN | 无法确定设备与地理围栏位置关系。 |
| GEOFENCE_TRANSITION_DWELL | 设备在地理围栏内,且持续徘徊一段时间。 |
| GEOFENCE_TRANSITION_INDOOR | 设备在地理围栏内,且在室内。 |
| GEOFENCE_TRANSITION_OUTDOOR | 设备在地理围栏内,且在室外。 |