当前位置:  开发笔记 > 编程语言 > 正文

MongoDb C#GeoNear查询构建

如何解决《MongoDbC#GeoNear查询构建》经验,为你挑选了1个好方法。

如何使用C#驱动程序和GeoNear方法查询MongoDB附近的地理点?

以下返回具有错误距离值的点:

var results = myCollection.GeoNear(
    Query.GT("ExpiresOn", now), // only recent values
    latitude,
    longitude,
    20
);

我怀疑我应该告诉Mongo查询double [] Location字段,但我不知道查询语法.



1> Petrus Thero..:

通过这个和这个找到答案:

var earthRadius = 6378.0; // km
var rangeInKm = 3000.0; // km

myCollection.EnsureIndex(IndexKeys.GeoSpatial("Location"));

var near =
    Query.GT("ExpiresOn", now);

var options = GeoNearOptions
    .SetMaxDistance(rangeInKm / earthRadius /* to radians */)
    .SetSpherical(true);

var results = myCollection.GeoNear(
    near,
    request.Longitude, // note the order
    request.Latitude,  // [lng, lat]
    200,
    options
);

推荐阅读
惬听风吟jyy_802
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有