PostGIS es una extensión que convierte el sistema de base de datos PostgreSQL en una base de datos espacial. La combinación de ambos es una solución perfecta para el almacenamiento, gestión y mantenimiento de datos espaciales. Hay muchos motivos para comenzar a utilizar PostGIS y dejar de utilizar archivos como el shapefile.
Existe un gran número de clientes SIG de escritorio y servidores de mapas web que pueden trabajar con PostGIS. Entre ellos destaca QGIS, puesto que QGIS nació como un visualizador de tablas PostGIS.
En este tutorial te explicamos cómo conectar QGIS con PostGIS para visualizar y editar las tablas almacenadas en PostGIS. Si te interesa conectar ArcGIS con PostGIS revisa este tutorial.
Para usar capas de una base de datos PostGIS en QGIS, previamente debemos tener lo siguiente:
- Tener instalado QGIS (si no lo tienes puedes instalarlo desde aquí).
- Tener instalado PostgreSQL (puedes descargarlo desde esta enlace).
- Haber creado una base de datos y dotarla de capacidades espaciales.
- Disponer de tablas en esta base de datos.
Asumiendo que ya tenemos PostgreSQL instalado, una base de datos espacial creada y las capas importadas a la base de datos podremos realizar la conexión a PostGIS desde QGIS para visualizar esas capas.
Estos son los pasos:
1. Abrimos QGIS y pinchamos sobre el icono Añadir capas PostGIS:
2. Se abre el Administrador de fuentes de datos | PostgreSQL:
3. Hacemos clic sobre el botón Nueva y en la ventana que se abre introducimos los parámetros de conexión:
- Nombre: establecemos un nombre (el que queramos) que defina a la conexión.
- Servicio: Lo dejaremos en blanco. El parámetro Servicio permite especificar un archivo de conexión, que contiene los parámetros necesarios para acceder a una determinada base de datos. Si empleásemos este archivo podríamos omitir la entrada de puerto, usuario o contraseña, dejándolos en blanco.
- Anfitrión: el nombre del servidor.
- Puerto: normalmente será 5432.
- Base de datos: Nombre de la base de datos donde tenemos las capas que queremos añadir a QGIS.
- En el apartado Autenticación debemos ir a la pestaña Básica e introducir el nombre de usuario y contraseña: en PostgreSQL por defecto serán postgres / postgres.
4. Una vez introducidos, hacemos clic sobre el botón Probar conexión. Si todo es correcto obtendremos el mensaje: «La conexión a nombredelabasededatos tuvo éxito».
5. Pinchamos sobre el botón OK. En este momento la información de conexión se guardará con el nombre en la lista de conexiones.
6. A continuación pinchamos en el botón Conectar y obtenemos un listado de las tablas espaciales de la base de datos:
7. Seleccionamos las tablas de ciudades y países y hacemos clic en el botón Añadir. Estas capas se cargarán en la vista de QGIS:
Edición de las tablas PostGIS con QGIS
Una vez añadidas las tablas con el componente espacial podemos editar tanto su geometría como sus atributos. Hacemos clic derecho sobre una capa y a continuación “Conmutar edición” y las editamos como si se tratase de cualquier otra capa vectorial.
Si te ha gustado este tutorial, ¡compártelo!
Licenciado en Geografía. Máster en Sistemas de Información Geográfica. Consultor GIS desde el año 2004. En MappingGIS desde el año 2012 para ayudarte a impulsar tu perfil GIS y diferenciarte de la competencia. Echa un vistazo a todos nuestros cursos de SIG online.
Buenos días,
Os quería consultar una duda que me ha surgido en torno a las geodatabases de PostGIS:
Un vez creada y conectada a QGIS y tras haber importado una serie de capas a la misma, ¿ sería posible compartirla de alguna manera para que la puedan ver y editar un pequeño número de personas? Es que estoy realizando las prácticas universitarias en una pequeña empresa y me han pedido que comparta la geodatabase, creada en pgadmin 4 y editada en QGIS, para que mis compañeros puedan acceder a ella desde sus ordenadores.
Un saludo
Hola Miguel,
Para permitir las conexiones de otros usuarios es necesario realizar unas modificaciones en los ficheros de configuración. Cuando se instala PostgreSQL por primera vez, solo puede conectarse desde el servidor local.
Para permitir que los otros equipos en la red se conecten, debemos modificar el archivo pg_hba.conf.: https://www.postgresql.org/docs/current/auth-pg-hba-conf.html
Saludos
Cordial saludo
Necesito crear una base de datos para cuando cargue los shapes mediante codigos se llene columnas nuevas con información que corresponda al codigo en tipo texto, numerico o alfanumerico algo similiar a lo que se realiza en las geodatabase de arcgis. Esto se realiza en posgresql + posgis o por spatialite.
Hola Carlos Arturo,
Esto lo puedes realizar mediante el uso de funciones disparador en PostGIS. En nuestro curso de PostGIS te explicamos como realizar estas actualizaciones automáticas: http://mappinggis.com/cursos/postgis/ Saludos!
Cordial Saludo.
Mi necesidad es convertir direcciones catastrales (P. ej: Calle 20 no. 40-60 Quito) en coordenadas geográficas (latitud y longitud).
Aparte de las API’s de google (que tienen ciertas fallas de precisión), que otra opción se puede emplear?
Gracias.
Hola Oar,
Pásate por este post: Geocodificación en GIS, en el que se muestran barias opciones par codificar direcciones. Un saludo!
Hola es mi trabajo uso esta herramienta pero no he podido conectarme a lo que ingreso las claves de coneccion me da error, he colocado la clave local,la clave del usuario de la computadora,la clave generica, pero nada no puedo conectar postgis desde qgis…
Por favor necesito ayuda!!!
Cuando hago todo lo que pone, me pide una contraseña. Es posible? Cuál es?
Gracias
Hola David,
La contraseña es la misma que tengas establecida en tu instalación de PostGIS. En la versión 2.1 acepta cualquier contraseña, en versiones anteriores por defecto la contraseña para el usuario postgres se ha establecido era postgres. Saludos!
No entiendo la lentitud en la apertura de tablas postgis en qgis cuando supera los 50000 registros.
Hola Rubén,
Es extraño porque QGIS surgió como un visualizador de tablas de PostGIS. Quizá las tablas tengan una estructura geométrica muy compleja o excesivo número de campos, ¿Estás utilizando índices espaciales?
Quizá el problema sea de QGIS, prueba a crear un proyecto en blanco y añadir una única tabla de PostGIS.
Saludos!