La globalització de la informació que ha suposat Internet ha afectat tots els àmbits. Especialment el de la informació greogràfica que, des de la irrupció de Google Maps, s’ha convertit en una eina indispensable a la xarxa. Els mapes han passat a formar part important de la informació que utlitza la gent i la incorporació del component espacial ha esdevingut un element imprescindible en qualsevol activitat desenvolupada a la xarxa.

En els darrers anys i a partir de la iniciativa de diferents organitzacions i empreses s’han desenvolupat una sèrie de biblioteques de sistemes d’informació geogràfica (SIG) en JavaScript per a poder incorporar informació geogràfica a les pàgines web de manera fàcil i ràpida.

Cadascuna d’aquestes bilbioteques permet incorporar mitjançant APIs, a part del propi component geogràfic de la informació, un conjunt de funcionalitats bàsiques de SIG per a la navegació i consulta sobre el mapa per poder d’aquesta manera treballar de forma dinàmica amb mapes interactius.

La finalitat d’aquest article no és oferir un recull exhaustiu de totes les biblioteques SIG de JavaScript disponibles, sinó presentar i donar a conèixer les més interessants, ja sigui per la seva funcionalitat com per l’ús i difusió que han assolit en l’actualitat.

1. Serveis estàndard de visualització de la informació geogràfica

L’Open GeoSpatial Consortium, creat l’any 1994, va nèixer com a resposta al reconegut problema de falta d’interoperabilitat del programari de SIG i els seus múltiples efectes negatius sobre la indústria, l’administració pública i la recerca. Els membres d’OGC comparteixen una visió positiva d’una infraestructura d’informació global en la qual les dades geoespacials i els recursos de geoprocessament siguin accessibles a tothom. Actualment formen part d’aquest consorci 389 empreses i institucions que han participat en la creació d’especificacions per a resoldre aquesta falta d’interoperabilitat.

Entre les especificacions més importants sorgides d’OGC cal destacar les següents:

Web Map Service (WMS): Servei de mapes web que proporciona accés uniforme dels clients web als mapes generats per diferents servidors de mapes a Internet que implementin els seus serveis de mapes segons aquestes especificacions, de manera que hom pot combinar serveis de mapes de diferents servidors en un mateix client. Aquest estàndard defineix un mapa com a “representació de la informació geogràfica en forma d’un arxiu d’imatge digital convenient per a l’exhibició en una pantalla d’ordinador”.

Web Feature Service (WFS): Servei d’elements que permet recuperar, consultar (per atributs o per condicions espacials) i manipular (editar) dades espacials en forma d’elements vectorials, en format GML, procedents de diferents servidors d’elements web que implementin els seus serveis d’elements segons aquestes especificacions. L’especificació bàsica de Web Feature Service permet només recuperar i consultar elements, La versió transaccional, coneguda com a WFS-T, pemet l’edició (creació, eliminació i modificació) dels elements. Ambdues formen part de l’estàndard Web Feature Service, si bé el terme sol utilitzar-se per a referir-se a la versió bàsica.

Web Coverage Service (WCS): Servei web de distribució de dades ràster sense simbolitzar. A diferència dels serveis de mapes web (WMS) els WCS no proporcionen al client una imatge de mapa procedent de simbolitzar unes dades (vectorials o ràster), sinó que proporcionen les dades ràster en si per a ser simbolitzades o processades en el client, més enllà de la simple visualització. Les operacions, sintaxi i mode d’operar són semblants als dels serveis WMS o WFS.

Catalogue Service for Web (CSW): Especificació estàndard d’Open Geospatial Consortium per a la implementació dels serveis web (servidors i clients) de catàleg de metadades d’informació geoespacial. Constitueix un perfil d’aplicació que especialitza i refina el model general de serveis de catàleg de metadades (Catalogue Service) per a la implementació en base al protocol HTTP (web).

Web Processing Service (WPS): Especificació estàndard d’Open Geospatial Consortium per als serveis web de funcionalitat SIG, en particular de funcionalitat de geoprocessament, per tal de facilitar-ne la publicació i el reconeixement i utilització des d’aplicacions clients.

Geography Markup Language (GML): Perfil del llenguatge XML definit per l’Open Geospatial Consortium per a expressar informació geogràfica. Constitueix una especificació estàndard tant de llenguatge de modelització de les dades geogràfiques, com de format de transport i intercanvi de dades entre sistemes. GML cobreix per igual les dades geogràfiques de tipus vectorial com les de tipus ràster

Keyhole Markup Language (KML): Llenguatge d’etiquetes basat en XML per a representar dades geogràfiques en tres dimensions. Fou desenvolupat per Google Earth (originalment Keyhole, abans de ser adquirit per Google). KML conté informació per a la visualització i anotació de mapes i imatges, en 2D i particularment en 3D, així com instruccions per al control de la navegació per part de l’usuari, amb una sintaxi globalment similar a la de GML. Google en presentà les especificacions de la versió 2.2 a l’Open Geospatial Consortium per tal d’adaptar-lo i incorporar-lo als estàndards oberts d’implementació d’OGC, estatus que assolí a l’abril de 2008.

2. Tipologia de biblioteques SIG de JavaScript

L’objectiu fonamental de totes les biblioteques SIG de JavaScript és la visualització i consulta d’informació geogràfica, ja sigui cartografia servida per mitjà de serveis estàndard d’OGC, per informació generada i produïda per servidors comercials o per informació servida de manera gratuïta per empreses més generalistes.

Per tant podem distinguir tres tipus fonamentals de biblioteques:

─ Biblioteques de codi obert creades inicialment en una empresa i que posteriorment han passat a formar part de la comunitat de programari de codi obert.

─ Biblioteques derivades de productes gratuïts però implementats directament per grans empreses com Google, Yahoo o Microsoft i que únicament requereixen per a la seva utilització que el desenvolupador sigui usuari de qualsevol de les plataformes per a les quals s’ha desenvolupat el programari.

─ Biblioteques comercials, que, malgrat que siguin gratuïtes, requereixen que l’usuari disposi del programari servidor de mapes corresponent per a poder fer ús de la biblioteca.

2.1. Biblioteques de codi obert

2.1.1. OpenLayers (http://openlayers.org)
Es pot considerar la biblioteca més important dins l’àmbit del programari de SIG en web de codi obert. Desenvolupada inicialment per l’empresa MetaCarta l’any 2005, des del 2007 forma part de l’OSGeo (Open Source GeoSpatial Foundation).

La característica fonamental d’aquesta biblioteca és la gran quantitat de diferents formats que suporta, de manera que es poden incorporar dins del mateix objecte mapa, múltiples orígens de dades, estàndard o no, ja siguin de servidors de codi obert com MapServer, GeoServer, o de servidors comercials com Google, ArcGIS, Yahoo, Virtual Earth, etc. D’altra banda, a la darrera versió (2.8) s’han millorat molt les capacitats d’edició

 Raster Vectorial 
 ArcGIS Server 9,3    GeoRSS
 ArcIMS  GML
 Google Maps  Text
 KaMap  WFS
 KaMap cache  WFS-T
 MapGuide  WKT
 MapServer  ArcXML
 Multimap  KML
 TMS  GPX
 Virtual Earth  OpenStreetMap  
 WMS  GeoJSON
 WorldWind  
 Yahoo

Formats suportats per OpenLayers (versió 2.8)

La biblioteca disposa d’un conjunt de controls que permeten interactuar amb el mapa i mostrar informació a l’usuari. Aquests controls formen part del control principal (mapa) i interactúen directament amb el mapa.

OpenLayers 2.8 inclou:
– Navegació (ampliació, reducció, desplaçament, àmbit general, historial de navegació).
– Eines d’edició d’elements vectorials (punt, línia i polígon).
– Eines de mesures (de línies i àrees).
– Barra de nivells d’escala.
– Llista de capes (capes base i de superposició).
– Coordenades del punter.
– Mapa guia.

39_art3_1b
Figura 1. Exemple d’utilització d’OpenLayers, web del projecte CartoCiudad del Instituto Geográfico Nacional.

2.1.2. GeoExt (http://www.geoext.org)
És una biblioteca de JavaScript que es troba en fase inicial. Desenvolupada pels creadors del programari servidor de mapes GeoServer, utilitza com a biblioteques de base OpenLayers i ExtJS.

Actualment GeoExt inclou:
– Gestió d’elements (FeatureReader, FeatureStore).
– Objecte mapa (MapPanel) per ubicar un mapa amb OpenLayers.
– Finestres emergents.
– Lector de capabilities WMS.
– Gestor de zooms.
– Gestor de llegendes.

2.1.3. MapFish (http://www.mapfish.org)
És un entorn de desenvolupament per a produir mapes en web. Disposa de dues parts diferenciades:

─ Part client: Desenvolupada en JavaScript consisteix en un conjunt de controls basats en OpenLayers (funcionalitat de mapes), ExtJS (interfície d’usuari) i GeoExt (creació de components a partir dels dos anteriors).

─ Part servidora: Feta originalment amb Python, posteriorment s’han desenvolupat parts en altres llenguatges com Java o PHP.

La part client disposa dels següents objectes bàsics:
– MapComponent.
– ShortCuts (enllaç a un àmbit geogràfic predefinit).
– Gestor de dades (FeatureReader, FeatureStore, FeatureStoreMediator, SearchStoreMediator, GridRowFeatureMediator, LayerStoreMediator).
– Editing (FeatureList,FeatureEditingPanel,FeatureProperties).
– GeoStat (Choropleth, ProportionalSymbol).
– LayerTree.
– Toolbar.
– Menuitem.
– CheckItem.
– Searcher.

39_art3_2b
Figura 2. Exemple d’utilització de MapFish, web del projecte NOISE de l’Agència Europea del Medi Ambient.

2.1.4. Mapstraction (http://www.mapstraction.com/)
És una biblioteca que ofereix una API comuna a una sèrie d’APIs existents de manera que es poden utilitzar indistintament dins de la mateixa pàgina web. La biblioteca permet utilitzar qualsevol dels operadors existents independentment del codi que es pugui programar.

Actualment suporta 11 proveïdors de mapes i ofereix les funcionalitats bàsiques de navegació, d’importació de fitxers GeoRSS i KML i altres més avançades com geodificació d’adreces i càlcul de rutes.

Proveïdors de mapes suportats:
– FreeEarth
– Google
– Map24
– MapQuest
– Microsoft
– MultiMap
– OpenLayers
– OpenStreetMap
– ViaMichelin
– Yahoo

2.2. Biblioteques comercials d’ús gratuït
Les biblioteques amb clau de registre permeten als usuaris de plataformes com Google o Yahoo utilitzar els serveis de mapes de què disposen aquestes plataformes i incorporar-los a les seves pàgines web amb una certa personalització.

Aquestes biblioteques poden ser utilitzades a les pàgines web dels usuaris sempre que no siguin de caràcter comercial.

2.2.1. Google Maps (http://code.google.com/intl/es-ES/apis/maps/)
Basada en l’aplicació Google Maps, posa a l’abast del públic per mitjà d’una API les funcions que s’han desenvolupat dins de Google Maps.

Principals funcions de Google Maps:
– Geocodificació d’adreces.
– Utilització d’objectes Street View.
– Integració amb Google Earth per mitjà del connector corresponent.
– Superposicions de KML i GeoRSS.
– Superposicions de trànsit.
– Càlcul de rutes (en cotxe i caminant).

2.2.2. Yahoo Maps (http://developer.yahoo.com/maps/)
Basada en l’aplicació Yahoo Maps disposa de l’objecte YMap per poder incorporar a les pàgines pròpies el servei de mapes de Yahoo.

Principals funcions de Yahoo Maps:
– Geocodificació d’adreces.
– Superposicions de GeoRSS i Yahoo! Pipes.
– Superposicions de trànsit.

2.2.3. Open API Multimap (http://www.multimap.com/openapidocs/1.2)
La diferència fonamental entre aquesta biblioteca i les dues anteriors és la possibilitat, existent també en el propi servei de Microsoft, de disposar de la vista d’ocell de manera que es poden presentar les dades en vista oblíqua. Això dóna una nova opció de visualització de la informació que fins ara no disposava cap servei de mapes.

Permet utilitzar el servei de mapes de Virtual Earth dins de les pàgines web pròpies i ofereix diverses funcionalitats.
– Controls per poder visualitzar el mapa en les diferents modalitats que ofereix Virtual Earth.
– Controls típics de navegació.
– Geocodificació.
– Càlcul de rutes.

2.2.4. Bing Maps API (http://www.microsoft.com/maps/developers/)
Biblioteca oferta per Microsoft per a l’accés als seus serveis de mapes. Entre les diferències fonamentals amb els altres servidors, s’ofereix la possibilitat de veure les imatges en 3D (sempre que s’instal•li el programari corresponent) o a vista d’ocell.

39_art3_3a
Figura 3. Exemple de vista ocell amb la biblioteca Bing Maps.

2.2.5. Altres biblioteques
Existeixen altres biblioteques de JavaScript de diferents proveïdors, principalment d’empre¬ses de serveis com ViaMichelin, NAVTEQ o MapQuest, que bàsicament són serveis lligats a l’explotació de la xarxa viària (càlcul de rutes, localització de diferents serveis com benzineres, hotels, etc).

ViaMichelin: http://dev.viamichelin.com/wswebsite/gbr/jsp/vmdn/VMDN-Api-Maps-Drive.jsp

MapTP (NAVTEQ): http://developer.navteq.com/site/global/zones/ms/index.jsp

MapQuest: http://developer.mapquest.com/

Google   Yahoo   OpenAPI  MapQuest  ViaMichelin  MapTP (Navteq) 
Map   x  x   x   x  x   x
Overview Map  x    x      
Escala gràfica  x  x  x  x  x  x
Gràfics  x  x  x  x  x  
Control de zooms  x  x  x  x  x  x
Canvi tipus de mapa  x  x  x  x    
Trànsit  x  x  x  x    
Geocodificació  x    x  x  x  x
Rutes  x    x  x  x  x
Objectes StreetView        x    x  x  

Figura 4. Comparativa de les principals funcionalitats de les diferents biblioteques amb clau de registre.

2.3. APIS comercials
3.3.1 ArcGIS JavaScript API (http://resources.esri.com/arcgisserver/index.cfm?fa=JSAPIs)
L’API JavaScript d’ArcGIS disposa dels següents recursos per afegir a les pàgines web:

─ Mapes: L’API suporta serveis d’ArcGIS Server, tant serveis dinàmics com amb cau:
– DynamicMapServiceLayer: Servei dinàmic d’ArcGIS Server.
– TiledMapServiceLayer: Servei amb cau d’ArcGIS Server.
– GraphicsLayer (tot mapa conté aquesta capa per dibuixar gràfics damunt del mapa).

─ Gràfics: Permet als usuaris dibuixar gràfics i fer aparèixer finestres emergents quant es clica sobre el gràfic del mapa.

─ Tasques: L’API inclou classes i mètodes per a tasques de SIG comunes:
– Consulta.
– Geocodificació d’adreces.
– Geoprocessament (funcionalitat d’ArcGIS a través de serveis d’ArcGIS Server).
Càlcul de rutes a través de geoserveis d’ESRI.

39_art3_4b
Figura 5. Exemple d’utilització d’un servei de geoprocessament d’ArcGIS Server (càlcul de distàncies a través de la xarxa a partir d’un punt) mitjançant l’API JavaScript d’ArcGIS Server.

També disposa d’extensions per a Google Maps i Virtual Earth, de manera que es poden incorporar els serveis de mapes d’aquestes dues plataformes juntament amb serveis de mapes d’ArcGIS Server.

3. Conclusions

La incorporació de la informació geogràfica a l’entorn web ha comportat la creació des de diferents àmbits d’eines per poder servir-la, visualitzar-la i consultar-la dinàmicament. Els diversos proveïdors de programari, dades geoespacials i serveis han aportat als programadors biblioteques per poder incorporar a les seves pàgines informació geoespacial associada als seus àmbits de treball de manera fàcil.

L’esforç de publicar informació, inicialment des de les grans plataformes web (Google, Yahoo, Microsoft), s’ha vist paral·lelament impulsat per la creació de diferents estàndards de visualització de dades que han permès, a part de publicar la informació geoespacial, treballar de manera interactiva sobre el propi mapa mitjançant biblioteques gratuïtes.

La biblioteca OpenLayers, per exemple, s’ha convertit en un referent dins d’aquest ampli ventall de biblioteques per la seva capacitat de publicar tot tipus de serveis de mapes, ja siguin serveis estàndard o serveis basats en programari de propietat de les diferents empreses que desenvolupen i comercialitzen servidors de mapes.

Al voltant d’aquest biblioteca base s’han desenvolupat altres biblioteques que combinen les capacitats de la biblioteca OpenLayers amb altres biblioteques de JavaScript per donar a la pàgina web una funcionalitat i aspecte més dinàmics en la utilització dels mapes.

D’altra banda les empreses del sector SIG han generat biblioteques que permeten accedir no només a la informació publicada a través dels seus servidors web sinó que aporten accés a altres serveis de SIG propis de les seves capacitats tècniques i que donen una més amplia funcionalitat de SIG als serveis de mapes que s’incorporen en l’entorn web.

A mesura que es desenvolupi programari de codi obert servidor de serveis de processament web, segons l’estàndard WPS d’OGC, és probable que en un futur pròxim la capacitat de desenvolupar aplicacions de SIG en web assoleixi un grau de maduresa comparable al que ja tenen les eines (biblioteques) de codi obert per a servir i desenvolupar pàgines de visualització i consulta de seveis de mapes a la web.