class Program 
    { 
        static string mongodb = "mongodb://127.0.0.1:27017"; 
        static string database = "dbCardInfo"; 
        static string tblName = "fcd1"; 
        static MongoCollection<BsonDocument> table; 
        static void Main(string[] args) 
        { 
            MongoClient client; 
            MongoServer server; 
            MongoDatabase db;
            MongoClientSettings setting = new MongoClientSettings(); 
            setting.MaxConnectionPoolSize = 1000; 
            setting.MinConnectionPoolSize = 500;
            client = new MongoClient(mongodb); 
           
            server = client.GetServer(); 
            db = server.GetDatabase(database); 
            table = db.GetCollection(tblName);
  #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.2;//单位公里(千米) 
            //6378137:地球半径,单位:米 
            IMongoQuery query = Query.WithinCircle("loc", x, y, maxDistance / (6378137 / 1000.0), true); 
            IMongoQuery query1 = Query.Near("loc", x, y, maxDistance / (6378137 / 1000.0), true);
            //var finds = table.Find(query); 
                var finds = table.Find(query1); 
                int count = 0;
                Parallel.ForEach(finds, (item) => 
                { 
                    Interlocked.Increment(ref count); 
                    Debug.WriteLine(item["loc"]["lat"]+","+ item["loc"]["lng"]); 
                }); 
        
            Console.WriteLine("over"); 
            Console.ReadLine(); 
        }
        static void Search(IMongoQuery query) 
        { 
            List<LbsItem> cards = new List<LbsItem>();
            try 
            { 
                MongoCursor<BsonDocument> res = table.Find(query).SetLimit(100000).SetSkip(1500000); 
                int count = 0; 
                var start = DateTime.Now; 
                Parallel.ForEach(res, (item) => 
                { 
                    Interlocked.Increment(ref count); 
                }); 
                double etime = (DateTime.Now - start).TotalSeconds; 
                Console.WriteLine(count + ":" + etime + ";" + count / etime); 
            } 
            catch (Exception ex) 
            { 
                LogHelper.Error(ex); 
            }
        } 
    }
 
public class LbsItem 
    { 
        /// <summary> 
        /// 终端标识 
        /// </summary> 
        public string tid 
        { 
            get; set; 
        } 
        /// <summary> 
        /// 
        /// </summary> 
public GeoJsonPoint<GeoJson2DGeographicCoordinates> loc { get; set; }
        //或:public Location loc 
        { 
            get;set; 
        }         
        /// <summary> 
        /// 定位时间 
        /// </summary> 
        public DateTime time 
        { 
            get; set; 
        }
}
    public class Location 
    { 
        /// <summary> 
        /// 经度 
        /// </summary> 
        public double lng 
        { 
            get; set; 
        } 
        /// <summary> 
        /// 纬度 
        /// </summary> 
        public double lat 
        { 
            get; set; 
        } 
    }

c# MongoDB 经纬度应用示例的更多相关文章

  1. Node.js与MongoDB的基本连接示例

    Node.js与MongoDB的基本连接示例 前提 已经安装了node.js和MongoDB,本文使用的node.js是v0.12.0,MongoDB是3.0.0. 初始化数据 启动MongoDB服务 ...

  2. Mongodb aggregation 基本操作示例

    MongoDB二个主要的操作:一个是查询,另一个是统计.对于查询而言,主要是find()方法,再配合Filters组合多个查询条件. 对于统计而言,则主要是aggregate操作,比如 group.s ...

  3. PHP操作MongoDB数据库的示例

    http://www.jquerycn.cn/a_8137 本节内容:PHP操作MongoDB数据库的简单示例. Mongodb的常用操作参看手册,php官方的http://us2.php.net/m ...

  4. MongoDB安装配置示例

    参考 http://www.runoob.com/mongodb/mongodb-window-install.html http://www.cnblogs.com/lecaf/archive/20 ...

  5. MongoDB学习(2)—Node.js与MongoDB的基本连接示例

    前提 已经安装了node.js和MongoDB,本文使用的node.js是v0.12.0,MongoDB是3.0.0. 初始化数据 启动MongoDB服务,在test数据库中插入一条实例数据: db. ...

  6. MongoDB MapReduce 的示例。

    // JavaScript source code db.runCommand({ mapreduce: "page", map: function Map() { emit( t ...

  7. Spring Boot + MongoDB 使用示例

    本文分别使用 MongoRepository 和 MongoTemplate 实现 MongoDB 的简单的增删改查 本文使用 docker 安装 MongoDB: 使用示例 application. ...

  8. CRL快速开发框架系列教程十二(MongoDB支持)

    本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框 ...

  9. React+Node.js+Express+mongoskin+MongoDB

    首发:个人博客,更新&纠错&回复 采用React + Node.js + Express + mongoskin + MongoDB技术开发的一个示例,演示地址在这里,项目源码在这里. ...

随机推荐

  1. 计算机程序的思维逻辑 (53) - 剖析Collections - 算法

    之前几节介绍了各种具体容器类和抽象容器类,上节我们提到,Java中有一个类Collections,提供了很多针对容器接口的通用功能,这些功能都是以静态方法的方式提供的. 都有哪些功能呢?大概可以分为两 ...

  2. 快速开发框架CRL3.0发布,附带最新的项目示例CRLShoppingDemo

    继上次使用CRL实现大数据分库分表方案升级到2.4,时隔不久又升级到了大版本号3.0,主要是因为结构发生了一些更改 ORM和业务封装Package分开了,增加了实例项目演示代码CRLShoppingD ...

  3. HTML5 学习总结(三)——本地存储

    一.HTML4客户端存储 B/S架构的应用大量的信息存储在服务器端,客户端通过请求响应的方式从服务器获得数据,这样集中存储也会给服务器带来相应的压力,有些数据可以直接存储在客户端,传统的Web技术中会 ...

  4. Spring MVC学习

    SpringMVC框架 转载请注明出处 目录 一:配置springMVC开发环境 1.1.配置文件的helloworld 1.2.基于注解的helloworld 二:@RequestMapping详解 ...

  5. ASP.NET Core 中文文档 第三章 原理(13)管理应用程序状态

    原文:Managing Application State 作者:Steve Smith 翻译:姚阿勇(Dr.Yao) 校对:高嵩 在 ASP.NET Core 中,有多种途径可以对应用程序的状态进行 ...

  6. 版本控制工具Git的学习笔记

    在网上看到一个很不错的Git教程,学习后果断要做一下总结. 教程地址:http://www.liaoxuefeng.com/ 总结要点: 安装Git因为我个人的开发主要是基于windows环境下,所以 ...

  7. ToolsCodeTemplate使用

    最近学习使用CodeSmith代码生成器 CodeSmith 是一种语法类似于asp.net的基于模板的代码生成器,程序可以自定义模板,从而减少重复编码的劳动量,提高效率. 作用:CodeSmith ...

  8. EC笔记:第三部分:14、在资源管理类中小心Copying行为

    场景 上一节实现了智能指针,其中的拷贝构造函数和赋值运算符是通过增加/减少指针的引用计数来操作的.但是如果是管理一个独占资源呢?我们希望在一个资源使用时被锁定,在使用完毕后被释放. #include ...

  9. how to use panda

    0.Introduce pandas.read_csv(filepath_or_buffer,sep=', ', dialect=None, compression='infer', doublequ ...

  10. Linux:JDK配置

    1.JDK官网下载"jdk-8u101-linux-i586.tar.gz",32位或64位. 2 命令 #创建jdk所在目录 sudo mkdir /usr/lib/jvm #找 ...