Tengo un problema con postgresql y QGIS:
- Puedo agregar puntos / líneas / polígonos y campo de relleno
Pero no puedo:
- eliminar puntos / líneas / polígonos
- Modificar puntos / líneas / polígonos (mover o modificar el campo)
ej .: dbname = 'Europa' host = puerto localhost = 5432 usuario = 'postgres' sslmode = deshabilitar clave = 'tid' estimado de metadatos = verdadero srid = 900913 type = Point table = "public". "planet_osm_point" (way) sql =
QGIS está conectado como nivel de administrador en la base de datos. Con pdAdmin III puedo hacer todo (crear, eliminar, modificar ...)
La base de datos postgresql se importa de OSM con osm2pgsql .
En otra capa, como .shp, no tengo este problema.
Alguna idea ?
Configuración: Ubuntu 14.04 / Posgresql 9.4 / QGIS 2.10
qgis
postgresql
editing
osm2pgsql
Mathieu
fuente
fuente
Respuestas:
Fijo. El problema fue que no hay clave principal.
En pgAdmin haz esta solicitud.
ALTER TABLE tableName AGREGAR CLAVE PRIMARIA (id);
Ejemplo para la tabla planet_osm_line y establecer la columna osm_id, como clave primaria:
ALTER TABLE planet_osm_line AGREGAR CLAVE PRIMARIA (osm_id);
hasta que osm_id es único.
fuente
La solución es crear una clave primaria, como ya se mencionó.
Pero por diseño,
osm2pgsql
no garantiza queosm_id
sea único. Puede producir varias filas con el mismo osm_id .Para editar
planet_osm_*
tablas en QGIS, es aconsejable agregar otra columna de identificación, por ejemplogid
.Para agregar una
gid
columna única :QGIS tiene problemas si la columna de geometría es solo GEOMETRÍA. Algunas consultas pueden fallar. Me pareció útil cambiar la
planet_osm_polygon
geometríaMultiPolygon
con:fuente
Creo que este es un tema clave principal. Su tabla debe tener uno y eso se reconoce cuando ve la tabla a través de PGAdmin.
Tuve el mismo problema, pero volví a cargar la capa con un campo de clave principal llamado ID (arbitrario) y todas mis herramientas de edición ahora están activas en la barra de herramientas.
Con SQL, puede agregar una columna OID del tipo de datos 'en serie' y crear una clave principal con esta instrucción:
Usando una GUI, puede volver a cargar su capa con una clave principal que será reconocida por la base de datos y, por lo tanto, PostGIS y QGIS:
Desde allí, regrese a PGAdmin, conéctese a su base de datos y haga clic en la tabla que acaba de volver a crear; ahora puede ver si se reconoce la columna OID:
fuente