Las base de datos Postgresql ha demostrado con creces su versatilidad y robustez. La aparición de las extensiones PostGIS han facilitado el tratamiento de datos geográficos. La combinación de PostGIS junto a Linux ofrece una plataforma muy sólida para tratar este tipo de datos.
En el pasado, la instalación de Linux era bastante farragosa, pero ahora gracias a los enormes avances en las distribuciones de Linux, su instalación es casi trivial. Una buena distribución de escritorio, de fácil instalación y amigable es Kubuntu. Aquí discutimos cómo instalar PostGIS en este distribución.
La distribución Kubuntu Dapper Drake no trae consigo paquetes para las extensiones PostGIS. En esta página voy a tratar de escribir una guía punto a punto de cómo instalar este paquete en nuestra flamante Kubuntu :)
Primero, se instalan los paquetes necesarios de los que sí dispone kubuntu. Abrimos una konsole, y escribimos (hay que tener añadido el repositorio Universe):
sudo apt-get install libgeos2 postgresql-8.1 \
postgresql-server-dev-8.1 libgeos-dev\
postgresql-dev flex byacc proj
Tras preguntarnos por la clave del usuario, el sistema se descargará unos 4Mb de datos, y procederá a instalar el motor postgresqlasí como otros programas necesarios. Seguidamente, creamos un directorio para código fuente, nos cambiamos a él, descargamos el código fuente de PostGIS, lo descomprimimos y entramos en el directorio creado:
mkdir src
cd src
wget postgis.refractions.net/download/postgis-1.1.5.tar.gz
tar -zxvf postgis-1.1.5.tar.gz
cd postgis-1.1.5
En este momento, es hora de configurar el código fuente, paso previo a su compilación:
./configure --prefix=/usr --with-pgsql=/usr/bin/pg_config --with-geos=/usr/bin/geos-config --with-proj=/usr
Es importante que primero veamos que la salida del comando pg_config es la adecuada, ya que a veces puede no ser correcta. En este caso, y asumiendo la versión 8.1 de PostgreSQL, deberíamos tener:
$ pg_config --includedir-server
/usr/include/postgresql/8.1/server
Si no es así, revisa las versiones de PostgreSQL. A partir de aquí, es muy fácil compilar el código fuente:
make
Y para instalarlo,
sudo make install
Si no ha habido errores, la cosa ya está. Vamos a probarlo todo, empezando por añadir un usuario "gis" a la base de datos (los usuarios de PostgreSQL son independientes de los usuarios del sistema donde corren). En un entorno de producción, se le otorgarían los privilegios justos para introducir, buscar o refrescar datos. Por lo de pronto, lo vamos a hacer a lo burro, y vamos a crear un superusuario. Como usuario postgres en Kubuntu, introduce
sudo su postgres -c createuser gis
Hemos creado el usuario gis. Siguiendo con el usuario postgres, vamos a darle una clave a este nuevo usuario:
sudo su postgres -c psql
#ALTER USER gis WITH PASSWORD 'gis' ;
\q
(no te olvides ni del punto y coma al final, ni de los apóstrofes que rodean a la nueva clave). Ahora usaremos el usuario gis para todo. Primero, creamos una base de datos llamada db_gis
createdb -U gis db_gis
(dependiendo de la configuración de PGSQL, se nos pedirá o no la palabra clave del usuario gis).
La vamos a configurar para datos espaciales (para PostGIS, en una palabra):
$ createlang -U gis plpgsql db_gis
$ psql -U gis -d db_gis -f \ /usr/share/postgresql/8.1/contrib/postgis-1.1.5/lwpostgis.sql
$ psql -U gis -d db_gis -f /usr/share/postgresql/8.1/contrib/postgis-1.1.5/spatial_ref_sys.sql
Ya está. A lo mejor tienes que buscar los ficheros lwpostgis.sql y spatial_ref_sys.sql por tu árbol de directorios.
Podemos proceder a importar un fichero shape (asumo que es el world.shp (baja los tres ficheros del directorio). Para importarlo, se usa la utilidad shp2pgsql, que viene con el PostGIS:
shp2pgsql -D world.shp World db_gis | psql -U gis -d db_gis
Ya está el fichero shape metido en la base de datos. Vamos a probar a abrirlo con QGIS. Lanza QGIS, y escoge la opción "Add a PostGIS layer". Añade una nueva conexión en la pate superior de la ventana que ha emergido, con el nombre de tu servidor, el usuario y clave, el puerto (5432), el nombre de la base de datos. Puedes comprobar fácilmente si la conexión funciona con un botón.
Una vez añadida la fuente, saldrá cuando nos conectemos a la base de datos la tabla World, que contiene los datos del shape importado antes. Al escogerla, tendremos acceso a un widget de consulta, que nos permitirá cargar únicamente los features que nos interesen. Una vez añadidas las capas que veamos convenientes, estarán disponibles en QGIS como cualquier otro dato vectorial.
He aquí el resultado:
