orionDBにエンティティがあります。
{
"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ベータ状態でまだあることに注意し、時には仕様は(geometry
、georel
およびcoords
の一部として定義されるexpression
)歩実装です。
これにはgithubの問題があり、この機能がいつ実装されるかを知るためにサブスクライブできます。
編集:NGSIv2サブスクリプションのジオロケーション機能はOrion 1.3.0で利用可能になります(8月末または9月初めまでにリリースされる予定です)。待ちたくない場合は、開発ブランチ(および関連するDocker)でも機能を利用できることに注意してください。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加