MongoDB Manual (Version 4.2)> Indexes > 2dsphere Indexes No 1 概述 2dsphere索引支持计算类似地球的球体上的几何形状的查询。...2dsphere索引支持以GeoJSON对象和旧版坐标对(另请参见2dsphere索引字段限制)存储的数据。对于旧版坐标对,索引会将数据转换为GeoJSON Point。...版本2是在MongoDB 2.6和3.0系列中创建2dsphere索引时的默认版本。...如果您尝试插入一个在2dsphere索引字段中包含非几何数据的文档,或者在一个索引字段中包含非几何数据的集合上构建2dsphere索引,该操作将失败。...以下示例,基于一个places集合,该集合的文档将位置数据以GeoJSON Point形式存储在loc字段中: db.places.insert( { loc : { type: "Point
上篇文章中我们介绍了MongoDB中索引的简单操作,创建、查看、删除等基本操作,不过上文我们只介绍了一种类型的索引,本文我们来看看其他类型的索引。...---- _id索引 我们在上文介绍过,我们往集合中添加文档时,默认情况下MongoDB都会帮助我们创建一个名为_id的字段,这个字段就是一个索引。...如果想查询既包含Java又包含C#的文档,操作如下: db.sang_collect.find({$text:{$search:"\"Java C#\""}}) 用一对双引号将查询条件括起来,如果想查询包含...地理空间索引 地理空间索引类型 地理空间索引可以分为两类: 1.2d索引,可以用来存储和查找平面上的点。 2.2d sphere索引,可以用来存储和查找球面上的点。...好了,MongoDB中的索引问题我们就说到这里,小伙伴们有问题欢迎留言讨论。 参考资料: 1.《MongoDB权威指南第2版》
GeoJSON ,一个用于存储地理信息的数据格式。GoeJSON对象可以表示几何、特征或特征集合,支持:点、线、面、多点、多线、多面和几何集合。在基于平面地图,三维地图中都需要用到的一种数据类型。...对于GeoJSON的应用领域有了新的了解。而这些特性是基于地图基础之上的。接下来就介绍一下从基础领域到显示领域的技术应用。...GeoJSON的基础应用:地图 GeoJSON的高级应用:webGL 技术应用解决方案 基于我们已经了解的基础知识,GeoJSON是由点线面组成,因此目前高德地图,百度地图等地图类软件也都推出了对应的...api,用来解析GeoJSON。...使用中,都是基于地图所开放的api来实现的。
数据库中,索引的存储一般使用 B树 或 B+树 来实现,通过二分法来查找法来快速定位到数据位置。...不是不可以实现: 在关系型数据库内存储每个地点的详细信息,Redis 内的 member 存储每个地点在关系型数据库中的主键 ID,查询到地点的 ID 后,再去取地点的详细信息来过滤。...2dsphere 索引支持查询在一个类地球的球面上进行几何计算,以GeoJSON对象或者普通坐标对的方式存储数据。...Mongo 的 2dsphere 索引需要建立索引的字段存储的数据为 geoJSON 对象,在 PHP 中的构造形式类似: $document = [ 'loc' => [...参考:Mongodb地理空间索引和查询(Geospatial Indexes) MongoDB » GeoJSON PostgreSQL 介绍 postgreSQL 是一个知名的关系型数据库,构建在其上的空间对象扩展模块
原标题:Spring认证中国教育管理中心-Spring Data MongoDB教程五(内容来源:Spring中国教育管理中心) 11.6.5.GeoJSON 支持 MongoDB 支持GeoJSON和用于地理空间数据的简单...这些格式既可用于存储数据,也可用于查询数据。请参阅有关 GeoJSON 支持的MongoDB 手册以了解要求和限制。 域类中的 GeoJSON 类型 在域类中使用GeoJSON类型很简单。...GeoJSON 类型 使用 GeoJSON 类型作为存储库查询参数会$geometry在创建查询时强制使用运算符,如以下示例所示: public interface StoreRepository extends...GeoJSON 总是在一个球体上运行。 到中心点的距离(以米为单位)。 现在,当使用旧坐标对时,如前所述,对弧度进行操作。...请注意,这两个可选标志已在 MongoDB 3.2 中引入,除非明确设置,否则不会包含在查询中。
自 2008 年首次发布GJ2008以来,GeoJSON 格式规范的流行程度一直在稳步增长。 它广泛应用于 JavaScript 网页地图库、基于 json 的文档数据库和 web API。...Geometrycollections 有不同于单一类型的几何对象(Point、 LineString 和 Polygon)和多部分几何对象(MultiPoint、 MultiLineString 和...通过将坐标精度从小数点后 6 位提高到小数点后 15 位,一个包含许多详细多边形的 GeoJSON 文本几乎可以膨胀两倍。...、地理空间数据库、地理数据处理 api、数据分析和存储服务以及数据传输。...注意到几何集合的互用性问题。 这些对象应该谨慎使用。附录 C.
离线地图与搜索 在GitHub上搜索数据的过程中,发现了一个名为d3js-geojson的项目里面放着中国详细省、市、县数据,并且还有及GeoJSON文件。...GeoJSON是一种对各种地理数据结构进行编码的格式,基于Javascript对象表示法的地理空间信息数据交换格式。GeoJSON对象可以表示几何、特征或者特征集合。...GeoJSON支持下面几何类型:点、线、面、多点、多线、多面和几何集合。GeoJSON里的特征包含一个几何对象和其他属性,特征集合表示一系列特征。...接着问题来了,我们并没有把每个用户的数据存入到数据库中,那么我们怎么才能实现搜索?...从地图上跳转到对应的省的时候: 用Aajx请求获取这个省的GeoJSON文件 获取这个市的中心位置,并对其进行缩放 将上面的每个市绘制到地图上 在这个过程中遇到的最大的坑是:中国有北京、上海、天津、
具体mongodb的安装参照官方文档,强烈建议参照官方安装文档。网上博客这种资料良莠不齐,而且新版本可能和老板的安装略有区别,博客中的安装方法不一定适合你。所以,一句话,参照官方文档进行安装。...每个GeoJSON的字符串作为mongodb的collection中的一个document。...的API从3.x版本进行了比较大的变化,好些API标记为过时。...下面代码是使用最新的API写的): package cn.tzy.mongodb; import java.io.File; import java.io.IOException; import java.io.StringWriter...Feature,然后将Feature转为GeoJSON字符串,最后将字符串插入到mongodb的Collection中 while (sfIter.hasNext()) {
,用于平面地图之流,反正也能用 2dsphere索引,用于地球儿表面的地理查询运算,推荐用法 先说2d索引,然而实际上MongoDB的2d索引的实现底层原理依然是geohash,所以同样其2d索引支持点的存储运算...所以,既然你都用MongoDB了,直接一步到位走2dsphere就行了。 2dsphere的实现并不是geo-hash,我依然是从MongoDB官网的blog上了解到的一些信息和资料。...在MongoDB中,2dsphere或2d是描述是由一种叫做geoJSON的标准格式来描述的,从名字上就可以看出来首先它是一坨JSON,其次它定义了自己的一些标准。...普及一下,像这种驱动提供的API都是low-level API,为了更加方便地协助我们搞花式CRUD,我从github上找了一个基于PHP7 MongoDB low-level-API包装了一层的high-level-API...:开始搞【附近】 我们将围绕经纬度(116.2092590332,40.0444375846)进行查找,为了对演示结果心里有谱,请你将(116.2092590332,40.0444375846)也插入到MongoDB
geohash,所以同样其2d索引支持点的存储运算,对于线和面就相对比较难受了(PS:由于市面上好像并没有看到名字类似于《MongoDB内核分析》或《MongoDB设计与实现》的书籍,所以对于MongoDB...所以,既然你都用MongoDB了,直接一步到位走2dsphere就行了。 2dsphere的实现并不是geo-hash,我依然是从MongoDB官网的blog上了解到的一些信息和资料。...在MongoDB中,2dsphere或2d是描述是由一种叫做geoJSON的标准格式来描述的,从名字上就可以看出来首先它是一坨JSON,其次它定义了自己的一些标准。...普及一下,像这种驱动提供的API都是low-level API,为了更加方便地协助我们搞花式CRUD,我从github上找了一个基于PHP7 MongoDB low-level-API包装了一层的high-level-API...开始搞【附近的人】 我们将围绕经纬度(116.2092590332,40.0444375846)进行查找,为了对演示结果心里有谱,请你将(116.2092590332,40.0444375846)也插入到MongoDB
2 MONGODB 如何存储和表达这些数据,这里存储地理数据的方式在MONGODB 中表现为 GEOJSON 数据。...这个存储地理数据的JSON标准是由IETF 在2016年发布的RFC7946中规定的如何存储地理数据。...https://docs.mongodb.com/manual/reference/geojson/ 在mongodb中具体的展示GEOJSON 的格式为 标记location 在 location...下面的查询语句值直接从 restaurants collection 中查询经纬度在[ -73.9667, 40.78 ] 与这个点周围1 公里 到 5 公里中存在的其他的 restaurants 有哪些...其他样例可以查看下面的网站中的例子 https://dev.to/vcpablo/4-ways-to-find-geojson-data-in-mongodb-14pb 4 关于查询中MONGODB
为了防止redis中的数据丢失,同时需要将数据保存到mongodb进行持久化保存。...2d : 使用2d index 能够将数据作为二维平面上的点存储起来,在MongoDB 2.4以前使用2。...2dsphere: 2dsphere索引支持查询在一个类地球的球面上进行几何计算,以GeoJSON对象或者普通坐标对的方式存储数据。...MongoDB内部支持多种GeoJson对象类型: Point 最基础的坐标点,指定纬度和经度坐标,首先列出经度,然后列出 纬度: 有效的经度值介于-180和之间180,两者都包括在内。...用户的地理位置存储到MongoDB中,如下: 3.1、dubbo服务 3.1.1、定义pojo 在my-tanhua-dubbo-interface中创建: @Data @NoArgsConstructor
两种解决方案: 一、将整个shapefile转为GeoJSON然后直接导入mongoDB数据库中 首先,将shapefile数据转为WGS84地理坐标,然后使用GDAL的命令行工具ogr2ogr...这样子整个shapefile文件在mongodb中是以一个document存在的。...二、更加细粒度的存储方法是将shapefile中的每个feature取出来转为GeoJSON存入mongodb 具体实现代码入下(Java版本): package cn.tzy.mongodb;...; import org.opengis.feature.simple.SimpleFeature; import com.mongodb.MongoClient; import com.mongodb.client.MongoCollection...格式,然后插入到collection中 while (sfIter.hasNext()) { SimpleFeature feature = (SimpleFeature
概述 topojson很早就问其大名,但日常用的比较多的还是geojson为主,最近在项目里面开始用到了,所以就写此文记录一下。 topojson GeoJSON是用于描述地理空间信息的数据格式。...github上对TopoJSON的解释是: GeoJSON 按拓扑学编码后的扩展形式。TopoJSON 消除了冗余,允许将相关几何图形有效地存储在同一文件中。...对比 1.文件大小 2.渲染效率 转换以及在mapboxGL中的使用 1.转换 借助topojson-client,可方便的实现topojson到geojson的转换,转换方法参见API。...2.mapboxGl中的使用 <!...['province']); map.addSource('points', { type: 'geojson
MultiPolygon 在geojson中,type为MultiPolygon的数据,对应的coordinates也会有多个(Polygon数据的coordinates只有1个子数据),常见的多为存在岛屿或飞地的国家...如果将多个子数据分别绘制为几何体可以避免前一个问题,但是在做交互时多个几何体也会以个体的形式分别进行交互。会出现选中中国,海南省不跟着亮的问题。 尽管你也可以在交互时根据数据获取相关的其他几何体。...将多个ExtrudeGeometry的顶点数据merge到同一个Geometry中。 将合并好的Geometry作为几何体加入到Mesh 以上两个步骤即可。...(挤压几何体) - https://threejs.org/docs/index.html#api/zh/geometries/ExtrudeGeometry Geometry.merge -...https://threejs.org/docs/index.html#api/zh/core/Geometry.merge scalePow - https://github.com/d3/d3-
这些几何类型的实例的GeoJSON表示类似于在同一规范中描述的WKB和WKT表示。...自从2008年初次发表 (GJ2008) 以来,GeoJSON格式规范已经稳步的流行起来。它被广泛的用于JavaScript web映射库, 和基于JSON的文档数据库,以及Web API中。...每个几何对象都是一个GeoJSON对象,不管它在GeoJSON文本中出现的位置。 Geometry对象的“type"成员的值必须是七个集合类型中的一个(参考 第1.4节)。...当然也会存在存储数据须要被保护的情况,这些内容不在本规范的范围内。...一个GeoJSON文本包含许多的多边形,当坐标精度从6个小数位到15个小数位,会导致将近两倍的数据膨胀。
矢量数据目前是最常用的地理空间格式,因为它是存储空间信息最有效的一种方式。矢量数据只存储几何图元,包括点、线和多边形。...•.shp 用于存储要素几何的主文件,其中包含几何图形(读取的对象)•.shx 形状索引文件,可以加快访问速度•.dbf 数据库文件,包括几何要素的属性信息•其他 .prj 以WKT格式存储的地图投影信息...由于结构紧凑,使用JavaScript语法编写对于互联网格式友好,并且支持主流编程语言,GeoJSON也是当前流行的地理空间REST Web API的一个重要组件。 三. 栅格数据格式 ?...压缩算法节省了数据的存储空间,但数据本身会被修改,丢弃了部分原始数据信息,因此在做分析中需要注意。...总结 这篇文章是python地理空间分析的一个开头,简单介绍了地理空间分析对于数据分析和气象的重要作用,介绍了地理空间分析的对象,常用到的数据以及python中对这些数据处理设计到的常用的包。
先给出实现效果: 区域确定之后,就可以去找GeoJSON了。 GeoJSON GeoJSON 是一种用于编码各种地理数据结构的格式,基于 JSON 标准。它主要用于表示简单特征对象及其非空间属性。...主要的特点是: 基于 JSON: GeoJSON 使用 JSON 格式,易于阅读和解析; 支持多种几何类型:支持点(Point)、多点(MultiPoint)、线(LineString)、多线(MultiLineString...)、多边形(Polygon)、多面体(MultiPolygon)等多种几何类型; 包含属性信息: 每个地理特征可以包含额外的属性信息,这些信息以键值对的形式存储在 properties 字段中; 灵活的应用场景...获取成都市GeoJSON数据 DataV有一个工具可以直接提取指定区域的GeoJSON数据。 地址是(1) 操作步骤比较简单,在地图上先选择省,然后选择市。选择到市之后就停下。...右侧有个JSON API,复制一下json文件地址。
textContains:如果(至少)文本字符串中的一个单词与查询字符串匹配,则为true textContainsPrefix:如果(至少)文本字符串中的一个单词以查询字符串开头,则为true...geoWithin 如果一个几何对象包含另一个几何对象,则成立 geoDisjoint 如果两个几何对象没有共同的点(相反geoIntersect),则这是正确的。...g.V().has("age", gt(1000)).has("name", "saturn") 26.5 支持数据类型 虽然JanusGraph的复合索引(composite indexes)支持 可以存储在...GeoJSON表示: //string "37.97, 23.72" //list [37.97, 23.72] //GeoJSON feature { "type": "Feature",...请注意, 与JanusGraph API不同,GeoJSON将坐标指定为lng lat。 26.7 集合 如果您使用的是Elasticsearch,则可以对SET和LIST类型的属性进行索引。
笔者也是GIS小白,在这里把收集到的素材略加整理,万一碰到形形色色的GIS文件,不至于显得太意外。 一、栅格数据 栅格数据由像素组成。它们通常间隔规则且呈方形,但不必如此。...栅格通常看起来像素化,因为每个像素都有自己的值或类。...)中,有点类似于一个小型数据库。...最主要的是: .shp:包含所有特征的几何图形的文件。 .shx:为几何图形编制索引的文件。 .dbf:以表格式存储特征属性的文件。 .prj:包含投影格式信息的文件,包括坐标系和投影信息。...GML 以文本形式存储地理实体。GML较GeoJSON通常会有更多的开销。
领取专属 10元无门槛券
手把手带您无忧上云