具有georel表达式的Fiware orion订阅条件

时间:2016-03-17 15:10:57

标签: fiware fiware-orion

我的orion DB中有一个实体:

{
  "id"=>"User-121",
  "type"=>"User",
  "location"=>{
    "type"=>"geo:point", 
    "value"=>"59.851484, 30.199463"
  }, 
  "time"=>{"type"=>"none", "value"=>222909, "metadata"=>{}}
}

此外,我有3个订阅此实体,它在条件表达式中具有相同的坐标:

  
      
  1. 应在实体定位时触发,距离参考点至少100米。
  2.   
{
  "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"]
  }
}
  
      
  1. 当实体位于距离参考点最远100米时,应触发
  2.   
{
  "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"]
  }
},
  
      
  1. 当实体位于参考点(具有相同的坐标)时应触发
  2.   
{
  "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)

1 个答案:

答案 0 :(得分:1)

NGSIv2订阅中的地理位置功能尚未实施(在Orion 0.28.0中)。请注意,NGSIv2尚处于测试状态,有时the specificationgeometrygeorelcoords被定义为expression的一部分)是向前迈出的一步实施。

有关于此的a github issue,您可以订阅以了解此功能的实施时间。

编辑:NGSIv2订阅中的地理位置功能将在Orion 1.3.0中提供(将于8月底或9月初发布)。如果您不想等待,请注意开发分支(以及相关的Docker)中也提供了该功能。