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. python2.7 内置ConfigParser支持Unicode读写

    1 python编码基础 对应 C/C++ 的 char 和 wchar_t, Python 也有两种字符串类型,str 与 unicode: str与unicode # -*- coding: ut ...

  2. Chrome浏览器必装的扩展工具

    名称 作用 下载地址 Postman 模拟各种http请求 点击下载 JSON Viewer 访问json结果自动视图化 点击下载 Axure RP Extension for Chrome 查看Ax ...

  3. 列表组件抽象(2)-listViewBase说明

    这是我写的关于列表组件的第2篇博客.前面的相关文章有: 1. 列表组件抽象(1)-概述 listViewBase是列表组件所有文件中最核心的一个,它抽象了所有列表的公共逻辑,将来如果有必要添加其它公共 ...

  4. asp.net core 依赖注入问题

    最近.net core可以跨平台了,这是一个伟大的事情,为了可以赶上两年以后的跨平台部署大潮,我也加入到了学习之列.今天研究的是依赖注入,但是我发现一个问题,困扰我很久,现在我贴出来,希望可以有人帮忙 ...

  5. 初识Hadoop

    第一部分:              初识Hadoop 一.             谁说大象不能跳舞 业务数据越来越多,用关系型数据库来存储和处理数据越来越感觉吃力,一个查询或者一个导出,要执行很长 ...

  6. C# - 多线程 之 信号系统

    基础概览 多线程之信号系统命名空间 using System.Threading; 线程同步类的继承层次关系图 终止状态和非终止状态 在终止状态下,被WaitOne()阻塞的线程会逐个得到释放.如果一 ...

  7. 【C#进阶系列】27 I/O限制的异步操作

    上一章讲到了用线程池,任务,并行类的函数,PLINQ等各种方式进行基于线程池的计算限制异步操作. 而本章讲的是如何异步执行I/O限制操作,允许将任务交给硬件设备来处理,期间完全不占用线程和CPU资源. ...

  8. 移动端HTML

    display:-webkit-box 把该元素中的所有元素变成块级元素,比如 <ul class="top-nav"> <li>地图</li> ...

  9. sessionStorage 和 localStorage 、cookie

    sessionStorage 和 localStorage html5中web storage包括两种储存方式:sessionStorage 和 localStorage sessionStorage ...

  10. JAVA使用JDBC技术操作SqlServer数据库

    JDBC(JavaData Base Connectivity,Java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组 ...