mongodb错误:';经度/纬度超出范围

mongodb错误:';经度/纬度超出范围,mongodb,Mongodb,当我运行mongoDB查询时,得到的错误是“经度/纬度超出界限” 以下是我创建的查询: DBObject query = new BasicDBObject("loc", new BasicDBObject("$geoWithin", new BasicDBObject("$geometry", new BasicDBObject("type","Polygon").appen

当我运行mongoDB查询时,得到的错误是“经度/纬度超出界限”

以下是我创建的查询:

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否,我得到的错误是“循环未关闭”