Я тестирую геоориентированные запросы, объяснение здесь, и когда я использую положительные значения LatLng (середина Индийского океана, Китай, Австралия, запад Канады и т. д.), брокер контекста возвращает внутреннюю ошибку сервера, например:
Этот запрос: myorion.local:1026/NGSI10/queryContext?offset=0&limit=100&details=on :
{
"restriction":{
"scopes":[
{
"type":"FIWARE_Location",
"value":{
"polygon":{
"vertices":[
{"latitude":2.811371193331,"longitude":130.078061},
{"latitude":13.031027211328,"longitude":130.078061},
{"latitude":13.031027211328,"longitude":140.24472766667},
{"latitude":2.811371193331,"longitude":140.24472766667}
]
}
}
}
]
},
"entities":[
{"id":".*","type":"Arduino","isPattern":"true"}
],
"attributes":[]
}
Возвращает:
{
"errorCode" : {
"code" : "500",
"reasonPhrase" : "Internal Server Error",
"details" : "collection: orion.entities - query(): { query: { $or: [ { _id.id: /.*/, _id.type: "Arduino" } ], _id.servicePath: { $exists: false }, location.coords: { $geoWithin: { $geometry: { type: "Polygon", coordinates: [ [ [ 2.811371193331, 130.078061 ], [ 13.031027211328, 130.078061 ], [ 13.031027211328, 140.24472766667 ], [ 2.811371193331, 140.24472766667 ], [ 2.811371193331, 130.078061 ] ] ] } } } }, orderby: { creDate: 1 } } - exception: count fails:{ errmsg: "exception: bad geo query", code: 2, ok: 0.0 }"
}
}
Та же проблема возникает для Circle:
{
"restriction":{
"scopes":[
{
"type":"FIWARE_Location",
"value":{
"circle":{
"centerLatitude":0.60024334316097,
"centerLongitude":102.58133563829,
"radius":610000
}
}
}
]
},
"entities":[
{"id":".*","type":"Arduino","isPattern":"true"}
],
"attributes":[]
}
Вернется:
{
"errorCode" : {
"code" : "500",
"reasonPhrase" : "Internal Server Error",
"details" : "collection: orion.entities - query(): { query: { $or: [{ _id.id: /.*/, _id.type: "Arduino" } ], _id.servicePath: { $exists: false }, location.coords: { $geoWithin: { $centerSphere: [ [ 0.6002433431609701, 102.58133563829 ], 0.0957463506513891 ] } } }, orderby: { creDate: 1 } } - exception: count fails:{ errmsg: "exception: bad geo query", code: 2, ok: 0.0 }"
}
}
Я почти уверен, что это из-за положительных значений, потому что всегда, когда у меня есть положительное значение в значении Lat или Lng, я получаю эту ошибку от Context Broker.
"коллекция: orion.entities - query(): { query: { $or: [{ _id.id: /.*/, _id.type: "Arduino" } ], _id.servicePath: { $exists: false }, location.coords: { $geoWithin: { $centerSphere: [[ 0.6002433431609701, 102.58133563829 ], 0.0957463506513891 ] } } }, orderby: {creDate: 1 } } - exception: count failed: { errmsg: "exception: bad geo запрос", код: 2, хорошо: 0.0}"
- Версия Ориона: 0.14.0
- Версия MongoDB: 2.6.3
- ЦенОС 6.5