mongodb错误:';经度/纬度超出范围
当我运行mongoDB查询时,得到的错误是“经度/纬度超出界限” 以下是我创建的查询:mongodb错误:';经度/纬度超出范围,mongodb,Mongodb,当我运行mongoDB查询时,得到的错误是“经度/纬度超出界限” 以下是我创建的查询: DBObject query = new BasicDBObject("loc", new BasicDBObject("$geoWithin", new BasicDBObject("$geometry", new BasicDBObject("type","Polygon").appen
DBObject query = new BasicDBObject("loc",
new BasicDBObject("$geoWithin",
new BasicDBObject("$geometry",
new BasicDBObject("type","Polygon").append("coordinates", polygon))));
以下是我的mongoDB查询:
db.collection_name.find(
{ "loc" :
{ "$geoWithin" :
{ "$geometry" :
{ "type" : "Polygon" , "coordinates" : [ [ [ 44.67047 , 136.01075] , [ 77.05318 , 33.59619] , [ 13.04135 , -22.31323]]]
}
}
}
}
)
我得到以下错误输出:
{
"code" : {
"_bsontype" : "Int32",
"value" : 2
},
"codeName" : "BadValue",
"errmsg" : "longitude/latitude is out of bounds, lng: 44.6705 lat: 136.011",
"message" : "longitude/latitude is out of bounds, lng: 44.6705 lat: 136.011",
"name" : "MongoError",
"ok" : {
"_bsontype" : "Double",
"value" : 0
},
我怎样才能解决这个问题?谢谢你的回答
“经度/纬度超出范围,lng:44.6705纬度:136.011”
您需要按照经度然后纬度的顺序指定。以度为单位的纬度有效范围是-90
和+90
。您的纬度值136.011
超出范围
“循环未关闭”
若要为指定地理空间查询,需要关闭循环以创建多边形形状
例如:
{
type: "Polygon",
coordinates: [ [ [ 0 , 0 ] , [ 3 , 6 ] , [ 6 , 1 ] , [ 0 , 0 ] ] ]
}
请注意,第一个和最后一个坐标是匹配的,以便闭合多边形形状
以上假设您指的是 这些是无效的坐标。使用错误提示的正确坐标。我希望你不要把lat和long混为一谈。尝试切换lat和long的值。@Veeram当我使用like it时,我会得到相同的错误。当使用
db.collection\u name.find({“loc”:{“$geoin”:{“$geometry”:{“type”:“Polygon”,“coordinates”:[[136.01075,44.67047],[77.05318,33.59619],[13.04135,-22.31323]]}}
?@Veeram否,我得到的错误是“循环未关闭”