我知道您可以使用地理定位过滤器queryContext
Orion。
是否可以在订阅方案中进行类似的过滤?换句话说,当possition属性在预定义区域内时,是否可以通知上下文实体的属性更改 ?
例如:
感谢。
答案 0 :(得分:1)
NGSI协议考虑了指定订阅限制的可能性。因此subscribeContext操作支持订阅上的FIWARE :: Location限制。
所以答案是:是的。
使用POST queryContext创建一个实体:
{
"contextElements": [
{
"type": "City",
"isPattern": "false",
"id": "Madrid",
"attributes": [
{
"name": "position",
"type": "coords",
"value": "1, 1",
"metadatas": [
{
"name": "location",
"type": "string",
"value": "WGS84"
}
]
},
{
"name": "a1",
"type": "string",
"value": "v1"
}
]
}
],
"updateAction": "APPEND"
}
使用POST subscribeContext订阅区域中的更改:
{
"entities": [
{
"type": "City",
"isPattern": "true",
"id": ".*"
}
],
"attributes": [
"a1"
],
"reference": "http://<host>:<port>/notify",
"duration": "P1M",
"notifyConditions": [
{
"type": "ONCHANGE",
"condValues": [
"a1"
]
}
],
"restriction": {
"scopes": [
{
"type" : "FIWARE::Location",
"value" : {
"polygon": {
"vertices": [
{
"latitude": "0",
"longitude": "0"
},
{
"latitude": "0",
"longitude": "6"
},
{
"latitude": "6",
"longitude": "6"
},
{
"latitude": "6",
"longitude": "0"
}
]
}
}
}
]
}
}
然后只需更新实体的 a1 的值,看看会发生什么。