elige tu idioma english spanish

shell

¿quieres conocer mejor tus máquinas?

15 febrero 2010

Configurando debian 4.0 (etch) para usar geodjango


  • Geodjango es una de las más excelentes extensiones que django ha recibido en los últimos tiempos.
  • Geodjango facilita increiblemente el trabajo con información GIS desde nuestras aplicaciones de django.

¿Qué es GIS?

GIS, sistema de información geográfica, su acrónimo inglés (Geographic Information System) se aplica a la integración necesaria para capturar, almacenar, manipular y analizar información geográficamente referenciada con el fin de resolver problemas complejos de otra manera imposibles de resolver.

¿Qué es geodjango?

Geodjango, inicialmente una extensión de django termino formando parte del core el 5 de agosto de 2008, tiene como objetivo facilitar lo máximo posible realizar aplicaciones web que utilicen información GIS.

A modo de ejemplo esta sería una query que podríamos ejecutar desde nuestro proyecto django:

Location.objects.distance(‘POINT (42.862376386912, 2.690448760986)’).order_by('distance')[:5]

Geodjango nos devolvería los cinco objetos más cercanos a esas cordenadas ordenados por su distancia.

Configurando el servidor

Si bien dispone de una excelente documentación vamos a resumir los pasos a seguir para configurar nuestro servidor debian Etch 4.0 para utilizar postgis la extension de postgres necesaria para trabajar con bases de datos gis usando geodjango. Necesitamos instalar unos cuantos paquetes:

sudo apt-get install binutils bzip2 gcc g++ flex make postgresql-8.1 postgresql-server-dev-8.1 python-ctypes python-psycopg2 python-setuptools postgresql-8.3-postgis

Antes de nada vamos a crear lo siguientes vínculos logicos:

ln -s /usr/share/postgresql-8.3-postgis/{lwpostgis,spatial_ref_sys}.sql /usr/share/postgresql/8.3

A continuación vamos a crear la template GIS necesaria, para ello nos identificamos como postgres utilizando:su - postgres y a continuación creamos y ejecutamos el siguiente script:

#!/usr/bin/env bash
createdb -E UTF8 template_postgis
createlang -d template_postgis plpgsql
psql -d template_postgis -f `pg_config --sharedir`/lwpostgis.sql
psql -d template_postgis -f `pg_config --sharedir`/spatial_ref_sys.sql
psql -d template_postgis -c "GRANT ALL ON geometry_columns TO PUBLIC;"
psql -d template_postgis -c "GRANT ALL ON spatial_ref_sys TO PUBLIC;"

Hasta el momento tenemos postgresql instalado y hemos creado la template postgis que necesitaremos utilizar cuando creemos nuestras bases de datos gis. A continuación vamos a crear nuestro usuario de la base de datos, para ello ejecutamos: createuser theuser y creamos una base de datos llamada mydb para el usuario theuser utilizando la template template_postgis.

createdb -T template_postgis -U postgres -O theuser mydb

Ya podríamos utilizar esta base de datos, pero para poder acceder remotamente a ella necesitamos cambiar el listen_address que viene configurada por defecto en debian para postgresql a 127.0.0.1. Editamos el fichero postgresql.conf que se encuentra en /etc/postgresql/8.3/main/postgresql.conf y cambiamos la siguiente linea

listen_addresses = '127.0.0.1'
por
listen_addresses = 'ip_del_servidor'

Por último reiniciamos nuestro servidor y todo listo:

/etc/init.d/postgresql-8.3 restart

Uno de los pasos más costosos a la hora de adentrarse en el mundo GIS suele resultar configurar un entorno de desarrollo sobre el que comenzar a realizar pruebas. Si dispones de experiencia utilizando django y necesitas gestionar información geográfica u operar con ella, geodjango es una solución excelente.

En proximos artículos trataré de adetraros en geodjango y sus potentes posibilidades.


Esta entrada tiene 0 comentario. Puedes comentar:

¡Ey! Nos gustaría saber qué piensas sobre este tema. ¡Dejar un comentario no cuesta nada!


Dejar un comentario

Por favor, asegúrate de que has rellenado todos los campos obligatorios (*).

Nombre*
Email*
Sitio web
Tu mensaje*
20+20=* (¿No eres un robot, verdad?)