Instalación de PostGIS para PostgreSQL

Instalación de PostGIS para PostgreSQL

Cada vez son más las aplicaciones que hacen uso de localizaciones dentro de su funcionamiento y que además, necesitan almacenarlas de alguna forma dentro de su base de datos. Es entonces cuando PostgreSQL toma ventaja frente a MySQL gracias a la existencia de PostGis.
PostGIS

PostGis es un software libre, tiene licencia GNU General Public License (GPL), convierte nuestra base de datos PostgreSQL en una base de datos espacial capacitada para almacenar y trabajar con datos espaciales.

La instalación es muy sencilla, esta que indico aquí es la que usé en local y en un servidor en producción con Ubuntu 12.04, supongo que en versiones posteriores será similar con algún cambio en las versiones de paquetes pero diría que la mecánica es la misma, pero si tenéis alguna duda preguntad en comentarios y lo vemos entre todos.

Instalamos los paquetes:

sudo apt-get install python-software-properties
sudo apt-add-repository ppa:ubuntugis/ppa
sudo apt-get update
sudo apt-get install postgresql-9.1-postgis
sudo apt-get install build-essential postgresql-9.1 postgresql-server-dev-9.1 libxml2-dev proj libjson0-dev xsltproc docbook-xsl docbook-mathml gettext postgresql-contrib-9.1 pgadmin3
sudo apt-get install python-software-properties
sudo apt-add-repository ppa:olivier-berten/geo
sudo apt-get update
sudo apt-get install libgdal-dev

Una vez realizadas estas instalaciones, verficamos la versión de libGDAL, que debe ser 1.9.0

$ gdal-config --version
1.9.0

También verificamos la de libGEOS

$ geos-config --version
3.3.2

Ahora debemos actualizar la versión de libGEOS a la 3.3.3, para ello realizamos los siguientes pasos:

sudo apt-get install g++ ruby ruby1.8-dev swig swig2.0 ''--- added to other instructions, not installed by default in 12.04 & required for this make
wget http://download.osgeo.org/geos/geos-3.3.3.tar.bz2
tar xvfj geos-3.3.3.tar.bz2
cd geos-3.3.3
./configure --enable-ruby --prefix=/usr

Al final del proceso de configuración debe aparecer lo siguiente:

Swig: true
Python bindings: false
Ruby bindings: true
PHP bindings: false

Finalmente, compilamos:

make
sudo make install
cd ..

y comprobamos nuevamente la version, que ya si debe ser la 3.3.3:

$ geos-config --version
3.3.3

 

Continuamos con la instalación de PostGis:

wget http://postgis.refractions.net/download/postgis-2.0.6.tar.gz
tar xfvz postgis-2.0.6.tar.gz
cd postgis-2.0.6
./configure --with-gui

El final de esta instalación debe decir algo así:

PostGIS is now configured for i686-pc-linux-gnu
-------------- Compiler Info -------------
C compiler: gcc -g -O2
C++ compiler: g++ -g -O2
-------------- Dependencies --------------
GEOS config: /usr/bin/geos-config
GEOS version: 3.3.3
GDAL config: /usr/bin/gdal-config
GDAL version: 1.9.0
PostgreSQL config: /usr/bin/pg_config
PostgreSQL version: PostgreSQL 9.1.3
PROJ4 version: 47
Libxml2 config: /usr/bin/xml2-config
Libxml2 version: 2.7.8
JSON-C support: yes
PostGIS debug level: 0
Perl: /usr/bin/perl
--------------- Extensions ---------------
PostGIS Raster: enabled
PostGIS Topology: enabled
-------- Documentation Generation --------
xsltproc: /usr/bin/xsltproc
xsl style sheets: /usr/share/xml/docbook/stylesheet/nwalsh
dblatex:
convert:
mathml2.dtd: /usr/share/xml/schema/w3c/mathml/dtd/mathml2.dtd

para finalizar la instalación, compilamos:

make
sudo make install
sudo ldconfig
sudo make comments-install

una vez terminados estos pasos, creamos el usuario de postgres:

sudo apt-get install postgresql-client
sudo -u postgres createuser --superuser $USER
sudo -u postgres psql
postgres=# password postgres (la password que he puesto es postgres)

Finalmente, creamos la plantilla template_postgis, que es la clave para la creación de una base de datos de tipo espacial.

sudo su postgres
sudo createdb template _postgis
sudo createlang plpgsql template_postgis
sudo psql -d template_postgis -f /usr/share/postgresql/9.1/contrib/postgis-2.0/postgis.sql
sudo psql -d template_postgis -f /usr/share/postgresql/9.1/contrib/postgis-2.0/spatial_ref_sys.sql
sudo psql -d template_postgis -c "SELECT postgis_full_version();"

Estas instrucciones son una adaptación mía de la guía que seguí: http://trac.osgeo.org/postgis/wiki/UsersWikiPostGIS20Ubuntu1204

Espero que no os haya aburrido con este extenso primer post que escribo en LH 🙂 .En próximas entradas ahondaremos más sobre bases de datos espaciales como esta que acabo de crear.