【问题标题】:Retrieving the Distance "dis" result from a Near query从 Near 查询中检索距离“dis”结果
【发布时间】:2012-01-10 21:02:35
【问题描述】:

我已经设置了一个运行良好的地理空间查询,但是我希望获得每个结果的距离。

给定查询:

var query = Query.Near("Location", longitude, latitude);
var places = mongoDb.GetCollection<Place>("places").Find(near);

如何检索“地点”中每个元素的距离?

【问题讨论】:

    标签: mongodb mongodb-.net-driver


    【解决方案1】:

    不知道能不能得到和mongo的距离,但我过去做的只是在我有数据后用Haversine公式得到距离。

    你可以找到我使用的实现 here

    编辑:抱歉,您可以从 Mongo 恢复距离,但不能使用 Query.Near()。您需要使用集合中的 GeoNear 功能。

     mongoDb.GetCollection<Place>("places").GeoNear(Query.Null, latitude, longitude, maxDistance);
    

    这将返回一个GeoNearResult&lt;Place&gt;,它的Hits 属性为IEnumurable&lt;Hit&gt;,其中包含一个Distance 属性和一个包含您的地点对象的文档属性。

    【讨论】:

    • 你是一个救生员,工作就像一个魅力。虽然现在我需要去查找那是什么测量值,也许是弧度?
    • 是的,它可能以弧度为单位,在 MongoDB 文档中,他们说它大约是每弧度 69 英里。但这仅限于赤道。你可以在这里找到更多信息mongodb.org/display/DOCS/…
    猜你喜欢
    • 2017-07-03
    • 1970-01-01
    • 2020-07-03
    • 1970-01-01
    • 2023-03-17
    • 1970-01-01
    • 2012-08-03
    • 1970-01-01
    • 2012-07-02
    相关资源
    最近更新 更多