public class GeoFenceClient extends BDAbstractLocationListener implements com.baidu.geofence.network.StatisticsCallCount.CallBack, com.baidu.location.utils.LocalDebug
从以下版本开始:
8.2.0
限定符和类型 | 字段和说明 |
---|---|
static java.lang.String |
BD09LL
百度经纬度坐标
|
static java.lang.String |
BD09MC
百度墨卡托米制坐标
|
static java.lang.String |
GCJ02
国测局坐标系
|
static int |
GEOFENCE_IN
触发围栏行为-进入围栏
|
static int |
GEOFENCE_IN_OUT
触发围栏行为-进入、离开围栏
|
static int |
GEOFENCE_IN_OUT_STAYED
包括全部触发围栏行为
|
static int |
GEOFENCE_IN_STAYED
触发围栏行为-进入围栏、停留在围栏内(在围栏内停留10分钟以上)
|
static int |
GEOFENCE_OUT
触发围栏行为-离开围栏
|
static int |
GEOFENCE_OUT_STAYED
触发围栏行为-离开围栏、停留在围栏内(在围栏内停留10分钟以上)
|
static int |
GEOFENCE_STAYED
触发围栏行为-停留在围栏内(在围栏内停留10分钟以上)
|
static java.lang.String |
WGS84
表示GPS获取的坐标
|
构造器和说明 |
---|
GeoFenceClient(android.content.Context context) |
限定符和类型 | 方法和说明 |
---|---|
void |
addGeoFence(java.util.ArrayList<com.baidu.geofence.model.DPoint> points,
java.lang.String coorType,
java.lang.String customId)
创建自定义围栏
多边形围栏
|
void |
addGeoFence(com.baidu.geofence.model.DPoint point,
java.lang.String coorType,
float radius,
java.lang.String customId)
创建自定义围栏
圆形围栏
|
void |
addGeoFence(java.lang.String keyword,
java.lang.String customId)
创建行政区划围栏
|
void |
addGeoFence(java.lang.String keyword,
java.lang.String poiType,
com.baidu.geofence.model.DPoint point,
java.lang.String coorType,
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米,暂时不支持自定义围栏半径
|
void |
clear() |
void |
createPendingIntent(java.lang.String action) |
java.util.List<GeoFence> |
getAllGeoFence()
获取所有已经创建的地理围栏
返回:
所有已经创建的地理围栏
|
static android.os.Handler |
getHandlerInstance() |
void |
isHighAccuracyLoc(boolean isHigh)
是否在即将触发侦听行为时设置定位模式为高精度定位模式,
以便及时触发侦听行为
|
boolean |
isPause()
地理围栏是否已经暂停
返回:
地理围栏是否处于暂停状态
|
void |
onReceiveLocation(BDLocation location)
定位请求回调函数
|
void |
pauseGeoFence()
暂停地理围栏
暂停地理围栏的监听、同时地理围栏内部的定位也会停止
注意:通过setGeoFenceAble接口设置为false的围栏不会重新生效
|
void |
removeGeoFence()
移除所有地理围栏
|
boolean |
removeGeoFence(GeoFence geoFence)
移除指定的geofence
当要移除所有围栏时可以使用GeoFenceClient.removeGeoFence()方法 当要销毁GeoFneceClient时,需要调用一次 GeoFenceClient.removeGeoFence()方法,确保所有围栏已移除
|
void |
resumeGeoFence()
恢复地理围栏
恢复地理围栏的监听、同时地理围栏内部的定位也会重新开始定位
|
void |
setActivateAction(int action)
设置当前创建的围栏的触发行为
|
void |
setGeoFenceAble(java.lang.String fenceId,
boolean able)
设置围栏是否生效
|
void |
setGeoFenceListener(GeoFenceListener geoFenceListener)
设置地理围栏的回调
|
void |
setStayTime(int interval)
当设置了在围栏内停留的侦听行为,可以通过这个方法设置停留时长,单位秒,默认停留时长为10分钟
|
void |
setTriggerCount(int in,
int out,
int stay)
设置进入围栏、离开围栏、在围栏内停留三种侦听行为的触发次数
|
onConnectHotSpotMessage, onLocDiagnosticMessage, onReceiveVdrLocation
public static final int GEOFENCE_IN
public static final int GEOFENCE_OUT
public static final int GEOFENCE_STAYED
public static final int GEOFENCE_IN_OUT
public static final int GEOFENCE_IN_STAYED
public static final int GEOFENCE_OUT_STAYED
public static final int GEOFENCE_IN_OUT_STAYED
public static final java.lang.String GCJ02
public static final java.lang.String WGS84
public static final java.lang.String BD09LL
public static final java.lang.String BD09MC
public static android.os.Handler getHandlerInstance()
public void isHighAccuracyLoc(boolean isHigh)
isHigh
- true:允许 false:不允许public void addGeoFence(com.baidu.geofence.model.DPoint point, java.lang.String coorType, float radius, java.lang.String customId)
圆形围栏
point
- - 围栏中心点坐标coorType
- - 围栏中心点坐标系类型radius
- - 围栏半径customId
- - 自定义的围栏标识public void addGeoFence(java.util.ArrayList<com.baidu.geofence.model.DPoint> points, java.lang.String coorType, java.lang.String customId)
多边形围栏
points
- - 多边形的边界点, 必须大于2个点coorType
- - 多边形的边界点坐标系类型customId
- - 自定义的围栏标识public void addGeoFence(java.lang.String keyword, java.lang.String poiType, com.baidu.geofence.model.DPoint point, java.lang.String coorType, float aroundRadius, int size, java.lang.String customId)
根据周边创建围栏
注意:通过此方法创建的围栏半径全部为200米,暂时不支持自定义围栏半径
keyword
- - 关键字, 例如:麦当劳poiType
- - poi类型,例如:餐饮point
- - 中心点坐标coorType
- - 中心点坐标系类型aroundRadius
- - 周边半径,取值范围[1-50000]size
- - 最多创建的围栏数目, 最大25个customId
- - 自定义的围栏标识public void addGeoFence(java.lang.String keyword, java.lang.String poiType, java.lang.String city, int size, java.lang.String customId)
根据关键字创建围栏
注意:通过此方法创建的围栏半径全部为1000米,暂时不支持自定义围栏半径
keyword
- - POI关键字, 例如:百度大厦poiType
- - POI类型,例如:写字楼city
- - POI所在的城市名称, 例如:北京size
- - 最大创建的围栏数目,取值范围[1-25]customId
- - 自定义的围栏标识public void addGeoFence(java.lang.String keyword, java.lang.String customId)
keyword
- - 关键字customId
- - 自定义的围栏标识public void removeGeoFence()
public boolean removeGeoFence(GeoFence geoFence)
当要移除所有围栏时可以使用GeoFenceClient.removeGeoFence()方法 当要销毁GeoFneceClient时,需要调用一次 GeoFenceClient.removeGeoFence()方法,确保所有围栏已移除
geoFence
- - 要移除的geofence
返回:
是否移除成功public java.util.List<GeoFence> getAllGeoFence()
返回:
所有已经创建的地理围栏
public void setActivateAction(int action)
public void setStayTime(int interval)
interval,单位秒
- public void setTriggerCount(int in, int out, int stay)
in
- 进入围栏的触发次数,类型为int,必须是>=0out
- 离开围栏的触发次数,类型为int,必须是>=0stay
- 在围栏内停留的触发次数,类型为int,必须是>=0public void setGeoFenceListener(GeoFenceListener geoFenceListener)
public void setGeoFenceAble(java.lang.String fenceId, boolean able)
fenceId
- - 需要改变的地理围栏的fenceIdable
- - 是否生效,true:生效;false:不生效, 默认:truepublic void pauseGeoFence()
暂停地理围栏的监听、同时地理围栏内部的定位也会停止
注意:通过setGeoFenceAble接口设置为false的围栏不会重新生效
public void resumeGeoFence()
恢复地理围栏的监听、同时地理围栏内部的定位也会重新开始定位
public boolean isPause()
返回:
地理围栏是否处于暂停状态
public void createPendingIntent(java.lang.String action)
public void onReceiveLocation(BDLocation location)
BDAbstractLocationListener
onReceiveLocation
在类中 BDAbstractLocationListener
location
- 定位结果public void clear()
clear
在接口中 com.baidu.geofence.network.StatisticsCallCount.CallBack