MongoDB中的计算距离不准确

MongoDB中的计算距离不准确,mongodb,grails,geolocation,gmongo,Mongodb,Grails,Geolocation,Gmongo,我正试图在我的数据库上构建一个空间查询(以便使用geoNear查找所有结果) 它是有效的,只是计算出的距离一点也不精确。因此,以下是我得到的: > db.status.find() { "_id":NumberLong(5), "location":{ "latitude":48.8947767, "longitudes":2.103352099999997 } } 我有一个索引: > db.status.getIndexes

我正试图在我的数据库上构建一个空间查询(以便使用geoNear查找所有结果)

它是有效的,只是计算出的距离一点也不精确。因此,以下是我得到的:

> db.status.find()
{
    "_id":NumberLong(5),
    "location":{
        "latitude":48.8947767,
        "longitudes":2.103352099999997
    }
}
我有一个索引:

> db.status.getIndexes()
[
    {
        "v" : 1,
        "key" : {
            "_id" : 1
        },
        "ns" : "aroundb.status",
        "name" : "_id_"
    },
    {
        "v" : 1,
        "key" : {
            "location" : "2dsphere"
        },
        "ns" : "aroundb.status",
        "name" : "location_2dsphere"
    }
]
我的问题是:

db.runCommand({ geoNear:"status",near: [ 48.8947767, 2.093352099999997], spherical:true, distanceMultiplier:6371} )
结果是:

{
"ns" : "aroundb.status",
"results" : [
    {
        "dis" : 1.1119514223177513,
        "obj" : {
            "_id" : NumberLong(5),
            "location" : {
                "latitude" : 48.8947767,
                "longitudes" : 2.103352099999997
            }

        }
    }
],
"stats" : {
    "time" : 14,
    "nscanned" : 1,
    "avgDistance" : 1.1119514223177513,
    "maxDistance" : 1.1119514223177513
},
"ok" : 1
}

如您所见,计算的距离(乘以地球半径以公里为单位计算)为1.1119514223177513km

如果我在网站上计算距离,计算距离为0.731250849264875km

使用距离也为0.731250849264875km


所以,问题是:我做错了什么?

MongoDB需要
[经度,纬度]
格式的坐标。在您的情况下,它是
[经度,纬度]
,如果您标记字段以标记顺序与预期不同,这并不重要:

"location":{
   "latitude":48.8947767,
   "longitudes":2.103352099999997
}

仍然被解释为
[long:48.8947767,lat:2.1033520999997]
MongoDB需要
[经度,纬度]
格式的坐标。在您的情况下,它是
[经度]
,如果标记顺序的字段与预期的不同,这并不重要:

"location":{
   "latitude":48.8947767,
   "longitudes":2.103352099999997
}

仍然被解释为
[long:48.8947767,lat:2.1033520999997]

检查我对类似问题的回答:检查我对类似问题的回答: