com.amap.api.fence

## 类 GeoFenceClient

- java.lang.Object
- - com.amap.api.fence.GeoFenceClient

-     public class GeoFenceClient
      extends java.lang.Object

  地理围栏客户端
  从以下版本开始:
    3.2.0

- - ### 字段概要

    字段
    限定符和类型 | 字段和说明
    --- | ---
    `static int` | `GEOFENCE_IN` 触发围栏行为-进入围栏
    `static int` | `GEOFENCE_OUT` 触发围栏行为-离开围栏
    `static int` | `GEOFENCE_STAYED` 触发围栏行为-停留在围栏内（在围栏内停留10分钟以上）

  - ### 构造器概要

    构造器
    构造器和说明
    `GeoFenceClient(Context context)`

  - ### 方法概要

    所有方法 实例方法 具体方法
    限定符和类型 | 方法和说明
    --- | ---
    `void` | `addGeoFence(DPoint point, float radius, java.lang.String customId)` 创建自定义围栏 圆形围栏
    `void` | `addGeoFence(java.util.List<DPoint> points, java.lang.String customId)` 创建自定义围栏 多边形围栏
    `void` | `addGeoFence(java.lang.String keyword, java.lang.String customId)` 创建行政区划围栏
    `void` | `addGeoFence(java.lang.String keyword, java.lang.String poiType, DPoint point, float aroundRadius, int size, java.lang.String customId)` 创建高德POI地理围栏 根据周边创建围栏 注意：通过此方法创建的围栏半径全部为200米，暂时不支持自定位围栏半径
    `void` | `addGeoFence(java.lang.String keyword, java.lang.String poiType, java.lang.String city, int size, java.lang.String customId)` 创建高德POI地理围栏 根据关键字创建围栏 注意：通过此方法创建的围栏半径全部为1000米，暂时不支持自定义围栏半径
    `PendingIntent` | `createPendingIntent(java.lang.String action)` 创建PendingIntent 注意：一个GeoFenceClient只接受一个PendingIntent,如果重复设置多个，则以最后一个为准
    `java.util.List<GeoFence>` | `getAllGeoFence()` 获取所有已经创建的地理围栏
    `boolean` | `isPause()` 地理围栏是否已经暂停
    `void` | `pauseGeoFence()` 暂停地理围栏 暂停地理围栏的监听、同时地理围栏内部的定位也会停止
    `void` | `removeGeoFence()` 移除所有地理围栏
    `boolean` | `removeGeoFence(GeoFence geoFence)` 移除指定的geofence 当要移除所有围栏时可以使用`GeoFenceClient.removeGeoFence()`方法 当要销毁GeoFneceClient时，需要调用一次 `GeoFenceClient.removeGeoFence()`方法，确保所有围栏已移除
    `void` | `resumeGeoFence()` 恢复地理围栏 恢复地理围栏的监听、同时地理围栏内部的定位也会重新开始定位 注意：通过setGeoFenceAble接口设置为false的围栏不会重新生效
    `void` | `setActivateAction(int action)` 设置触发地理围栏的条件 注意：重复设置不同的触发行为会重复触发围栏
    `void` | `setGeoFenceAble(java.lang.String fenceId, boolean able)` 设置围栏是否生效，
    `void` | `setGeoFenceListener(GeoFenceListener geoFenceListener)` 设置地理围栏的回调接口

    - ### 从类继承的方法 java.lang.Object

      `equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### 字段详细资料

    - #### GEOFENCE_IN

          public static final int GEOFENCE_IN

      触发围栏行为-进入围栏
      从以下版本开始:
        3.2.0
      另请参阅:
        常量字段值

    - #### GEOFENCE_OUT

          public static final int GEOFENCE_OUT

      触发围栏行为-离开围栏
      从以下版本开始:
        3.2.0
      另请参阅:
        常量字段值

    - #### GEOFENCE_STAYED

          public static final int GEOFENCE_STAYED

      触发围栏行为-停留在围栏内（在围栏内停留10分钟以上）
      从以下版本开始:
        3.2.0
      另请参阅:
        常量字段值

  - ### 构造器详细资料

    - #### GeoFenceClient

          public GeoFenceClient(Context context)

      参数:
        `context` -
      从以下版本开始:
        3.2.0

  - ### 方法详细资料

    - #### createPendingIntent

          public PendingIntent createPendingIntent(java.lang.String action)

      创建PendingIntent

      注意：一个GeoFenceClient只接受一个PendingIntent,如果重复设置多个，则以最后一个为准

      参数:
        `action` - PendingIntent的过滤条件
      返回:
        创建后的PendingIntent
      从以下版本开始:
        3.2.0

    - #### setActivateAction

          public void setActivateAction(int action)

      设置触发地理围栏的条件

      注意：重复设置不同的触发行为会重复触发围栏

      参数:
        `action` - 触发围栏的条件

        目前支持的条件有：

        `GeoFenceClient.GEOFENCE_IN` 进入
        `GeoFenceClient.GEOFENCE_OUT` 离开
        `GeoFenceClient.GEOFENCE_STAYED` 停留
        三种条件可以通过|进行组合使用，例如： setActivatesAction(GEOFENCE_IN)为进入提醒
        setActivatesAction(GEOFENCE_IN|GEOFENCE_OUT)为进入和离开都提醒
        setActivatesAction(GEOFENCE_IN|GEOFENCE_OUT|GEOFENCE_STAYED) 为全部提醒（进入、离开、停留)
      从以下版本开始:
        3.2.0

    - #### setGeoFenceListener

          public void setGeoFenceListener(GeoFenceListener geoFenceListener)

      设置地理围栏的回调接口
      参数:
        `geoFenceListener` -
      从以下版本开始:
        3.2.0

    - #### addGeoFence

          public void addGeoFence(DPoint point,
                                  float radius,
                                  java.lang.String customId)

      创建自定义围栏

      圆形围栏

      参数:
        `point` - 围栏中心点坐标, 必填项
        `radius` - 围栏半径, 必填项
        `customId` - 自定义的围栏标识， 选填，建议必填并且保证唯一性
      从以下版本开始:
        3.2.0

    - #### addGeoFence

          public void addGeoFence(java.util.List<DPoint> points,
                                  java.lang.String customId)

      创建自定义围栏

      多边形围栏

      参数:
        `points` - 多边形的边界点, 必须大于2个点, 必填项
        `customId` - 自定义的围栏标识， 选填，建议必填并且保证唯一性
      从以下版本开始:
        3.2.0

    - #### addGeoFence

          public void addGeoFence(java.lang.String keyword,
                                  java.lang.String poiType,
                                  DPoint point,
                                  float aroundRadius,
                                  int size,
                                  java.lang.String customId)

      创建高德POI地理围栏

      根据周边创建围栏
      注意：通过此方法创建的围栏半径全部为200米，暂时不支持自定位围栏半径

      参数:
        `keyword` - 关键字， 例如：肯德基， 必填项
        `poiType` - poi类型，例如：餐饮， 选填项
        `point` - 中心点坐标， 必填项
        `aroundRadius` - 周边半径,取值范围[1-50000]
        `size` - 最多创建的围栏数目, 最大25个
        `customId` - 自定义的围栏标识， 选填，建议必填并且保证唯一性
      从以下版本开始:
        3.2.0
      另请参阅:
        POI分类编码表和城市编码表

    - #### addGeoFence

          public void addGeoFence(java.lang.String keyword,
                                  java.lang.String poiType,
                                  java.lang.String city,
                                  int size,
                                  java.lang.String customId)

      创建高德POI地理围栏

      根据关键字创建围栏
      注意：通过此方法创建的围栏半径全部为1000米，暂时不支持自定义围栏半径

      参数:
        `keyword` - POI关键字， 例如：首开广场, 必填项（keyword和poiType必须至少填一项）
        `poiType` - POI类型，例如：写字楼， 必填项（keyword和poiType必须至少填一项）
        `city` - POI所在的城市名称， 例如：北京, 选填
        `size` - 最大创建的围栏数目，取值范围[1-25]
        `customId` - 自定义的围栏标识， 选填，建议必填并且保证唯一性
      从以下版本开始:
        3.2.0
      另请参阅:
        POI分类编码表和城市编码表

    - #### addGeoFence

          public void addGeoFence(java.lang.String keyword,
                                  java.lang.String customId)

      创建行政区划围栏
      参数:
        `keyword` - 关键字 必填项
        `customId` - 自定义的围栏标识， 选填，建议必填并且保证唯一性
      从以下版本开始:
        3.2.0

    - #### removeGeoFence

          public void removeGeoFence()

      移除所有地理围栏
      从以下版本开始:
        3.2.0

    - #### removeGeoFence

          public boolean removeGeoFence(GeoFence geoFence)

      移除指定的geofence

      当要移除所有围栏时可以使用`GeoFenceClient.removeGeoFence()`方法 当要销毁GeoFneceClient时，需要调用一次 `GeoFenceClient.removeGeoFence()`方法，确保所有围栏已移除

      参数:
        `geoFence` - 要移除的geofence
      返回:
        是否移除成功
      从以下版本开始:
        3.3.0

    - #### getAllGeoFence

          public java.util.List<GeoFence> getAllGeoFence()

      获取所有已经创建的地理围栏
      返回:
        所有已经创建的地理围栏
      从以下版本开始:
        3.3.0

    - #### setGeoFenceAble

          public void setGeoFenceAble(java.lang.String fenceId,
                                      boolean able)

      设置围栏是否生效，
      参数:
        `fenceId` - 需要改变的地理围栏的fenceId
        `able` - 是否生效，true:生效；false:不生效, 默认：true
      从以下版本开始:
        3.6.0

    - #### pauseGeoFence

          public void pauseGeoFence()

      暂停地理围栏

      暂停地理围栏的监听、同时地理围栏内部的定位也会停止

      从以下版本开始:
        3.6.0

    - #### resumeGeoFence

          public void resumeGeoFence()

      恢复地理围栏

      恢复地理围栏的监听、同时地理围栏内部的定位也会重新开始定位
      注意：通过setGeoFenceAble接口设置为false的围栏不会重新生效

      从以下版本开始:
        3.6.0

    - #### isPause

          public boolean isPause()

      地理围栏是否已经暂停
      返回:
        地理围栏是否处于暂停状态
      从以下版本开始:
        3.6.0