¿Puede PostGIS restringir una columna a multipolígonos y polígonos?

10

Actualmente estoy usando PostGIS 1.5.3, pero pronto actualizaré a 2.0. Por lo tanto, tenga en cuenta las diferencias entre las dos versiones que son relevantes para las siguientes preguntas.

  • ¿Es posible crear una columna del tipo de geometría PostGIS que permita la inserción de polígonos y multipolígonos pero restrinja la inserción de otros tipos de geometría sin modificar manualmente la restricción que PostGIS genera al llamar a AddGeometryColumn?
  • ¿Hay razones para no hacer esto? En particular, ¿PostGIS almacena metadatos que podrían afectar negativamente la modificación manual de la restricción? (Soy muy nuevo en PostGIS, así que perdóname si la idea de que PostGIS almacene metadatos es absurda).
  • ¿Cuán significativo es cualquier gasto general incurrido al usar multipolígonos para todo?

Ya estoy al tanto de usar ST_Multi para convertir polígonos en multipolígonos antes de la inserción, así que si no es posible o no es una buena idea, lo haré.

jpmc26
fuente

Respuestas:

6

Para cada una de tus preguntas ...

  1. No sin modificar manualmente la restricción.

  2. Hay algunos metadatos almacenados en la geometría PostGIS. Técnicamente, no hay razón para no hacer esto. Si desea que una columna contenga polígonos o multipolígonos, eso depende de usted. La razón general para seguir con un tipo de geometría por columna es la simplicidad a medida que la tabla crece y / o si la tabla es masiva.

  3. Un multipolígono compuesto por un solo polígono será más grande que solo el polígono, pero no significativamente. Sin embargo, la velocidad de consulta espacial (con el índice apropiado) del multipolígono con un polígono versus un solo polígono sería la misma.

Para mis datos, si la columna debe contener polígonos, tengo que ser un multipolígono, ya que permite la posibilidad de que se inserte un multipolígono en la columna. Simplemente ejecute ST_Multi mientras inserta.

polvo
fuente