PostGIS可以将一列限制为多边形和多边形吗?


10

我目前正在使用PostGIS 1.5.3,但是很快我将升级到2.0。因此,请注意与以下问题相关的两个版本之间的任何差异。

  • 是否可以创建一个PostGIS几何类型的列,该列允许插入多边形和多多边形,但限制其他几何类型的插入,而无需手动修改PostGIS在调用AddGeometryColumn时生成的约束?
  • 有没有理由不这样做吗?特别是,PostGIS是否存储任何手动修改约束可能会产生负面影响的元数据?(我是PostGIS的新手,所以如果PostGIS存储元数据的想法很荒谬,请原谅我。)
  • 对所有事物使用多面体会产生多大的开销?

我已经知道在插入之前使用ST_Multi将多边形转换为多多边形,因此,如果不可能或不是一个好主意,我会做的。

Answers:


6

对于每个问题...

  1. 并非没有手动修改约束。

  2. PostGIS几何中存储了一些元数据。从技术上讲,没有理由不这样做。如果您想让一列包含多边形或多面体,那取决于您。坚持使用每列一种几何类型的一般原因是,随着表的增长和/或表的规模过大,它变得更加简单。

  3. 仅包含一个多边形的多面多边形将比仅该多边形大,但不会很大。但是,在空间上(使用适当的索引)查询具有一个多边形与仅一个多边形的多多边形的速度将是相同的。

对于我的数据,如果该列包含多边形,则我将该列设为多多边形,因为它允许在该列中插入多多边形。插入时只需运行ST_Multi。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.