PostgreSQL 支持多种 几何类型 开箱即用,还有大量的几何图形 运营商GiST索引 这似乎提供了数据的空间索引。

然后还有 后地理信息系统, ,它是 PG 的扩展。

PG 和 PostGIS 中内置的空间支持有什么区别?

如果我的应用程序需要存储地理坐标(点、面积、多边形),然后高效地执行查询(例如多边形中的点、多边形相交),我是否需要 PostGIS 或者我可以使用(可以说)更方便、更简单的构建-in 数据类型/语法?

有帮助吗?

解决方案

首先我想澄清一下 GiST 索引:GiST 实际上是一个为新数据类型创建索引的框架,而不是任何特定的索引方案本身。这个框架恰好用于Postgres自带的几何类型,但它也用于标准文本列上的三元匹配文本相似度索引,当然也被许多外部包的索引方案使用,其中我们可以编号PostGIS。

标准几何数据类型是否适合您或者您是否需要 PostGIS 完全取决于您的应用程序。

PostGIS将几何数据存储在“几何”类型的列中;您可以在其中存储或多或少的任意数据(点、圆、多边形等)。索引速度很快而且相当复杂:它可以执行诸如使用边界框对复杂形状进行有损索引之类的操作,否则这些复杂形状无法以任何合理的方式进行索引。支持不同的空间参考系统,查询结果自动转换。PostGIS 还支持行业标准的 OpenGIS 格式,这有助于与其他系统共享数据。

相比之下,内部几何类型及其索引的集合要简单得多。不存在真正的“通用”几何类型;相反,您必须选择列的类型为点、线、圆、多边形或其他类型;对于组合,您可能必须使用多个列。索引不太好;可以索引的不同类型的形状并不多(尽管您可以通过为它们使用单​​独的列并手动生成边界框来添加边界框支持),并且在某些情况下索引可能不会那么快。另一方面,如果内部几何类型满足您的需求,您将获得以下优势:您的应用程序可以更轻松地移植到安装了 Postgres 但未安装 PostGIS 的其他系统。

我的建议是尝试一下内部几何类型,看看它对你来说效果如何;如果您开始遇到问题,请尝试 PostGIS。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top