博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MongoDB学习笔记~地图坐标的支持与附近点的查找
阅读量:6995 次
发布时间:2019-06-27

本文共 1178 字,大约阅读时间需要 3 分钟。

Mongodb这个数据库很不错,它的方法也不错,为了实现坐标功能,它甚至为我们提供了geo里的一些算法,帮助我们通过某个点去位置和查找N个附近的点。

表面

在您存储地理数据和编写查询条件前,首先,您必须选择表面类型,这将被用在计算中。您所选择的类型将会影响您的数据如何被存储,建立的索引的类型,以及您的查询的语法形式。

MongoDB提供了两种表面类型:

球面

如果需要计算地理数据就像在一个类似于地球的球形表面上,您可以选择球形表面来存储数据,这样就可以使用  索引。

您可以按照坐标轴:经度,纬度 的方式把位置数据存储为GeoJSON对象。GeoJSON的坐标参考系使用的是  数据。

平面

如果需要计算距离,就像在一个欧几里德平面上,您可以按照正常坐标对的形式存储位置数据并使用 索引。

测试类

public class Zoo : NoSqlEntity    {        public string title { get; set; }        public double[] loc { get; set; }    }

测试数据

[TestMethod]        public void Addloc()        {            for (int i = -180; i < 180; i += 5)                MongoDbClient.MongoManager
.Instance.InsertOne(new Zoo { title = "北京" + i, loc = new double[] { i, i } }); }

数据添加后的列表

查找你需要的附近的点

[TestMethod]        public void Findloc()        {            var filter = Builders
.Filter.Near(i => i.loc, 50, 50, maxDistance: 50); var result = MongoDbClient.MongoManager
.Instance.Find(filter); foreach (var item in result.ToList()) { Console.WriteLine(item.title); } }

为数据集合的坐标字段添加索引

 

转载于:https://www.cnblogs.com/lori/p/6952208.html

你可能感兴趣的文章
本学期阅读计划
查看>>
Programming Ability Test学习 2-13. 两个有序序列的中位数(25)
查看>>
DOM&&BOM
查看>>
JavaScript严格模式总结
查看>>
07-图
查看>>
20145127《java程序设计》第四周学习总结
查看>>
idea中,使用facets添加完web后,项目已变为web项目,但web.xml中内容经常变为红色,并报错,如何解决?...
查看>>
今晚目标代理模式和迭代器模式
查看>>
http_build_query函数(学习)
查看>>
具有头结点的单链表
查看>>
创建快捷方式
查看>>
选与不选之DFS
查看>>
WinForm 托盘控制应用
查看>>
django自定义模板过滤
查看>>
Questions about UIUC and USC
查看>>
洛谷P1460 健康的荷斯坦奶牛 Healthy Holsteins
查看>>
springboot配置redis+jedis,支持基础redis,并实现jedis GEO地图功能
查看>>
数据流结构
查看>>
python中时间相关问题,仅作为笔记
查看>>
YeoMan 与Angularjs
查看>>