- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在从不同来源收集位置信息并将所有内容存储在 MongoDb 集合中。除了具有单一纬度/经度坐标的点位置外,我还存储区域。
现在,一个数据给我的位置信息为 GeometryCollection
,但所有元素都是 Polygons
。另一个数据源为我提供了 MultiPolygon
的位置。虽然我实际上正在考虑为每个数据源创建一个集合,但我想知道哪种方法总体上更好。
GeometryCollection
当然更灵活,但也许 MultiPolygon
显示更好的查询性能(假设我总是在位置字段上创建一个 2dspehere
索引).将一种表示转换为另一种表示是否值得?
最佳答案
好消息:对于所有受支持的 GeoJSON 类型,查询性能和可索引性在 MongoDB 中是相同的。
您做出决定的主要驱动因素应该是您的地理字段信息架构和使用它的软件是否需要包含更多类型而不仅仅是多边形。你说你在存储点位置?如果您想将所有地理数据保存在一个字段中,例如location
(可能带有 2dsphere 索引)然后您将需要 GeometryCollection
,您可以将 Point
和 MultiPolygon
。在 GeoJSON 规范中推荐 https://www.rfc-editor.org/rfc/rfc7946#page-9 不嵌套 GeometryCollection
,因此对于那些为您提供 GeometryCollection
的数据源,您将迭代内容并填充您自己的 GeometryCollection
也包含你的 Point
等。
如果您要单独存储点,例如eventCenter
与 eventAreasEffected
分开,那么 eventCenter
可以只是一个 Point
和 eventAreasEffected
可以是单个“MultiPolygon”;不需要 GeometryCollection
。在多个字段中使用 geo,并且在这些字段中使用或不使用多个 2dsphere 索引是完全没问题的。从 MongoDB 4.0 开始,您可以通过包含 key
选项在具有多个 2dsphere 索引的集合上使用 $geoNear
。
这是一种非官方但合理的定义方法:MultiPolygon
不是 Polygon
的任意集合,而是恰好具有不相交多边形的单个“形状概念”。美国可以用一个 MultiPolygon
来描述,它有阿拉斯加、夏威夷、美国大陆,也许还有波多黎各等。事实上,为此,你会注意到它有点棘手存储与 MultiPolygon
的每个成员相关的数据,因为 coordinates
只能是点数组的数组。例如,有关第三个多边形的信息必须在对等字段中传送到单个顶层 coordinates
字段。但是 Polygon
的离散数组或 Polygon
的 GeometryCollection
可以在每个 形状中存储额外信息。请注意,GeoJSON 和 MongoDB 均不限制您为每个形状添加除 type
和 coordinates
之外的字段。
一个更微妙的问题是 Polygon
与 MultiPolygon
的 GeometryCollection
的设计和语义。更复杂的是,Polygon
中定义的显式空洞与隐式“分层”Polygon
的集合存在问题,后者在 DB 外部进行后处理地理软件。
关于MongoDB/GeoJson : MultiPolygon vs GeometryCollection containing only polygons,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52496699/
我有 2 个相交的 OGR 多边形,因此我想将它们级联并联。我尝试了这个,但它返回给我空并且不合并它。似乎这仅适用于多边形,不适用于多重多边形。最好的方法是什么? >>geom = ogr.Geome
从包含相当多(大约 20000)个可能部分重叠的多边形的 shapefile 开始,我需要提取所有通过与不同“边界”相交而产生的子多边形。 在实践中,从一些模型数据开始: library(tibble
我尝试在我的 postgre 数据库中添加 MultiPolygon 几何图形,因此我使用了以下 SQL 语句: 'INSERT INTO potentiel_foncier_ccry (nature
我正在尝试将我的 polygon 列类型更改为 multipolygon 列类型。 我的代码很简单。 change_column :messages, :area_shape, :multipolyg
我正在读取一组包含大量 multypoligons 的数据。我正在使用 Geotools,我想将此列表存储在 mysql 数据库表中。 我不知道如何以有效的方式存储形状并能够重新创建多多边形对象。 如
OpenLayers 3.10.1 中的默认标签标记 MultiPolygon 的每个部分。我想知道是否可以只标记 MultiPolygon 中的第一个多边形。 最佳答案 您可以为带有 geometr
我正在使用geotools库来提取位置信息。这样我就得到了一个类型的对象 class com.vividsolutions.jts.geom.MultiPolygon 我现在想通过 jdbc 连接将此
我正在使用geotools库来提取位置信息。这样我就得到了一个类型的对象 class com.vividsolutions.jts.geom.MultiPolygon 我现在想通过 jdbc 连接将此
我将 leaflet.js 与 postgis (postgres) 一起使用。我想将多面体转换为几何图形以存储在数据库中。但是我收到了这个错误: An error occurred when exe
我有一个表 Town,其列 TownBoundary 包含相关城镇的多边形(geography 数据类型)。 对于每个城镇,我都会获得生成 KML(XML) 文件所需的多边形数据,例如: sqlg =
我有一个世界国家数据集,想在本初子午线上拆分它,并将数据重新集中在太平洋上。 我正在尝试使用简单功能 (sf) 来执行此操作,但遇到了一个我无法解决的对象类型问题。 为了拆分数据,我尝试了以下操作:
我有一个由大约 100 个条目(多多边形几何图形)组成的 cartoDB 数据集,我使用 cartodb.js API 检索该数据集。单击区域时更改给定条目(倍数)的不透明度的最佳方法(性能方面)是什
所以这是我第一次做一个涉及 map 和图层的项目, map 上有很多点和很多多边形。 我倾向于为点和多边形创建单独的表,然后在它们与图层表之间创建多对多关系。如果这样做,我最终会得到 5 个表:poi
我有以下MultiPolygon: MULTIPOLYGON ( ( (10.8849956 49.8901705, 10.8849507 49.8902499, 10.884969 49.89025
我需要将PostgreSQL的几何(MultiPolygon)类型变量存储到java变量中这是因为我尝试将几何列添加到非空间表以使用 map 服务器查询 map 我试图将它存储在一个字符串中,这导致了
我正在从 Trimble 导入一些 OSM 数据到 PostGIS 数据库中,将其作为 Django 应用程序的一部分进行处理。这适用于点和线,但我正在努力处理多边形。 导入似乎工作正常: shp2p
有没有人用PHP解析过MySql中的Polygon/Multipolygon几何数据?我是 MySQL 空间函数的新手。请帮我从 MySQL 中的多面体中获取经纬度点。 我有一个表格,其中有一个类型为
我有两个 GeoDataFrame。一个是爱荷华州,另一个是北美 future 72 小时内预料到的降雨。我想创建一个覆盖爱荷华州的降雨预报的 GeoDataFrame。但是我得到一个错误。 stat
我正在从不同来源收集位置信息并将所有内容存储在 MongoDb 集合中。除了具有单一纬度/经度坐标的点位置外,我还存储区域。 现在,一个数据给我的位置信息为 GeometryCollection,但所
如何在 NodeJs sequelize 中创建具有多多边形数据类型的表字段? myfield: { type: ?????, allowNull: true } MySQL表结构是-
我是一名优秀的程序员,十分优秀!