# 围栏

# 围栏与围栏事件

门户系统允许将地图要素设置为电子围栏。根据设置围栏触发类型(进入触发/离开触发),当由成员进入/离开电子围栏时,就会生成围栏事件。

围栏的常用属性如下:

属性名 值类型 属性描述
bufferDistance Number 围栏的缓冲区域
radius Number 围栏半径
triggerType String 围栏的触发类型,离开围栏或进入围栏
enable Boolean 是否启用围栏
triggerTime DateTime 围栏事件触发时间
locationOnTriggered Location 围栏事件触发地点

常用方法如下:

方法名 返回类型 方法描述
queryTriggerDetail QueryResult 查询事件触发人信息
queryMapFeatureDeatil QueryResult 查询围栏的地图要素信息

# 设置围栏

let fenceInfo = markerFeature.fenceInfo;
fenceInfo.enable = true;//启用围栏
fenceInfo.radius = 10;//围栏半径
fenceInfo.triggerType = FenceTriggerType.In;//围栏触发类型
1
2
3
4

# 围栏事件[FenceEvent]

# 获取围栏事件

let organization = Cellsys.organization;//初始化成功之后,可随时获取组织对象。
organization.queryFenceEvents()
    .then(queryResult => {
        let pageInfo = queryResult.pageInfo;//页码信息
        let currentPage = pageInfo.pageNo;//当前的页码
        let pageSize = pageInfo.pageSize;//每页数量
        let totalPage = pageInfo.totalPage;//总页数
        let totalCount = pageInfo.totalCount;//数据总量
        /*返回的围栏事件数据*/
        let fenceEvents = queryResult.data; //围栏事件数据,即Array<FenceEvent>
    })
    .catch(error => {
        console.log(error.code); //错误码
        console.log(error.message); //错误信息
    })

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

# 围栏事件信息

//围栏触发类型(进入/离开)
let fenceTriggerType = fenceEvent.triggerType;
//围栏触发人
fenceEvent.triggerMember.name;//触发人名称
let location = fenceEvent.locationOnTriggered;//触发人定位信息
/*查询具体的触发人信息*/
fenceEvent.queryTriggerDetail()
    .then(queryResult => {
        let pageInfo = queryResult.pageInfo;//页码信息
        let currentPage = pageInfo.pageNo;//当前的页码
        let pageSize = pageInfo.pageSize;//每页数量
        let totalPage = pageInfo.totalPage;//总页数
        let totalCount = pageInfo.totalCount;//数据总量
        /*返回的成员对象集合*/
        let memberFeature = queryResult.data[0]; //queryResult.data为成员对象集合,即Array<MemberFeature>
    })
    .catch(error => {
        console.log(error.code); //错误码
        console.log(error.message); //错误信息
    })


//围栏信息
fenceEvent.mapFeatureOfFence.name;//围栏名称
let geometry = fenceEvent.fenceGeometry;//围栏坐标信息
/*查询具体的围栏信息*/
fenceEvent.queryMapFeatureDeatil()
    .then(queryResult => {
        let pageInfo = queryResult.pageInfo;//页码信息
        let currentPage = pageInfo.pageNo;//当前的页码
        let pageSize = pageInfo.pageSize;//每页数量
        let totalPage = pageInfo.totalPage;//总页数
        let totalCount = pageInfo.totalCount;//数据总量
        /*返回对应的地图要素集合*/
        let mapFeature = queryResult.data[0]; //mapFeature为不同的地图要素对象,标记-MarkerFeature;路线-LineFeature;区域-AreaFeature
    })
    .catch(error => {
        console.log(error.code); //错误码
        console.log(error.message); //错误信息
    })

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41