PDF de programación - Construcción de un visor de shapefiles con herramientas libres

Imágen de pdf Construcción de un visor de shapefiles con herramientas libres

Construcción de un visor de shapefiles con herramientas libresgráfica de visualizaciones

Publicado el 28 de Mayo del 2018
1.067 visualizaciones desde el 28 de Mayo del 2018
433,4 KB
15 paginas
Creado hace 14a (27/05/2009)
CONSTRUCCIÓN DE UN VISOR DE SHAPEFILES

CON HERRAMIENTAS LIBRES
Quantum GIS, Qt y Python

Germán Alonso Carrillo Romero
[email protected]

http://geotux.tuxfamily.org

Introducción

Con el ánimo de construir mi propio visor de datos espaciales en formato
vectorial, me di a la tarea de buscar herramientas de software que me lo
permitieran de la manera más libre posible.

En este artículo pretendo mostrar cómo construir un visor de datos vectoriales en
formato Shapefile con algunas herramientas básicas de navegación empleando
software libre.

Figura 1. Visor de Shapefiles a realizar.

¿Para qué tener mi propio visor?

 Para poder acceder rápidamente a mis datos espaciales, sin tener que
cargar los programas usuales, que pueden consumir recursos innecesarios
en operaciones simples de consulta.

 Para aprender a emplear y a integrar las facilidades que presentan muchos
de los proyectos de filosofía libre, demostrando así que el principal
obstáculo en la implementación de estas herramientas es nuestro
desconocimiento y no sus limitaciones funcionales.

¿Qué tipo de aplicación se va a generar?

Según Daniel P. Ames, quien está a cargo del desarrollo de componentes de
Sistemas de Información Geográfica (SIG) en el proyecto MapWindow1, existen
tres tipos de escenarios para desarrollar software SIG:

1. Desarrollo de extensiones y plug-ins que agregan funcionalidades a

software SIG existente en el escritorio.

2. Desarrollo de herramientas web de visualización y generación de mapas.
3. Desarrollo de aplicaciones independientes en el escritorio empleando

componentes SIG programables.

Nuestro visor de datos espaciales en formato vectorial será una aplicación
independiente en el escritorio, empleando las librerías del proyecto Quantum GIS2
que servirán como componentes SIG programables.

¿Qué herramientas de software se requieren?

 Sistemas Operativo

: GNU/Linux (Con algunos ajustes puede emplearse en

 Lenguaje de Programación
 Marco Multiplataforma de Desarrollo de Aplicaciones


Windows XP o Mac OS X)


Dual, GNU/GPL y Comercial) y su herramienta gráfica Qt Designer.

GPL y Comercial).


: Quantum GIS (Licencia: GNU/GPL)

 Librerías SIG

 Python Bindings

: PyQGIS (Licencia: GNU/GPL) y PyQt4 (Licencia: Dual, GNU/

: Python (Licencia: Compatible con GNU/GPL)

: Qt 4.4. (Licencia3:

Python

Python es un lenguaje de programación interpretado, multiplataforma y orientado
a objetos creado a principios de los años 90. Se caracteriza por tener una sintaxis
clara (que da buena legibilidad al código), por tener tipado dinámico (no es
necesario declarar el tipo de las variables) y por ser fuertemente tipado (no se
puede tratar una variable como si fuera de un tipo distinto al que tiene).

Python es un lenguaje muy potente que ha incursionado en muchos campos,
como por ejemplo el de los programas SIG, dotando de sencillez el desarrollo de
funcionalidades y plug-ins.

Los lenguajes de programación interpretados son más lentos que los compilados
debido a que un intérprete debe traducir el script cada vez que este se ejecuta.
Sin embargo, Python maneja un mecanismo similar al de Java, pasando el código
fuente a un código intermedio para que este sea el que se ejecute ante cualquier
llamado posterior.4

En febrero de 2009 se lanzó la versión 3.0 de Python. Esta versión es
incompatible hacia atrás por lo que los desarrollos con las versiones 2.x no podrán
correr en la nueva. Cuando sea oportuno hacerlo (ahora no lo es pues las librerías
necesarias no están migradas) actualizaré este artículo para que sea compatible
del todo con la versión 3.0. En todo caso, eso será más adelante pues el proceso
de migración del andamiaje de librerías puede tomar meses.

Qt y Qt Designer

Qt es un marco multiplataforma para el desarrollo de aplicaciones. Está escrito en
C++. Se caracteriza porque permite que los proyectos compilados sean
ejecutados en diversas plataformas como GNU/Linux, Mac OS X, Windows y
Windows CE. Qt provee clases para el manejo de elementos de interfaz gráfica de
usuario que son utilizados por múltiples aplicaciones, como por ejemplo, el
virtualizador VirtualBox.

Qt Designer es una herramienta para diseñar y construir interfaces gráficas de
usuario (GUI) a partir de componentes de Qt.

En marzo de 2009 se lanzó la versión 4.5 de Qt. Cuando sea oportuno actualizaré
este documento para que funcione con la nueva versión.


PyQGIS y PyQt

Una de las grandes potencialidades de Python es su capacidad para tomar
librerías existentes, escritas en C y C++, y hacerlas disponibles como módulos de
extensión. Estos módulos de extensión son conocidos como Bindings para la
librería5.

Por ejemplo, Quantum GIS está escrito en C++, pero provee los bindings (PyQGIS)
que permiten desarrollar aplicaciones independientes de escritorio y plug-ins para
Quantum GIS empleando Python.

Para el desarrollo del visor de Shapefiles se emplearán los siguientes bindings:

• PyQt4: Bindings para Qt4. Permiten hacer uso de gran parte de las clases y
objetos de interfaz de usuario del proyecto Qt4 desde Python. Tiene licencia
dual, como Qt, es decir, tiene una versión GPL y una versión comercial que
permite cerrar los desarrollos.
• PyQGIS: Bindings para QGIS. Los provee el proyecto Quantum GIS desde su
versión 0.9 en septiembre de 2007. Según Martin Dobias, desarrollador del
mencionado programa para SIG, PyQGIS es un 99% idéntico a la Interfaz de
Programación de Aplicaciones (API) en C++. PyQGIS está incorporado en el
instalador de QGIS 1.0.

La API de Quantum GIS

El proyecto Quantum GIS no solo se ha enfocado en proveer una aplicación de
escritorio para SIG, sino que también pretende disponer librerías SIG para ser
empleadas en la elaboración de aplicaciones independientes en el escritorio,
como es el caso de este visor de Shapefiles, y en el desarrollo de plug-ins.

Las librerías SIG de Quantum GIS son un conjunto de clases en C++ que permiten
acceder y manipular los objetos espaciales que un programa SIG necesita. Las
librerías son:

• Core (Núcleo): Contiene las funcionalidades SIG.
• Gui: Está construida sobre la librería Core. Contiene controles reusables
para la interfaz de usuario como por ejemplo el Map Canvas, la región en la
cual se despliega y manipula el mapa.
• MapComposer (Generación de Mapas): Contiene funcionalidades para

generar salidas gráficas.

Quantum GIS provee desde la versión 1.0, lanzada en diciembre de 2008, una API
estable y compatible hacia atrás, esto implica que los desarrolladores tienen la
certeza que al emplear la versión 1.0 no tendrán problemas de compatibilidad con
futuros lanzamientos.

Para comenzar...
Para comenzar la construcción del visor, debemos instalar el software requerido.
En este documento mencionamos la manera de instalar el software en la
distribución Ubuntu Linux, para otras distribuciones puede hacerse uso de
comandos similares o del gestor de descargas correspondiente. Para Windows
puede utilizarse el paquete OSGeo4W6 y hacer uso del instalador oficial de
PyQt47.

Instalación en Ubuntu Linux
Esta instalación se lleva a cabo en Ubuntu Linux versión Jaunty (9.04), en todo
caso puede servirte si tienes una versión más antigua, solo cambias el jaunty por
intrepid (8.10), hardy (8.04) o gutsy (7.10) en el primer paso.

1. Agregar al archivo /etc/apt/sources.list los repositorios para descargar QGIS:

deb http://ppa.launchpad.net/qgis/unstable/ubuntu jaunty main
deb­src http://ppa.launchpad.net/qgis/unstable/ubuntu jaunty main

2. Actualizar la lista de paquetes del gestor de descargas (desde la terminal):

3. Instalar los programas necesarios (desde la terminal):

sudo apt­get update

sudo apt­get install pyqt4­dev­tools python python­qt4 qt4­designer qgis 

Ahora tenemos instalado el software que necesitamos, el siguiente paso es crear
una carpeta en nuestro disco duro para guardar allí los archivos del visor de
Shapefiles. Por ejemplo:

/home/german/visor_shapefiles_qgis/

Esta será la carpeta en la que almacenaremos todos los archivos que vamos a
crear a continuación.

Probando las librerías
Antes de iniciar es bueno asegurarnos que podemos usar las librerías de PyQt4 y
PyQGIS en Python o de lo contrario podemos tener algunos percances.

Abrimos una terminal para fijar una variable de entorno (PYTHONPATH) que le
diga a Python dónde encontrar los bindings de QGIS. Tecleamos en la terminal el
siguiente comando:

export PYTHONPATH=/usr/share/qgis/python

Donde /usr/share/qgis/python es la ruta a los bindings de QGIS. Esta es la
carpeta en donde se instalan por defecto pero pueden encontrarse en otra,
dependiendo del proceso de instalación.

En Windows se debe usar el comando set desde una terminal, así:

set PYTHONPATH=”C:\Archivos de programa\qgis\python”

O su correspondiente ruta.

Después de definir la variable de entorno PYTHONPATH, abrimos una consola de
Python y tecleamos las siguientes líneas:

import PyQt4.QtCore
import PyQt4.QtGui 
import qgis.core   
import qgis.gui    

Debemos obtener algo como esto:

Figura 2. Consola de Python.

Si se obtienen errores es posible que la variable de entorno PYTHONPATH no esté
correctamente definida por lo cual tendríamos que revisar la ruta a los bindings
de QGIS.

Ahora podemos proceder a crear la interfaz para el visor de Shapefiles.

Creando la interfaz del visor

Para crear la interfaz del visor de Shapefiles utilizaremos el programa Qt
Designer. Para abrir el programa podemos
  • Links de descarga
http://lwp-l.com/pdf11380

Comentarios de: Construcción de un visor de shapefiles con herramientas libres (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad