地理围栏报警
模块 | 接口名称 | 功能说明 |
---|---|---|
fence | querystatus | 查询监控对象在围栏内或外 |
querystatusbylocation | 查询坐标在围栏内或外 | |
historyalarm | 查询某监控对象的历史报警信息 | |
batchhistoryalarm | 批量查询某 service 下时间段以内的所有报警信息,用于服务端报警同步 | |
服务端报警推送 | 向开发者服务端推送围栏报警信息 |
\1. 轨迹点的定位时间是否早于围栏创建时间,若如此,此点将不参与围栏计算;
\2. 轨迹点被认为是噪点被去除,从而不参与围栏计算。噪点的判定方法,一方面是轨迹点定位误差是否超过了开发者创建围栏时设置的去噪阈值(denoise),一方面是鹰眼内部的去噪策略,开发者可通过轨迹管理台对比原始轨迹和去噪后轨迹来辨别噪点;
\3. 轨迹点不是真实轨迹,而是开发者构造的虚拟轨迹,围栏在计算时也将忽略这部分轨迹;
\4. 轨迹点上传顺序错乱问题,若定位时间较新的轨迹点已上传并参与围栏计算了,那么此时再上传定位时间较旧的轨迹点,则旧轨迹点不再参与围栏计算。
https://yingyan.baidu.com/api/v3/fence/querystatus //GET请求
参数名 | 参数含义 | 类型 | 是否必填 | 备注 |
---|---|---|---|---|
ak | 用户的AK | string | 是 | |
service_id | service的ID,service 的唯一标识。 | int | 是 | service 的唯一标识。在轨迹管理台创建鹰眼服务时,系统返回的 service_id |
monitored_person | 监控对象的 entity_name | string(128) | 是 | |
fence_ids | 围栏实体的id列表 | “int,int…” | 否 | 若填写,则按照指定的id全部返回围栏状态,此时page_index和page_size不生效。 若不填,则查询监控对象上的所有围栏状态。 fence_ids中最多填写1000个id。 |
page_index | 分页索引 | int(1到2^21-1) | 否 | 默认值:1 与page_size一起计算从第几条结果返回,代表返回第几页 |
page_size | 每页返回数据量 | int(1-5000) | 否 | 默认值:1000 返回结果最大个数与page_index一起计算从第几条结果返回,代表返回结果中每页有几个轨迹点 |
sn | 用户的权限签名,若用户所用AK的校验方式为SN校验时该参数必须。 SN计算规则 | string | 否 |
参数名 | 参数含义 | 类型 | 备注 | |
---|---|---|---|---|
status | 状态码 | int | 返回状态,0为成功 | |
message | 响应信息 | string | 对status的中文描述 | |
total | 总的查询结果数量 | int | ||
size | 本页返回的结果数量 | int | ||
monitored_statuses | 报警的数量 | array | ||
fence_id | 围栏 id | int | ||
monitored_status | 状态 | string | unknown:未知状态in:在围栏内out:在围栏外 |
https://yingyan.baidu.com/api/v3/fence/querystatus?service_id=100000&monitored_person=小明&fence_ids=1,2,3&ak=<用户的'''AK>'''
{
"status": 0,
"message": "成功",
"size": 2,
"monitored_statuses": [
{
"fence_id": 2,
"monitored_status": "in"
},
{
"fence_id": 3,
"monitored_status": "unknown"
}
]
}
适用场景:由于querystatus接口需要保证到轨迹点的顺序性,因此查询状态会有15s的延迟。若开发者对即时性要求甚高,如共享汽车、共享单车落锁时对于是否停在规定围栏内的判断,可使用querystatusbylocation接口:传入当下定位的坐标,则鹰眼将计算该坐标相对于围栏的状态(内/外)。
https://yingyan.baidu.com/api/v3/fence/querystatusbylocation //GET请求
参数名 | 参数含义 | 类型 | 是否必填 | 备注 |
---|---|---|---|---|
ak | 用户的AK | string | 是 | |
service_id | service的ID,service 的唯一标识。 | int | 是 | service 的唯一标识。在轨迹管理台创建鹰眼服务时,系统返回的 service_id |
monitored_person | 监控对象的 entity_name | string(128) | 是 | |
fence_ids | 围栏实体的id列表 | “int,int…” | 否 | 若填写,则按照指定的id全部返回围栏状态,此时page_index和page_size不生效。 若不填,则查询监控对象上的所有围栏状态。 fence_ids中最多填写1000个id。 |
longitude | 经度 | double | 是 | 指定监控对象所在坐标的经度 |
latitude | 纬度 | double | 是 | 指定监控对象所在坐标的纬度 |
coord_type | 坐标类型 | string | 是 | 坐标类型定义如下:wgs84:GPS经纬度 gcj02:国测局经纬度 bd09ll:百度经纬度 |
page_index | 分页索引 | int(1到2^21-1) | 否 | 默认值:1 与page_size一起计算从第几条结果返回,代表返回第几页 |
page_size | 每页返回数据量 | int(1-5000) | 否 | 默认值:1000 返回结果最大个数与page_index一起计算从第几条结果返回,代表返回结果中每页有几个轨迹点 |
sn | 用户的权限签名,若用户所用AK的校验方式为SN校验时该参数必须。 SN计算规则 | string | 否 |
参数名 | 参数含义 | 类型 | 备注 | |
---|---|---|---|---|
status | 状态码 | int | 返回状态,0为成功 | |
message | 响应信息 | string | 对status的中文描述 | |
total | 总的查询结果数量 | int | ||
size | 本页返回的结果数量 | int | ||
monitored_statuses | 报警的数量 | array | ||
fence_id | 围栏 id | int | ||
monitored_status | 状态 | string | unknown:未知状态in:在围栏内out:在围栏外 |
https://yingyan.baidu.com/api/v3/fence/querystatusbylocation?service_id=100000&monitored_person=小明&fence_ids=1,2,3&longitude=116.334129&latitude=40.010939&coord_type=bd09ll&ak=<用户的'''AK>'''
{
"status": 0,
"message": "成功",
"size": 2,
"monitored_statuses": [
{
"fence_id": 2,
"monitored_status": "in"
},
{
"fence_id": 3,
"monitored_status": "unknown"
}
]
}
https://yingyan.baidu.com/api/v3/fence/historyalarm //GET请求
参数名 | 参数含义 | 类型 | 是否必填 | 备注 |
---|---|---|---|---|
ak | 用户的AK | string | 是 | |
service_id | service的ID,service 的唯一标识。 | int | 是 | 在轨迹管理台创建鹰眼服务时,系统返回的 service_id |
monitored_person | 监控对象的 entity_name | string(128) | 是 | |
fence_ids | 围栏实体的id列表 | “int,int…” | 否 | 若不填,则查询监控对象所有围栏的报警信息 |
start_time | 开始时间 | UNIX 时间戳 | 否 | 若不填,则返回7天内所有报警信息 |
end_time | 结束时间 | UNIX 时间戳 | 否 | 若不填,则返回7天内所有报警信息 |
coord_type_output | 返回坐标类型 | string | 否 | 默认为 bd09ll。用于控制返回结果的坐标类型可选值如下:bd09ll:百度经纬度gcj02:国测局经纬度注:国外均返回 wgs84 坐标 |
sn | 用户的权限签名,若用户所用AK的校验方式为SN校验时该参数必须。 SN计算规则 | string | 否 |
参数名 | 参数含义 | 类型 | 备注 | |
---|---|---|---|---|
status | 状态码 | int | 返回状态,0为成功 | |
message | 响应信息 | string | 对status的中文描述 | |
size | 返回结果的数量 | int | ||
alarms | 报警的数量 | array | ||
fence_id | 围栏 id,唯一标识符 | int | ||
fence_name | 围栏的名称 | string | ||
monitored_person | 监控对象 | string | ||
action | 触发动作 | string | 可能的返回值:enter:进入围栏exit:离开围栏 | |
alarm_point | 触发围栏报警轨迹点 | |||
longitude | 监控对象触发围栏时的经度 | double | ||
latitude | 监控对象触发围栏时的纬度 | double | ||
radius | 定位精度 | int | 单位:米 | |
coord_type | 返回的坐标类型 | string | 仅在国外区域返回该字段,返回值为:wgs84 | |
loc_time | 围栏实际触发时间,即触发围栏报警的轨迹点的定位时间 | UNIX 时间戳 | 即使触发围栏的轨迹点未实时上传,由于轨迹点中携带了 loc_time,鹰眼仍能根据 loc_time判断围栏实际触发时间。 | |
create_time | 服务端接收到报警信息的时间 | UNIX 时间戳 | 由于鹰眼 API 围栏为服务端围栏,即只有当轨迹点上传鹰眼服务端时,才能进行围栏触发判断。因此服务端接收到报警的时间可能由于轨迹点上传的不及时性,而晚于围栏实际触发时间 loc_time。例如,轨迹点实际触发围栏时间为13:00,但若由于各种原因,轨迹点上传至服务端进行围栏计算的时间为14:00,则该报警的 create_time为14:00。 | |
pre_point | 触发围栏报警轨迹点的上一个轨迹点 | |||
longitude | 监控对象触发围栏时的经度 | double | ||
latitude | 监控对象触发围栏时的纬度 | double | ||
radius | 定位精度 | int | 单位:米 | |
coord_type | 返回的坐标类型 | string | 仅在国外区域返回该字段,返回值为:wgs84 | |
loc_time | 围栏实际触发时间,即触发围栏报警的轨迹点的定位时间 | UNIX 时间戳 | 即使触发围栏的轨迹点未实时上传,由于轨迹点中携带了 loc_time,鹰眼仍能根据 loc_time判断围栏实际触发时间。 | |
create_time | 服务端接收到报警信息的时间 | UNIX 时间戳 | 由于鹰眼 API 围栏为服务端围栏,即只有当轨迹点上传鹰眼服务端时,才能进行围栏触发判断。因此服务端接收到报警的时间可能由于轨迹点上传的不及时性,而晚于围栏实际触发时间 loc_time。例如,轨迹点实际触发围栏时间为13:00,但若由于各种原因,轨迹点上传至服务端进行围栏计算的时间为14:00,则该报警的 create_time为14:00。 |
https://yingyan.baidu.com/api/v3/fence/historyalarm?service_id=127980&monitored_person=小明&fence_ids=1&start_time=1489420800&end_time=1489507200&ak=<用户的AK>
{
"status": 0,
"size": 1,
"message": "成功",
" alarms ": [
{
"fence_id": 1,
"fence_name":"围栏名称",
"monitored_person":"entity1",
"action": "exit",
"alarm_point":{
"longitude":116.2333,
"latitude":43.892,
"radius":27,
"loc_time": 1419388604
"create_time": 1419388609
},
"pre_point":{
"longitude":116.2367,
"latitude":43.894,
"radius":28,
"loc_time": 1419388724
"create_time": 1419388729
}
}
]
}
https://yingyan.baidu.com/api/v3/fence/batchhistoryalarm //GET请求
参数名 | 参数含义 | 类型 | 是否必填 | 备注 |
---|---|---|---|---|
ak | 用户的AK | string | 是 | |
service_id | service的ID,service 的唯一标识。 | int | 是 | 在轨迹管理台创建鹰眼服务时,系统返回的 service_id |
start_time | 开始时间 | UNIX 时间戳 | 是 | 查询的时间是服务端接收到报警的时间,即报警信息的 create_time。例如,轨迹点实际触发围栏时间为13:00,但若由于各种原因,轨迹点上传至服务端进行围栏计算的时间为14:00,则该报警的 create_time为14:00。 |
end_time | 结束时间 | UNIX 时间戳 | 是 | 结束时间需大于开始时间,但不可超过1小时。即每次请求,最多只能同步1个小时时长的报警信息。 |
coord_type_output | 返回坐标类型 | string | 否 | 默认为 bd09ll。用于控制返回结果的坐标类型可选值如下:bd09ll:百度经纬度gcj02:国测局经纬度注:国外均返回 wgs84 坐标 |
page_index | 分页索引 | int(1到2^32-1) | 可选 | 默认值为1。page_index与page_size一起计算从第几条结果返回,代表返回第几页。 |
page_size | 分页大小 | int(1-1000) | 可选 | 默认值为500。page_size与page_index一起计算从第几条结果返回,代表返回结果中每页有几条记录。 |
sn | 用户的权限签名,若用户所用AK的校验方式为SN校验时该参数必须。 SN计算规则 | string | 否 |
参数名 | 参数含义 | 类型 | 备注 | |
---|---|---|---|---|
status | 状态码 | int | 返回状态,0为成功 | |
message | 响应信息 | string | 对status的中文描述 | |
total | 符合条件的总报警数 | int | ||
size | 本页返回的结果条数 | int | ||
alarms | 报警的数量 | array | ||
fence_id | 围栏 id,唯一标识符 | int | ||
fence_name | 围栏的名称 | string | ||
monitored_person | 监控对象 | string | ||
action | 触发动作 | string | 可能的返回值:enter:进入围栏exit:离开围栏 | |
alarm_point | 触发围栏报警轨迹点 | |||
longitude | 监控对象触发围栏时的经度 | double | ||
latitude | 监控对象触发围栏时的纬度 | double | ||
radius | 定位精度 | int | 单位:米 | |
coord_type | 返回的坐标类型 | string | 仅在国外区域返回该字段,返回值为:wgs84 | |
loc_time | 围栏实际触发时间,即触发 围栏报警的轨迹点的定位时间 | UNIX 时间戳 | 即使触发围栏的轨迹点未实时上传,由于轨迹点中携带了 loc_time,鹰眼仍能根据 loc_time判断围栏实际触发时间。 | |
create_time | 服务端接收到报警信息的时间 | UNIX 时间戳 | 由于鹰眼 API 围栏为服务端围栏,即只有当轨迹点上传鹰眼服务端时,才能进行围栏触发判断。因此服务端接收到报警的时间可能由于轨迹点上传的不及时性,而晚于围栏实际触发时间 loc_time。例如,轨迹点实际触发围栏时间为13:00,但若由于各种原因,轨迹点上传至服务端进行围栏计算的时间为14:00,则该报警的 create_time为14:00。 | |
pre_point | 触发围栏报警轨迹点的上一个轨迹点 | |||
longitude | 监控对象触发围栏时的经度 | double | ||
latitude | 监控对象触发围栏时的纬度 | double | ||
radius | 定位精度 | int | 单位:米 | |
coord_type | 返回的坐标类型 | string | 仅在国外区域返回该字段,返回值为:wgs84 | |
loc_time | 围栏实际触发时间,即触发围栏报警的轨迹点的定位时间 | UNIX 时间戳 | 即使触发围栏的轨迹点未实时上传,由于轨迹点中携带了 loc_time,鹰眼仍能根据 loc_time判断围栏实际触发时间。 | |
create_time | 服务端接收到报警信息的时间 | UNIX 时间戳 | 由于鹰眼 API 围栏为服务端围栏,即只有当轨迹点上传鹰眼服务端时,才能进行围栏触发判断。因此服务端接收到报警的时间可能由于轨迹点上传的不及时性,而晚于围栏实际触发时间 loc_time。例如,轨迹点实际触发围栏时间为13:00,但若由于各种原因,轨迹点上传至服务端进行围栏计算的时间为14:00,则该报警的 create_time为14:00。 |
https://yingyan.baidu.com/api/v3/fence/batchhistoryalarm?&service_id=127980&start_time=1489420800&end_time=1489424400&ak=<用户的AK>
{
"status": 0,
"total": 2000,
"size": 500,
"message": "成功",
" alarms ": [
{
"fence_id": 1,
"fence_name":"学校",
"monitored_person":"小明",
"action": "exit",
"alarm_point":{
"longitude":116.2333,
"latitude":43.892,
"radius":27,
"loc_time": 1419388604
"create_time": 1419388609
},
"pre_point":{
"longitude":116.2367,
"latitude":43.894,
"radius":28,
"loc_time": 1419388724
"create_time": 1419388729
}
},
{
"fence_id": 1,
"fence_name":" 学校",
"monitored_person":"小明",
"action": "enter",
"alarm_point":{
"longitude":116.2333,
"latitude":43.892,
"radius":12,
"loc_time": 1419387405,
"create_time": 1419387405
},
"pre_point": {
"longitude":116.2367,
"latitude":43.894,
"radius":15,
"loc_time": 1419387465,
"create_time": 1419387465
}
}
]
}

参数名 | 参数含义 | 类型 | 备注 |
---|---|---|---|
SignId | 请求来源标记 | string | 允许的请求值:baidu_yingyan 用户可以通过获取 这个标志来判断一个http请求是否来自百度鹰眼。 |
Content-Encoding | 消息压缩标记 | string | 允许的请求值:gzip 或 空值 为减少请求量,提高网络传输速度,鹰眼可对请求内容做gzip压缩,此时请求头中将包含该字段。用户在接收到该类型请求时,需要判断Content-Encoding是否为gzip压缩:如果Content-Encoding=gzip,需要对请求体进行解压缩,解压缩之后的内容即为报警推送消息;如果Content-Encoding为空,则无需进行解压缩。 |
参数名 | 参数含义 | 类型 | 备注 | |
---|---|---|---|---|
type | 消息类型 | int | 取值1或者21:当type=1时,校验该URL为有效URL。此时,content为空或不存在。开发者无需对消息内容做任何处理,只需正常返回即可。2:当type=2时,推送报警信息,开发者可取content中的内容做其他业务处理。 | |
service_id | service的唯一标识,当前报警信息所属的鹰眼服务ID | int | 在轨迹管理台创建鹰眼服务时,系统返回的 service_id | |
content | 报警信息数组 | array | 当type为1时,content为空或不存在。该字段为数组格式,数组的每个内容都是一个推送信息。 | |
fence_id | 围栏 id,唯一标识符 | int | 一条推送返回一个报警信息 | |
fence_name | 围栏的名称 | string | ||
monitored_person | 监控对象 | string | 监控对象的entity_name | |
action | 报警触发动作 | string | 可能的请求值:enter:进入围栏exit:离开围栏 | |
alarm_point | 触发围栏报警轨迹点 | |||
longitude | 监控对象触发围栏时的经度 | double | ||
latitude | 监控对象触发围栏时的纬度 | double | ||
radius | 定位点的精度 | int | 单位:米 | |
coord_type | 坐标类型 | string | 国内为百度坐标系:bd09ll;国外均为 wgs84坐标系:wgs84 | |
loc_time | 围栏实际触发时间,即触发围栏报警的轨迹点的定位时间 | UNIX 时间戳 | 即使触发围栏的轨迹点未实时上传,由于轨迹点中携带了 loc_time,鹰眼仍能根据 loc_time判断围栏实际触发时间。 | |
create_time | 服务端接收到报警信息的时间 | UNIX 时间戳 | 由于鹰眼 API 围栏 为服务端围栏,即只有当轨迹点上传鹰眼服务端时,才能进行围栏触发判断。因此服务端接收到报警的时间可能由于轨迹点上传的不及时性,而晚于围栏实际触发时间 loc_time。例如,轨迹点实际触发围栏时间为13:00,但若由于各种原因,轨迹点上传至服务端进行围栏计算的时间为14:00,则该报警的 create_time为14:00。 | |
pre_point | 触发围栏报警轨迹点的上一个轨迹点 | |||
longitude | 监控对象触发围栏时的经度 | double | ||
latitude | 监控对象触发围栏时的纬度 | double | ||
radius | 定位点的精度 | int | 单位:米 | |
coord_type | 坐标类型 | string | 国内为百度坐标系:bd09ll;国外均为wgs84坐标系:wgs84 | |
loc_time | 围栏实际触发时间,即触发围栏报警的轨迹点的定位时间 | UNIX 时间戳 | 即使触发围栏的轨迹点未实时上传,由于轨迹点中携带了 loc_time,鹰眼仍能根据 loc_time判断围栏实际触发时间。 | |
create_time | 服务端接收到报警信息的时间 | UNIX 时间戳 | 由于鹰眼 API 围栏为服务端围栏,即只有当轨迹点上传鹰眼服务端时,才能进行围栏触发判断。因此服务端接收到报警的时间可能由于轨迹点上传的不及时性,而晚于围栏实际触发时间 loc_time。例如,轨迹点实际触发围栏时间为13:00,但若由于各种原因,轨迹点上传至服务端进行围栏计算的时间为14:00,则该报警的 create_time为14:00。 |
参数名 | 参数含义 | 类型 | 备注 |
---|---|---|---|
SignId | 返回值:baidu_yingyan请求来源标记。 | string | 根据该字段识别响应身份,若未返回该字段,则视为URL校验失败,不再对该URL发送推送数据。 |
参数名 | 参数含义 | 类型 | 备注 |
---|---|---|---|
status | 返回状态码 | int | 0或非0值 |
message | 返回信息 | string | 对status的中文描述。 |
完整请求示例 |
---|
请求头 |
"SignId": "baidu_yingyan" |
请求体 |
{ "type":1, "service_id":2741 } |
完整请求示例 |
---|
请求头 |
"SignId": "baidu_yingyan" "Content-Encoding": "gzip" |
请求体(解压缩之后) |
{ "type":2, "service_id": 2741, "content":[ { "fence_id": 1, "fence_name": "A_01", "monitored_person": "A001", "action": "enter", "alarm_point": { "longitude": 113.29251520916, "latitude": 23.45610760748, "radius": 3, "coord_type" : "bd09ll", "loc_time": 1490179579, "create_time": 1490179593 }, "pre_point": { "longitude": 113.20148113236, "latitude": 23.431332045033, "radius": 10, "coord_type" : "bd09ll", "loc_time": 1490179557, "create_time": 1490179569 } } ] } |
完整返回示例 |
---|
返回头 |
"SignId": "baidu_yingyan" |
返回体 |
{ "status":0, "message":"成功" } |
修改于 2022-08-08 02:31:42