[英]Orion Context Broker - Query By Location
跟隨Orion v0.24中的查詢。
正如之前的相關問題所指出的,文檔是真正實現的。 是否已經實現了'幾何'和'坐標'的位置過濾?
任何人都可以提供查詢示例。 我不明白什么/如何傳遞坐標。 來自docs:
坐標列表(由;分隔)根據幾何圖形進行解釋
我嘗試了以下不成功的方法:
//Call 1
http://<some-ip>:<some-ip>/v2/entities/?type=Test&geometry=polygon&coords=35.46064,-9.93164;35.46066,3.07617;44.33956,3.07617;44.33955,-9.93164
//Result
{
"error": "BadRequest",
"description": "invalid character in URI parameter"
}
我嘗試了類似的組合,使用encodeURIComponent過濾特殊字符,但沒有。
獵戶座中的實體具有以下屬性'coordenadas':
{
"id": "Test.1",
"type": "Test",
"coordenadas": {
"type": "geo:point",
"value": "43.7723705, -7.6784461"
},
"fecha": 1440108000000,
"regiones": [
"ES"
]
}
編輯03/11/2015
我們已將Orion更新為版本0.25,其中幾何查詢預計將使用NGSI v2實現。
打電話給
http://<some-ip>:<some-ip>/version
報告我們更新已正確完成:
<orion>
<version>0.25.0</version>
<uptime>0 d, 2 h, 23 m, 17 s</uptime>
<git_hash>a8cf800d4e9fdd7b4293a886490c40309a5bb58c</git_hash>
<compile_time>Mon Nov 2 09:13:05 CET 2015</compile_time>
<compiled_by>fermin</compiled_by>
<compiled_in>centollo</compiled_in>
</orion>
盡管如此,查詢似乎無法正常工作。 按照上面使用的示例,像這樣的幾何查詢應該返回一個實體:
http://<some-ip>:<some-ip>/v2/entities?type=Test&geometry=circle;radius:6000&coords=43.7723705,-7.6784461
不幸的是,響應是一個空數組。
我們還嘗試使用多邊形進行幾何查詢:
http://<some-ip>:<some-ip>/v2/entities?type=Test&geometry=polygon&coords=40.199854,-4.045715;40.643135,-4.045715;40.643135,-3.350830;40.199854,-3.350830
同樣,響應是空數組。
看起來實體的位置屬性“coordenadas”沒有被檢測到。 所以我嘗試創建一個新實體來查看問題是否是在更新到v0.25之前創建的所有實體,但它不起作用。
編輯04/11/2015
我們為實體創建而構建的請求如下:
POST /v2/entities/ HTTP/1.1
Accept: application/json, application/*+json
Content-Type: application/json;charset=UTF-8
User-Agent: Java/1.7.0_71
Host: 127.0.0.1:1026
Connection: keep-alive
Content-Length: 379
{
"id":"Test.1",
"type":"Test",
"nombreEspecie":"especietest",
"coordenadas":{
"type":"geo:point",
"value":"3.21456, 41.2136"
},
"fecha":1446624226632,
"gradoSeguridad":1,
"palabrasClave":"test, test, test",
"comentarios":"comentarios, comentarios",
"nombreImagen":"ImagenTest",
"alertas":[],
"regiones":[],
"validacionesPositivas":0,
"validacionesNegativas":0,
"validacionesDenunciadas":0
}
正如您所建議的那樣,我們在一個新的,干凈的Orion實例中測試了實體創建。 創建正確完成,但位置查詢仍然無法正常工作...
示例是正確的,但在Orion 0.24.0或任何先前版本中尚未提供該功能。 它已經在開發分支中實現(請參閱github.com存儲庫中的相應問題 ,現已關閉)。 它將在2015年9月底之前的0.24.0版本中提供,版本為0.24.1或0.25.0(編號時尚未確定)。
編輯: Orion 0.25.0實現geometry
和coord
URL參數,但位置定義仍然基於NGSIv1機制 。 因此,不使用geo:point
而是使用名為location
的元數據來標記關聯的屬性是位置:
"coordenadas": {
"location": {
"type": "string",
"value": "WGS84"
},
"type": "geo:point",
"value": "3.21456, 41.2136"
}
當我們在NGSIv2實施中取得進展時,這種“不對稱”(即用於定義位置但NGSIv2地理查詢支持的NGSIv1)將消失(考慮到在Orion 0.25.0中,NGSIv2仍處於測試狀態)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.