QGIS, Postgis: ¿Es posible crear una nueva capa postgis?

8

Situación:

Tengo un diseño vectorial postgis que tiene muchos segmentos de línea (las características). Quiero crear un conjunto de nuevas capas, cada una de las cuales contiene un subconjunto de las características de la capa original y tener estas capas también almacenadas en postgis. Idealmente con las características reales almacenadas solo una vez.

La única forma en que puedo ver para crear una nueva capa en lugar de cargar una de alguna fuente es a través de Layer-> new, que ofrece una opción de shapefile o spaceialite.

Al elegir el archivo de forma, primero traté de especificar los atributos gid y fid para la nueva capa, pero SPIT se queja del gid de campo duplicado cuando intento cargarlo en postgis.

Si no creo ningún atributo para la nueva capa, SPIT lo carga felizmente, presumiblemente duplicando todas las características.

Supongo que esto es una 'característica' en lugar de un descuido porque si fuera posible compartir características entre capas, ¿qué pasaría si una característica se dividiera? Si las cosas funcionaran correctamente, entonces todas las capas con referencia a esa característica necesitarían actualizarse con el nuevo gid de la nueva porción.

¿Es correcta esta interpretación?

Russell

Russell Fulton
fuente
1
No existe una función compartida. Solo tiene dos copias, divide una y la otra permanece igual.
Nathan W
Supuse que ese era probablemente el caso. Mi problema es que a lo largo de los años he sido completamente adoctrinado con el modelo relacional y la normalización de datos;)
Russell Fulton

Respuestas:

4

Con el complemento Administrador de PostGIS, puede crear nuevas tablas en una base de datos PostGIS.

También puede ejecutar sentencias SQL como

CREATE TABLE new_table AS SELECT * FROM old_table

duplicar una tabla

bajo oscuro
fuente
7

Esta es una pregunta algo más antigua y la respuesta correcta ha cambiado con las versiones recientes de QGIS.

PostGIS Manager ha quedado en desuso y ha sido reemplazado por DB Manager, que funciona tanto para PostGIS como para SpatiaLite.

DB Manager se instala de manera predeterminada y se puede acceder desde la Database > DB Managerentrada del menú. Eso abrirá la ventana del Administrador de DB.

Seleccione la base de datos a la que desea agregar una capa también y luego haga clic Table > Create table. Si no tiene una base de datos seleccionada cuando hace clic en la entrada del menú Tabla, la opción crear tabla no estará allí.

Eso abrirá el cuadro de diálogo Crear tabla, que es muy similar al que accede Layer > New > New SpatiaLiteLayer pero con un diseño diferente.

Las opciones son en su mayoría las mismas, con la mayor diferencia de que el cuadro de diálogo Nueva capa espacial permite el acceso al cuadro de diálogo Especificar CRS que facilita la selección de su sistema de coordenadas. El cuadro de diálogo Crear tabla requiere que conozca el número SRID de antemano para ingresarlo.

Gregory Arenius
fuente