我正在使用Java中的mongodb的geo功能,我正面临运行命令'geoNear'的以下问题:
假设:
此集合使用Java代码(使用Jongo)编制索引:
collection.ensureIndex("{ coordinates : '2dsphere' }");
存在一个坐标等于[48.0,9.0]
执行时:
{geoNear: 'GEOENTITIES', near: [48.0,9.1], spherical: true, num: 5, distanceMultiplier: 6371}
然后:
我有命令结果:
{ "dis" : 11.11949328574724 , "obj" : { "coordinates" : [ 48.0 , 9.0] , "_id" : { "$oid" : "51a62a5485878b1ceca38ab3"} , "name" : "Toto"}}
为什么距离是11.11(公里),而计算出来的距离是http://williams.best.vwh.net/gccalc.htm - 例如 - 是7.46? 我想我做错了什么但看不到什么,也许有更多实验的人可以提供帮助?
答案 0 :(得分:3)
交换坐标。你需要(长,纬度):
MongoDB 2.4中类似地球的球体的默认基准是WGS84。坐标轴顺序是经度,纬度。
答案 1 :(得分:0)
对我感到羞耻,我发现了我的错误......在检查结果时,我在网站上反转了lat / long。
正确的距离是MongoDB给出的距离,所以一切都好。
再次抱歉,感谢A. Jesse Jiryu Davis的帮助:)
编辑:只看到你编辑过的答案,我会对它进行评估,再次感谢。