Mongo说坐标超出范围

时间:2016-05-24 22:24:19

标签: spring mongodb

我有一个连接到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 }

导致这种情况的原因是什么?

1 个答案:

答案 0 :(得分:1)

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

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