[英]Fiware orion subscription with georel expression in condition
我的猎户座数据库中有一个实体:
{
"id"=>"User-121",
"type"=>"User",
"location"=>{
"type"=>"geo:point",
"value"=>"59.851484, 30.199463"
},
"time"=>{"type"=>"none", "value"=>222909, "metadata"=>{}}
}
此外,我对该实体有 3 个订阅,它们在条件表达式中具有相同的坐标:
- 应在实体定位时触发,距离参考点至少 100 米。
{
"id"=>"...",
"expires"=>"...",
"status"=>"active",
"subject"=>{
"entities"=>[{"id"=>"User-121", "idPattern"=>"", "type"=>"User"}],
"condition"=>{
"attributes"=>["location", "time"],
"expression"=>{
"q"=>"",
"geometry"=>"point",
"coords"=>"59.851484, 30.199463",
"georel"=>"near;minDistance:100"}
}
},
"notification"=>{
"callback"=>"http://callback",
"attributes"=>["time"]
}
}
- 当实体位于距离参考点最多 100 米时应触发
{
"id"=>"...",
"expires"=>"...",
"status"=>"active",
"subject"=>{
"entities"=>[{"id"=>"User-121", "idPattern"=>"", "type"=>"User"}],
"condition"=>{
"attributes"=>["location", "time"],
"expression"=>{
"q"=>"",
"geometry"=>"point",
"coords"=>"59.851484, 30.199463",
"georel"=>"near;maxDistance:100"}
}
},
"notification"=>{
"callback"=>"http://callback",
"attributes"=>["time"]
}
},
- 当实体位于参考点(具有相同坐标)时应触发
{
"id"=>"...",
"expires"=>"...",
"status"=>"active",
"subject"=>{
"entities"=>[{"id"=>"User-121", "idPattern"=>"", "type"=>"User"}],
"condition"=>{
"attributes"=>["location", "time"],
"expression"=>{
"q"=>"",
"geometry"=>"point",
"coords"=>"59.851484, 30.199463",
"georel"=>"equals"}
}
},
"notification"=>{
"callback"=>"http://callback",
"attributes"=>["time"]
}
}
问题是每次我更新实体时,所有订阅都会发送通知。 它甚至不依赖于实体的坐标值。 无论坐标是什么,我总是收到 3 条更新通知。
我究竟做错了什么 ?
Orion Context Broker 版本为0.28.0 (git 版本:5c1afdb3dd748580f10e1809f82462d83d2a17d4)
NGSIv2 订阅中的地理位置功能尚未实现(在 Orion 0.28.0)。 请注意,NGSIv2 还处于 beta 状态,有时规范(其中geometry
、 georel
和coords
被定义为expression
一部分)是实现的一个进步。
有一个关于此的 github 问题,您可以订阅该问题以了解此功能何时实施。
编辑:NGSIv2 订阅中的地理定位功能将在 Orion 1.3.0 中可用(将于 8 月底或 9 月初发布)。 如果您不想等待,请注意该功能在开发分支(以及相关的 Docker)中也可用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.