我有一个连接到Mongo数据库的Spring应用程序,正在使用以下代码从地球某个点半径内的某个集合获取文档:

"query" : {
    "location" : {
        "$geoWithin" : {
            "$centerSphere" : [
                [
                    37.33240731,
                    -122.03046898
                ],
                0.0018924144710663706
            ]
        }
    }
}

通常这是可行的(在英国的位置),但是由于某些原因,这些坐标(在美国)给出了这个错误:
'{ "ok" : 0.0, "errmsg" : "longitude/latitude is out of bounds, lng: 37.3323
lat: -122.031", "code" : 2 }

这是什么原因?

最佳答案

在使用spring数据mongodb时遇到了同样的问题,非常愚蠢的错误是交换lat和long值。

    Query query = new BasicQuery(
            "{ location: { $geoWithin: { $centerSphere: [ [
                                 -122.031,
                                  37.3323
                    "+ rangeInMiles / 3963.2 +
                    " ] } }, visible : true, status : 'ACTIVE' }"
    );

关于spring - Mongo说坐标超出范围,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37424887/

10-13 22:52