CONSTRUCCIÓN DE UN VISOR DE SHAPEFILES CON HERRAMIENTAS LIBRES
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.
Para empezar, debo aclarar que no soy un buen programador, los programadores serios
pueden ver el siguiente artículo como poco profundo. Sin embargo, teniendo en cuenta mis
limitaciones, me parece fascinante poder integrar herramientas libres para obtener
resultados prácticos en el ámbito de la geomática.
¿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 GIS en el proyecto
MapWindow) existen tres tipos de escenarios para desarrollar software GIS:
1. Desarrollo de extensiones y plug-ins que agregan funcionalidades a software GIS
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
GIS programables.
Nuestro visor de datos espaciales en formato vectorial será una aplicación independiente en
el escritorio, empleando un componente GIS programable, el
MapWinGis.ocx de
MapWindow.
¿Qué herramientas de software se requieren?
: Windows XP (Bueno, por algo se empieza...)
Sistema Operativo
(Licencia: Privativa)
Public License)
Marco de Desarrollo de
Software
Entorno Integrado de Desarrollo (
Componente GIS
: MapWinGIS.ocx (del proyecto MapWindow
Gis
: .NET Framework 2.0 (Licencia: Freeware)
) : SharpDevelop 2.1 (Licencia: GNU/GPL)
IDE
) (Licencia: Mozilla
¿Qué es .NET Framework?
.NET Framework es un marco de desarrollo de software compuesto por lenguajes de
programación, una biblioteca de clases (BCL) y un entorno de ejecución común para
lenguajes (CLR). Implementa los estándares abiertos ECMA e ISO/IEC que propenden por
una compatibilidad mínima entre los lenguajes que lo integran.
En otros términos, .NET Framework se encarga de proveer al programador los lenguajes,
herramientas y servicios necesarios para distribuir su aplicación en múltiples plataformas de
hardware.
¿Qué es SharpDevelop?
SharpDevelop es un IDE OpenSource que soporta el desarrollo de aplicaciones en lenguajes
como C# y VB.NET; permite escribir código en ASP.NET, ADO.NET, XML y HTML, entre otros;
tiene un depurador integrado; permite diseñar formularios para C# y VB.NET; está
traducido parcialmente al español; soporta proyectos de instalación; tiene un generador de
documentación embebido; soporta múltiples Frameworks: .NET 1.1 y 2.0, Mono y Compact
Framework; y admite el protocolo ActiveX (de manera parcial).
Es un IDE muy completo que cubre fácilmente los requerimientos de un programador en C#
o VB.NET. Particularmente, además de las necesidades básicas, necesitaba un entorno que
permitiera el manejo de componentes ActiveX y SharpDevelop lo cumple.
¿Qué es el MapWinGIS.ocx?
El MapWinGIS.ocx es un componente ActiveX escrito en C++ y desarrollado por el proyecto
MapWindow Gis. Facilita el desarrollo de aplicaciones en varios lenguajes de programación
(C#, VC++, VB6, VB.NET, VBA y Delphi). Esta compuesto por una Interfaz de Programación
de Aplicaciones (API) que permite el acceso a objetos, funciones, propiedades y métodos
relativos a la visualización y manipulación básica de información geográfica en formato
Shapefile, Grid y TIN.
Para comenzar...
Para comenzar la construcción del visor, debemos instalar el software requerido.
Instalación del .NET Framework
El .NET Framework 2.0 se puede descargar aquí. Tiene un tamaño de 22,4 MB y requiere el
Service Pack 2 de Windows instalado.
Una vez descargado, debemos ejecutar el archivo y seguir normalmente los pasos de
instalación.
Instalación del SharpDevelop 2.1
El instalador de Sharpdevelop 2.1 puede obtenerse aquí.
Contrario a lo que podríamos pensar sobre un tamaño exagerado del archivo de instalación
(pues es un IDE muy completo), solamente ocupa 8,63 MB en el disco duro y después de
instalado únicamente 34,26 MB, realmente sorprendente.
La instalación de SharpDevelop no presenta mayores inconvenientes.
Instalación del componente ActiveX MapWinGIS.ocx
Podemos obtener el componente MapWinGIS.ocx sin incluir sus dependencias aquí (archivo
comprimido, 2,23 MB), o incluyendo sus dependencias aquí (archivo ejecutable 15 MB). El
componente ActiveX requiere de varios archivos dll (runtimes de C y C++ 7.0) para
funcionar correctamente, si se quiere estar seguro sobre el funcionamiento del mismo, se
recomienda descargar la segunda opción, es decir, el archivo con dependencias.
1. Si se descargó el archivo sin dependencias
:
Descomprimir el archivo MapWinGis43.zip
Copiar el archivo MapWinGis.ocx a una de las siguientes carpetas:
c:\Archivos de Programa\Archivos Comunes\MapWindow\
c:\Archivos de Programa\Common Files\MapWindow\
Debemos crear la carpeta si no existe. En realidad no interesa en qué carpeta se
encuentre el archivo pero se recomienda una de las carpetas mencionadas para
poderlo encontrar fácilmente si se planean realizar más aplicaciones que
utilicen el componente.
2. Si se descargó el archivo con dependencias
:
Ejecutar el archivo MapWinGis43OCXOnly.exe y seleccionar la opción “No, I will
restart the computer later”.
El archivo MapWinGis43OCXOnly.exe instala las dependencias del componente
ActiveX y el archivo MapWinGis.ocx en la carpeta
c:\Archivos de Programa\Common Files\MapWindow\
Ahora debemos registrar el archivo MapWinGis.ocx en el sistema:
Abrir la ventana Ejecutar: Vamos a Inicio --> Ejecutar
Correr el comando de registro de componentes:
En la caja de texto que aparece en la ventana Ejecutar, escribimos:
regsvr32.exe “C:\Archivos de programa\Archivos comunes\MapWindow\MapWinGIS.ocx” o
regsvr32.exe “C:\Archivos de programa\Common Files\MapWindow\MapWinGIS.ocx”
dependiendo del directorio en el que se encuentre el componente. Obtenemos:
Lo cual nos indica que tenemos el ActiveX registrado.
Un obstáculo por superar
El ActiveX MapWinGis.ocx es un componente que emplea la tecnología COM, la cual no es
soportada de manera directa por .NET; para poder utilizarlo en nuestra aplicación se deben
crear un par de archivos interoperables con la tecnología .NET.
Estos archivos interoperables pueden ser generados empleando herramientas del Kit de
Desarrollo de Software de .NET (.NET SDK), que se encuentra en internet con licencia
Freeware. Sin embargo, el archivo de descarga tiene un tamaño superior a los 350 MB, por
lo cual el proceso puede resultar inoportuno si se tiene en cuenta nuestro objetivo. Para
conocer el procedimiento de obtención de los archivos interoperables podemos visitar esta
página web.
Como alternativa práctica, podemos optar por descargar directamente los archivos
interoperables aquí (archivo comprimido, 46 KB). Tras descomprimir el archivo, obtenemos
dos dll:
AxInterop.MapWinGIS.dll
Interop.MapWinGIS.dll
Estos archivos no requieren de registro en el sistema porque son componentes .NET; son
importantes porque posibilitan el acceso a los objetos, funciones, propiedades y métodos
del componente programable MapWinGis en nuestra aplicación.
Ahora debemos copiar los dos archivos en la carpeta en la que se encuentra el componente
MapWinGis.ocx (el cual debe dejarse allí pues su registro es necesario para la aplicación).
Hemos terminado con la instalación del software requerido para la construcción de nuestro
propio visor, el siguiente paso es crear un proyecto .NET para escribir nuestro código allí.
Creando el proyecto .NET
Empezaremos a utilizar el Entorno Integrado de Desarrollo SharpDevelop, cuya interfaz
luce así:
Damos click en el botón Nueva Solución y obtenemos el siguiente diálogo:
Escogemos en la parte izquierda la categoría VBNET y la subcategoría Aplicaciones de
Windows. En la parte derecha seleccionamos Aplicación Windows. Digitamos en la caja de
texto el nombre “Mi_Visor_de_Shapefiles” y seleccionamos la ubicación del proyecto.
Damos click en Crear y tenemos la estructura de nuestro proyecto.
En la parte izquierda de la interfaz de SharpDevelop podemos encontrar que la pestaña
Proyectos se encuentra activa. Observamos que nuestro proyecto tiene Referencias, un
archivo de Información del ensamblado que compilaremos (AssemblyInfo.vb), una Forma
Principal (MainForma.vb) y una clase que controla el comportamiento de nuestra aplicación
(Program.vb). Estos archivos y referencias iniciales son creados por SharpDevelop
facilitando el proceso de desarrollo de la aplicación.
Agregando referencias
Debemos crear referencias a los archivos interoperables desde nuestro proyecto. Para ello,
en la pestaña Proyectos damos click derecho a Referencias y seleccionamos Agregar
Referencias.
Activamos la pestaña Visor de Ensamblados .NET y damos click en Explorar. Vamos al
directorio en donde se encuentran
interoperables
(AxInterop.
Comentarios de: Construcción de un visor de shapefiles con herramientas libres (1)