GIS On-line está basado en su totalidad en recursos de fuente libre. Para desarrollarlo utilizamos una amplia gama de herramientas y software, además de diversos lenguajes de programación. Todos ellos son herramientas para la creación de páginas Web, bases de datos e integradores de datos geográficos.
Servidor WMS y WFS
Si quieres un mapa temático en tu aplicación, basado en tus propios datos, será necesario crear tu propio servicio WMS (Web Mapping Service) o WFS (Web Feature Service). Un servidor WMS nos permite básicamente visualizar la cartografía según nuestras especificaciones. Un ejemplo de un servicio WMS que todos conocemos es el mapa de Google. Este servicio WMS lo utilizaremos como fondo en GIS On-line, para saber dónde estamos.
Para visualizar, por ejemplo, nuestro propio mapa de ventas por código postal por encima de este fondo, nos hará falta crear nuestro propio servicio WMS. Para ello disponemos, tanto del mapa de códigos postales como de las ventas por código postal en nuestra base geográfica. Instalaremos entonces un servidor WMS y lo programaremos para representar el mapa temático con los rangos de datos, colores deseados o gráficos en el mapa. Posteriomente, en nuestro GIS On-line realizaremos una llamada a nuestro servicio WMS y presentaremos el resultado como un mapa temático de ventas. Una vez definido, con solo cambiar el contenido de la base de datos con nuevas cifras de ventas el servidor WMS nos realizará el mapa basado en los datos actuales. Hay varios servidores WMS / WFS de software libre disponibles, pero los más conocidos son MapServer y GeoServer. En GIS On-line normalmente utilizamos MapServer para realizar nuestro propio servicio WMS, el cual ajustamos a cada cliente y que os generará mapas con vuestros propios datos.
Sistema de base de datos
La base de datos en si forma una de las partes básicas de cualquier aplicación de TI. La base de datos te permite cargar tus datos, gestionarlos y utilizarlos en diferentes aplicaciones. Tu GIS On-line tendrá además unos requerimientos específicos: nos hará falta un sistema de base de datos capaz de almacenar elementos geográficos, gestionarlos, manipularlos y representarlos. En el mundo del software libre hay 2 sistemas de bases de datos comunes; MySQL y PostgreSQL. Ambos sistemas permiten almacenar, gestionar y presentar elementos geográficos en forma de puntos, líneas y polígonos. No obstante, si a PostgreSQL le añadimos la extensión de PostGIS, tiene muchas más funciones para analizar y tratar datos geográficos, convirtiéndose así en el sistema preferido para GIS On-line.
Muchos de los clientes de GIS On-line tienen ya instalado un sistema de bases de datos comercial, como Oracle, SQL Server o cualquier otro. Teníamos claro que debíamos adaptarnos a dichos sistemas preexistentes y no crear nuevos sistemas que no harían sino complicar y alargar el proceso y la comodidad de los usuarios de la plataforma. Gracias al estándar de acceso a bases de datos de ODBC (Open Database Conectivity), que está soportado por todos los sistemas de bases de datos, podemos trabajar en GIS On-line con datos que ya estén gestionando nuestros clientes. El mismo ODBC también permite conectarse a otros sistemas de datos, por ejemplo sistemas CRM (Customer Relationship Management) o BI (Business Inteligence).En cualquier caso, puede ser el mismo usuario el encargado de subir dichos datos con la frecuencia que estime oportuna, normalmente de forma mensual o trimestral.
Geografía en tu página
En GIS On-line no solamente representamos los datos en forma de mapas, sino también en forma de listados, gráficos y ventanas emergentes. Existen multitud de librerías posibles para cualquier tipo de representación de datos. Abajo presentamos algunas de las que utilizamos en GIS On-line. Todas han sido desarrolladas en JavaScript, un lenguaje de programación que se ejecuta en el ordenador del usuario.
En cuanto a la presentación de mapas digitales en páginas y aplicaciones Web se refiere, OpenLayers ha sido el estándar desde hace ya varios años. Esta librería es capaz de utilizar diferentes fuentes WMS / WFS y combinarlas para dar como resultado en un mapa final en tu aplicación. Contiene muchas formas de interación del usuario con el mapa, como acercar, alejar o mover el mapa; o presentar y ocultar diferentes capas. También nos permite dibujar nuevos elementos geográficos, sacar datos del mapa, trabajar con datos vectoriales y un largo etcetera.
Para presentar datos de nuestra base geográfica en forma de listados utilizaremos jqGrid. Esta librería contiene todos los procedimientos para crear listados, ordenarlos por columnas, buscar, seleccionar, etc. Esta librería está creado en lenguaje jQuery.
Otra librería que utilizamos es jqPlot, una librería que nos permite generar gráficos con los datos contenidos en nuestra base de datos. Según la selección de datos que realicemos podemos presentar diferentes tipos de gráficos, como barras, líneas o tartas.
Atando cabos
Toda la tecnología de aplicaciones en la nube la podemos dividir en 2 partes: la que ejecutamos en el servidor (server-side) y la que se ejecuta en el ordenador del usuario (client-side). El servidor WMS / WFS y un sistema de base de datos de GIS On-line son sistemas server-side, mientras que la presentación y el manejo los mapas, listados y gráficos en tu aplicación y la interacción con el usuario es client-side.
El contenido de páginas Web se realiza en formato HTML (Hypertext Markup Language), mientras que el diseño de la página se realiza con CSS (Cascading Style Sheets u Hojas de estilo en cascada en castellano); de esta forma, y separando el contenido del diseño podemos cambiar cada uno de forma independiente sin que afecte al otro. Para que nuestras páginas sean intercativas necesitaremos un lenguaje de programación que se ejecutará en el ordenador del usuario. JavaScript, el lenguaje más común en estos casos, permite 'manipular' los elmentos HTML en la página y crear interactividad con botones, campos de texto y otros controles que, con un solo clic, permiten presentar datos, cambiar el contenido de nuestra página o, en el caso de GIS On-line, interacciónar con nuestro mapa. En los últimos años se ha creado jQuery, un lenguaje que, también basado en JavaScript, simplifica la manipulación de los elementos HTML en la página Web. El jQuery UI permite además crear y gestionar más facilmente los controles en nuestras aplicaciones
Aparte de los servidores WMS / WFS y de la base de datos en el servidor, en GIS On-line utilizamos PHP, un lenguage de programación enfocado en el procesamiento de páginas HTML en el servidor. Utilizamos PHP sobre todo para la interacción entre nuestra aplicación y la base de datos. Cualquier acción que ejecutemos sobre los datos, como por ejemplo sacar un listado de municipios dentro de una provincia, la realizamos con una llamada a un programa PHP en el servidor, que a su vez llama a nuestra base de datos, realiza la selección y devuelve el resultado a nuestra pána Web.
Son muchos los componentes que se pueden utilizar para crear aplicaciones de geo-información en la Web. Tenemos muchos años de experiencia en este tipo de aplicaciones. Además participamos activamente en el desarrollo de componentes de software libre.
Nuestros técnicos han sacado muchas de sus ideas de estos sitios Web, y aún hoy siguen aprendiendo de ellos:
W3Schools. Un sitio Web muy completo sobre el desarrollo de páginas y aplicaciones Web.
Cristalab. Un sitio Web en castellano con muchos tutoriales de diversas tecnologías Web.
CSS Portal. Perfecto para aprender todo sobre CSS, hojas de estilo en cascada y otros.
Evolución de la Web. Creemos que es la mejor sinopsis sobre el desarrollo de las tecnologías Web durante los últimos 20 años.
Estos sitios Web os permiten ver lo atractivas que pueden ser las aplicaciones Web:
WebDesignerDepot. Se trata de ejemplos del diseño de algunas de las mejores páginas Web.
Ejemplos de diseños Web. Basándose en las nuevas tecnologías, nos presenta ejemplos de los mejores interfaces para aplicaciónes Web.