• c# 在mongo中查询经纬度范围



    #region 索引

    //IndexKeysDocument doc = new IndexKeysDocument();//新建索引

    //2d 平面坐标索引,适用于基于平面的坐标计算。也支持球面距离计算,不过官方推荐使用2dsphere索引
    //BsonValue value = BsonValue.Create("2d");//创建2d索引

    //2dsphere 几何球体索引,适用于球面几何运算
    //不过,只要坐标跨度不太大(比如几百几千公里),这两个索引计算出的距离相差几乎可以忽略不计
    //BsonValue value = BsonValue.Create("2dsphere");//创建2d索引

    //doc.Add("loc", value);//loc为数据库中2d索引的对象名称
    //table.CreateIndex(doc);//创建索引

    #endregion

    double y = 26.0623344427;
    double x = 119.2916107177;
    double maxDistance = 0.5;//单位:公里(千米)
    double earchR = 6378137 / 1000.0;//6378137:地球半径,单位:米
    double distance = maxDistance / earchR;

    IMongoQuery query = Query.WithinCircle("loc", x, y, distance, true);
    IMongoQuery query1 = Query.Near("loc", x, y, distance, true);

    var _location = new GeoJsonPoint<GeoJson2DGeographicCoordinates>(new GeoJson2DGeographicCoordinates(x, y));
    IMongoQuery query2 = Query.Near("loc", _location, distance, true);

    ConcurrentBag<double> bags = new ConcurrentBag<double>();
    double totaletime = 0;
    int max = 1000;
    Parallel.For(0, max, (i) =>
    {
        DateTime start = DateTime.Now;
        var finds = table.Find(query1).AsQueryable().ToList();
       
        double etime = (DateTime.Now - start).TotalSeconds;
        bags.Add(etime);
    });

  • 相关阅读:
    第三次作业
    第二次作业
    第一次作业
    仪仗队(欧拉函数)
    自己随便做的,没做完就没耐心继续了。呵呵
    从别处见到一位大神的代码 飞扬的小鸟(flappy bird)
    简易迷宫游戏c++
    STL做法 平衡树
    基于百度地图api + AngularJS 的入门地图
    javascript 简易文本编辑器
  • 原文地址:https://www.cnblogs.com/94cool/p/7272933.html
Copyright © 2020-2023  润新知