# 八、围栏

# (一)围栏与围栏事件

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

# (二)设置围栏

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

//markerFeature的更新需由其所属的集合对象markerSet来操作
markerSet?.updateMarker(marker: markerFeature!, callback: { obj, errorMessage in
    //成功
    if (obj != nil) {
        //更新markerFeature信息成功(设置围栏成功)
    }
    //失败
    if (errorMessage != nil) {
        let errorCode = errorMessage?.code //错误码
        let errorMsg = errorMessage?.message //错误信息
    }
})
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

# (三)围栏事件[FenceEvent]

# 1、获取围栏事件

let organization = Cellsys.shared.organization//初始化成功之后,可随时获取组织对象。
organization.queryFenceEvents { obj, errorMessage in
    //成功
    if (obj != nil) {
        let fenceEvents = obj?.data as? [FenceEvent]
    }
    //失败
    if (errorMessage != nil) {
        let errorCode = errorMessage?.code //错误码
        let errorMsg = errorMessage?.message //错误信息
    }
}
1
2
3
4
5
6
7
8
9
10
11
12

# 2、围栏事件信息

//围栏触发类型(进入/离开)
let fenceTriggerType = fenceEvent.triggerType
//围栏触发人
fenceEvent.triggerMember.name//触发人名称
let location = fenceEvent.locationOnTriggered//触发人定位信息
/*查询具体的触发人信息*/
fenceEvent?.queryTriggerDetail(callback: { obj, errorMessage in
    //成功
    if (obj != nil) {
        let memberFeatures = obj?.data as? [MemberFeature]
    }
    //失败
    if (errorMessage != nil) {
        let errorCode = errorMessage?.code //错误码
        let errorMsg = errorMessage?.message //错误信息
    }
})

//围栏信息
fenceEvent.mapFeatureOfFence.name//围栏名称
let geometry = fenceEvent.fenceGeometry//围栏坐标信息
/*查询具体的围栏信息*/
fenceEvent?.queryMapFeatureDeatil(callback: { obj, errorMessage in
    //成功
    if (obj != nil) {
        let mapFeatures = obj?.data as? [MapFeature]
    }
    //失败
    if (errorMessage != nil) {
        let errorCode = errorMessage?.code //错误码
        let errorMsg = errorMessage?.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