我在地理位置上有一个地理空间索引的商店集合。MongoDB绑定查询:我如何将英里转换为弧度?
我想要做的是给定用户的纬度,纬度和搜索半径(mi),我想返回这些参数中的商店列表。
我在MongoDB文档(http://www.mongodb.org/display/DOCS/Geospatial+Indexing)上看到下面的例子,但它看起来像距离是弧度。
center = [50, 50]
radius = 10
db.places.find({"loc" : {"$within" : {"$center" : [center, radius]}}})
那么,公里转换为弧度的公式是什么?
解决方案 在mongodb用户真棒的人帮助我找到答案。 基本上,我真正想要的是一种限制距离的方法。
每时,更新的文档,有近查询$一个第三个参数: 您还可以使用$附近具有最大距离
db.places.find({ loc : { $near : [50,50] , $maxDistance : 5 } }).limit(20)
为$ maxDistance值是弧度;所以,我不得不把我的距离以英里为单位除以69.
谢谢!
我可以张贴我的问题上mongdb用户谷歌集团找到我的答案(http://groups.google.com/group/mongodb-user/browse_thread /线程/ d37c781bbfff5f08)。 – Abe 2010-10-12 00:06:03
注意:除以69是从英里到*度*的粗略转换,不是弧度。度数在这里是正确的,因为这是一个简单的ol“'near'查询(这意味着'$ maxDistance'必须与坐标位置相同),而不是球形查询(它* do *需要'$ maxDistance'来以弧度表示)。 – 2011-05-17 03:15:48