Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java geoNear返回不正确的距离_Java_Mongodb_Geospatial - Fatal编程技术网

Java geoNear返回不正确的距离

Java geoNear返回不正确的距离,java,mongodb,geospatial,Java,Mongodb,Geospatial,我正在Java中使用mongodb的geo功能,在运行命令“geoNear”时遇到以下问题: 鉴于: 包含GeoJSON对象的名为“GEOENTITIES”的集合 此集合使用Jongo使用Java代码编制索引: collection.ensureIndex("{ coordinates : '2dsphere' }"); 示例中名为“A”的文档存在,坐标等于[48.0,9.0] 执行时: {geoNear: 'GEOENTITIES', near: [48.0,9.1], spherical:

我正在Java中使用mongodb的geo功能,在运行命令“geoNear”时遇到以下问题:

鉴于:

包含GeoJSON对象的名为“GEOENTITIES”的集合 此集合使用Jongo使用Java代码编制索引:

collection.ensureIndex("{ coordinates : '2dsphere' }");
示例中名为“A”的文档存在,坐标等于[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公里,而计算出来的距离是7.46公里?
我想我做错了什么,但不知道是什么,也许有更多的人可以帮忙?

交换坐标。你需要长时间,拉特:

MongoDB 2.4中类地球球体的默认基准是WGS84。坐标轴顺序为经度、纬度


交换你的坐标。你需要长时间,拉特:

MongoDB 2.4中类地球球体的默认基准是WGS84。坐标轴顺序为经度、纬度


真可耻,我发现了我的错误。。。检查结果时,我在网站上反转了lat/long

正确的距离是MongoDB给出的,所以一切正常

再次抱歉,感谢A.Jesse Jiryu Davis的帮助:


编辑:只需查看您编辑的答案,我会验证它,再次感谢。

真为我感到羞耻,我发现了我的错误。。。检查结果时,我在网站上反转了lat/long

正确的距离是MongoDB给出的,所以一切正常

再次抱歉,感谢A.Jesse Jiryu Davis的帮助:


编辑:只需查看您编辑的答案,我会验证它,再次感谢。

差异是因为我在命令中添加了距离参数,地球半径以公里为单位。但是去掉这个参数会得到以下结果:0.0017453293495129868。所以和你不一样,这是有疑问的,我明天会对此进行更多的调查。谢谢你的回复。对不起,在你的代码中没有看到距离参数。你的结果很奇怪,它应该以公里为单位,而不是以半径为单位,对吗?哈,只需将插入中的第二个坐标更改为正确的值,而不是哦,我误解了你-我认为你的文档坐标和你的搜索项具有相同的坐标。我将编辑我的答案。差异是因为我在命令中添加了距离参数,地球半径以公里为单位。但是去掉这个参数会得到以下结果:0.0017453293495129868。所以和你不一样,这是有疑问的,我明天会对此进行更多的调查。谢谢你的回复。对不起,在你的代码中没有看到距离参数。你的结果很奇怪,它应该以公里为单位,而不是以半径为单位,对吗?哈,只需将插入中的第二个坐标更改为正确的值,而不是哦,我误解了你-我认为你的文档坐标和你的搜索项具有相同的坐标。我将编辑我的答案。