La rubrique Internet

Sommaire

La cartographie SIG en ligne ou Web mapping: les outils «libres»
État des lieux des solutions «applicatives» autour de MapServer (décembre 2005)

Sommaire

I) Principe général de fonctionnement d’un serveur cartographique

II) Solutions côté client

III) Solutions côté serveur

IV) Discussion

Conclusion

Le Web Mapping, ou diffusion de cartes via le réseau Internet, est un domaine en pleine expansion grâce au développement des solutions Open Source. Suivant la philosophie GNU qui autorise la copie, la diffusion du logiciel et la modification du code source, ces programmes généralement gratuits et d’utilisation libre émergent à un rythme soutenu.

Au centre de cette sphère en développement permanent: MapServer.
Né au sein de l'Université américaine du Minnesota, ce logiciel permet la publication de données via un serveur Internet et propose un ensemble de fonctions digne des meilleurs outils payants (1) (navigation, requêtes, mais aussi mise à jour à distance). C’est en fait une bibliothèque de fonctions développée sous licence GPL (General Public Licence) selon les recommandations de l’OGC (Open Geospatial Consortium). MapServer est ainsi régi par des normes publiques qui en assurent sa pérennité. Actuellement àsa version 4.6, il s’adapte quasiment à tout type d’environnement. Il peut être facilement étendu afin de supporter de nouveaux formats de données, environnements de développement, systèmes d’exploitation ou serveurs Web.

Autour de l’incontournable MapServer, l’objectif du présent article est d’établir un état des lieux des solutions «applicatives» qui facilitent la mise en ligne et la maintenance d’information géographique. Cette expression «solutions applicatives» recouvre en fait différents types de logiciels, bibliothèques de fonctions, ensembles de scripts… Nous détaillerons les briques logicielles les plus abouties qui ont pu êtres testées dans notre environnement de travail. On distinguera le côté client et le côté serveur avant de discuter les résultats de ces tests.

1) Principe général de fonctionnement d’un serveur cartographique

Le serveur cartographique est le guichet automatique auquel l’utilisateur fait appel pour afficher des cartes sur son poste informatique. Par le protocole de communication Internet, TCP/IP, des ordinateurs branchés en réseau peuvent échanger de l’information via un navigateur Web ou transférer des fichiers grâce au protocole FTP. L’architecture est de type client/serveur, c'est-à-dire qu’un ordinateur dit serveur répond aux requêtes d’une série d’ordinateurs dits clients.

L’utilisateur, à partir de son terminal effectue des requêtes pour demander l’affichage d’une carte spécifique; le serveur cartographique interprète cette requête et renvoie la carte sous la forme d’une image matricielle (png, jpg,…) ou vectorielle (svg, swf,…).

Le moteur cartographique peut être contrôlé par des langages de script tels que PHP, javascript, Python ou Perl qui lui permettent de générer dynamiquement une carte en réponse à une requête préparée par une interface utilisateur. Le serveur cartographique peut chercher l'information nécessaire à la réalisation de la carte dans ses propres ressources, mais aussi sur des serveurs de données distants.

Schéma 1: Principe des échanges entre un ordinateur
client et un serveur

La diffusion de l’information en ligne requiert une installation côté serveur avec des logiciels tels que Apache (projet Open Source) ou IIS (Internet Information Services, de Microsoft) qui tournent en tâche de fond et donnent accès aux serveurs de cartes à l’Intranet et à l’Internet. Ces logiciels serveurs voient souvent leurs fonctions étendues par des interpréteurs de scripts comme PHP ou ASP. Le serveur cartographique s’appuie sur ces éléments pour recevoir des requêtes et renvoyer des images et des données. Côté client, un navigateur web suffit, accompagné éventuellement par un viewer (visionneuse en français), pour afficher la carte (Schéma 1).

Les données peuvent être gérées par des logiciels spécifiques, les SGBDR (2), tels PostgreSQL, MySQL, Oracle, entre autres, qui peuvent être installés directement sur le serveur contenant le serveur cartographique ou sur un autre serveur, distant. Qu'importe le lieu, l'important est de pouvoir consulter et éditer des données à distance. PostgreSQL et son extension spatiale PostGIS est le système de gestion de bases de données relationnelles le plus abouti dans le domaine du logiciel libre. Actuellement la version 8.1 est téléchargeable sur le site http://www.postgresql.org/download. PostGIS est désormais inclus dans la distribution officielle de PostGreSQL (il est aussi disponible en version 1.0.4 sur son site propre: http://postgis.refractions.net/download/). Il offre des fonctionnalités approfondies pour stocker et traiter les objets géoréferencés et géométriques.

Les différentes briques logicielles ont été testées sous les systèmes d’exploitations Windows XP et Linux Mandrake 10 pour évaluer leur interopérabilité. Pour simuler la situation d’échange de données via Internet, MapServer 4.4, PHP/MapScript, le SGBDR PostgreSQL 7.5 étendu de PostGIS 0.9.1 avec son interface graphique phpPgAdmin ont été compilés sur un serveur Linux dédié.

L'utilisateur-testeur disposait des permissions de lecture et d'écriture dans l’arborescence des  répertoires de la machine serveur, pour le stockage des solutions côté serveur tandis que les solutions côté client furent placées sur la machine locale dans un environnement Windows XP pro.

2) Solutions côté client

Les logiciels clients Open Source testés, QGIS, UDIG, THUBAN et JUMP, sont des logiciels SIG en pleine évolution possédant des fonctions qui font d’eux des outils avancés pour la consultation et l’édition de données géographiques à distance.

 

QUANTUM GIS, version 0.7.4, est disponible sous la forme d’un exécutable sur http://qgis.sourceforge.net/. Doté d’une interface conviviale, QGis permet de se connecter facilement à des sources PostGIS afin de récupérer la géométrie et les valeurs attributaires des couches vectorielles. Des outils d’édition permettent ensuite de modifier les attributs, de rajouter des formes et ces modifications s’inscrivent directement dans les tables. Par contre, on notera que l’on ne peut pas reprendre la géométrie d’une couche. Par ailleurs, le projet en cours peut être sauvegardé sous forme de mapfile (3) dans l’optique de mettre à jour un serveur cartographique MapServer. Cependant, celui-ci n’est pas généré correctement et nécessite une intervention manuelle notamment pour spécifier le type de connexion. QGis possède des fonctions simples de discrétisation, propose des outils basiques de création d’analyses thématiques. Les différentes cartes sont imprimables. Pour le moment, on ne peut pas effectuer des requêtes attributaires ou spatiales, même en langage SQL. Ainsi, en local, il est possible de récupérer des données distantes stockées dans une base de données, les représenter thématiquement, rajouter des couches diverses, les modifier et les exporter vers un PostGIS distant. En version bêta, ce programme comporte encore de petits bogues comme par exemple dans la gestion des projections, mais la communauté derrière ce projet est active et réactive, ces problèmes seront réglés sous peu.

UDIG, acronyme de User Friendly Desktop Internet Gis, est construit autour de la plate-forme java Eclipse. Il est une création de Refraction Research Incorporation, la société qui produit PostGIS. La version 1.0.5 actuelle est stable, elle se télécharge à l’adresse:
http://udig.refractions.net/confluence/display/UDIG/Home.

Son installation, dans un environnement Windows, est facilitée car il a été compilé avec tous les programmes java nécessaires à son fonctionnement. L’inconvénient est son poids de 50Mo environ, assez long à télécharger pour une petite connexion Internet. De plus, si certaines applications java comme JRE sont déjà installées sur la machine, cela crée une redondance de programmes et une occupation d’espace disque non négligeable. Ses fonctionnalités sont axées sur la connectivité Web, autrement dit sur les requêtes WMS (4), WFS ou sur l’import de données distantes géométriques stockées dans PostGIS. Il constitue une implémentation de référence des recommandations de l’OGC. Capable de charger des fichiers shape, il nécessite néanmoins des extensions supplémentaires pour afficher les raster. Son intérêt majeur est de réaliser des modifications géométriques sur les couches chargées en mettant directement à jour la table de données distante. Il ne permet pas de faire des analyses thématiques ni de réaliser des requêtes spatiales. Il semble être en revanche un excellent programme de récupération et de visualisation des données distantes. Il peut constituer une brique dédiée à la mise à jour d’objets géographiques parmi un ensemble de solutions clientes. Son développement est donc à suivre.

THUBAN est un programme interactif permettant de visionner des données géographiques. Développé avec les langages  Python et en C++, un effort a été fait afin de le fournir compilé pour Windows. Sa version est stable et téléchargeable http://thuban.intevation.org/. Des bibliothèques de fonctions en Python sont nécessaires pour l’installer, mais la documentation en anglais est bien faite. Ses fonctionnalités permettent de se connecter à des bases de données distantes, d’importer des shapefile et des raster, d’effectuer des requêtes attributaires et des jointures, de générer des analyses thématiques en plage de couleurs avec discrétisation automatique et visualisation de la légende. Il peut également charger des systèmes de projection et modifier celles des couches chargées. Les cartes sont enregistrées sous forme d’images wmf ou de session Thuban. Cette dernière permet de récupérer la structure de la carte au format XML.

OpenJUMP est un projet de refonte et d’amélioration des fonctionnalités du logiciel SIG JUMP. Il s’appuie sur un réseau international de thématiciens et d’informaticiens, coordonnés par le Jump Pilot Project. OpenJUMP se déploie en deux niveaux, basique et avancé, le premier se destinant à un public non spécialiste qui souhaite s’initier au monde des SIG. Le logiciel s’organise en effet sous la forme d’un noyau gérant les fonctions SIG de base, sur lequel peuvent se greffer de nombreux plugin lui ajoutant des fonctionnalités diverses, souvent disponibles uniquement dans les logiciels SIG avancés (interpolation, requêtes spatiales, mise en page, représentations graphiques…).

Nom Description Remarques
JUMP
http://www.projet-sigle.org/
http://www.jump-project.org/

Traitements complexes sur données géographiques.
Connexion WMS, PostGIS.

Nombreux plugin nécessaires.
Accessibles aux moins expérimentés.

Quantum GIS
http://qgis.sourceforge.net/
Visualisation, manipulation de données vectorielles et raster.
Connexion WMS, PostGIS.

Installation facile.
Interface en français et conviviale.
Simple d’utilisation.
Pas toujours fiable.

UDIG http://udig.refractions.net/

Édition de la géométrie des couches.
Connexion WMS/WFS, PostGIS.

Très fort sur les connexions distantes.
Nécessite une plateforme Java JRE/JDK.

THUBAN

Traitements complexes sur données géographiques.
Connexion WMS/WFS, PostGIS.

Nécessite une plateforme Python.
Solutions côté client

3) Solutions côté serveur

En pratique ces applications ne se situent pas toujours entièrement côté serveur car elles peuvent nécessiter le téléchargement d’un plugin léger par le client (par exemple l’applet Rosa (5)). Elles tendent toutes vers la mise à disposition des fonctionnalités d’un SIG classique sans pour autant les atteindre complètement. De base, les solutions côté serveur Open Source apportent la possibilité à partir d’un navigateur Internet classique de visualiser des couches géographiques générées dynamiquement. Actuellement, de nouvelles fonctionnalités plus avancées apparaissent comme la possibilité d’ajouter ou de modifier de l’information en ligne.

a) Les produits de DM SOLUTIONS

MAPLAB (http://www.maptools.org/maplab/index.phtml). Dans un environnement Win32, son installation est relativement aisée si on se base sur une installation simplifiée comme MS4W (6). Sous linux les difficultés peuvent se situer au niveau de l’alias qui recherche le répertoire apps/, dans la configuration du serveur Web. Attention aussi lors de la définition des chemins de répertoires dans l’interface de configuration. MapLab est une suite logicielle intégrée destinée à faciliter le déploiement de solutions de Web Mapping. Avec MapLab on peut construire graphiquement son mapfile (MapEdit), visualiser l’ensemble des données (MapBrowser) et y rajouter, par exemple, des couches d’information provenant d’une requête WMS sur un serveur cartographique distant. Enfin, on peut configurer l’interface proposée à l’utilisateur (GMapFactory). La mise au point de cette dernière reste néanmoins basique et peut être améliorée grâce aux composants de Chameleon.

CHAMELEON (http://chameleon.maptools.org/index.phtml). Cet ensemble de composants permet de créer simplement une interface HTML, en réservant des espaces à l'affichage de cartes et de données attributaires et à des outils, comme le zoom,  la sélection et de déplacement. Ainsi, Chameleon permet, en quelques clics, de construire une base pour le développement d’une application de visualisation cartographique dynamique (php) sur Internet. On peut apprécier ces qualités avec la démonstration en ligne sur îles Hawaï http://www.mapsherpa.com/hawaii2/. Remarquez que la carte se recharge après chaque opération.

KA-MAPS, (http://ka-map.maptools.org/) Dernier produit en liste chez DM Solutions, Ka-Maps est très prometteur au niveau de la fluidité de navigation sur la carte. Avec les produits classiques, la carte est régénérée par MapServer à chaque déplacement de la zone de visualisation (Bounding Box); Ka-Map, lui, télécharge progressivement les dalles dont il a besoin et MapServer n’intervient quasiment plus pendant la navigation. Codé principalement en Javascript, il utilise la technologie AJAX pour les transferts d’information (utilisée par exemple pour Google Maps). De plus, chaque dalle n'est générée qu'une fois, et reste dans un cache sur le serveur sous la forme d'une image. Il est plutôt destiné à un public de développeurs.

b) CARTOWEB3 (S.A. CampToCamp)

CARTOWEB3 disponible depuis mars 2005 répond à plusieurs demandes dans le monde du Web Mapping libre. C'est la solution qui à ce jour se rapproche le plus des fonctionnalités d'un SIG classique tout en étant adaptée aux caractéristiques de l'Internet. Il s'intègre facilement dans un environnement Apache, php5, Mapserver 4.5 mais n'est pas compatible php4, ce qui empêche pour l'instant une association avec MapEdit. Cartoweb3 fonctionne grâce aux potentialités de php5 en langage objet par un système de plugin et de core-plugin.

En pratique, il apporte une interface de consultation et d'interrogation, des instruments d'annotation et de mesure, mais surtout un ensemble d'outils pour une gestion facilitée et des optimisations multiples (interface multilingue, systèmes de regroupement des couches pour une légende en arbre hiérarchique, systèmes d'optimisation graduelle par cache…).

CartoWeb est une solution conçue pour le web, elle permet par son architecture cartoclient/cartoserveur acceptant simultanément plusieurs utilisateurs, une gestion décentralisée de l'information et est compatible avec une connexion à débit limité.

CartoWeb3 est théoriquement capable de faire de l'édition des éléments géométriques, mais cette fonctionnalité n'est pas encore opérationnelle. Dans la version courante on ne peut que dessiner par-dessus la carte un polygone, une ligne ou un point et tant qu'on est dans la même session, la forme et ses attributs sont conservés. Pour compléter la documentation officielle, vous trouverez des informations en français sur ce sujet sur le site Forum SIG.

c) Autres solutions

 

Sur le Web on peut trouver un grand nombre d’autres solutions disponibles en téléchargement. Elles sont recensées sur les sites de FreeGIS et de Maptools, et sont de facilité d'accès et d'utilisation variables.

En général les solutions simples et facilement adaptables pour ses propres données géographiques sont des visionneuses comme Veremap: ou Pmapper. Ce dernier propose par exemple une série d’outils Javascript intéressants comme le zoom par curseur, la légende en arbre hiérarchique et l’impression en pdf, comme on peut le voir dans la démonstration en ligne: http://www.webgis.de/pmapper_demo/index.phtml.

Puis viennent des solutions plus complexes et évoluées comme Mapbender ou MapLink. Le premier n’a malheureusement pas pu être testé du fait que la documentation était quasiment exclusivement en allemand à l’époque du test. Aujourd’hui, un Wiki bilingue anglais/allemand devrait faciliter sa découverte. L’installation de Maplink en local a échoué, cependant la démonstration en ligne est très intéressante http://mapuse.net/maplink/client_classic.phtml, particulièrement du point de vue des connexions avec POSTGIS et des requêtes WFS. En ligne il est possible de sélectionner un polygone et de modifier sa géométrie.

Nom Description Remarques
MAPLAB+CHAMELEON
http://www.maptools.org/

Interface graphique pour construire le mapfile.
Connexion WMS.
Personnalisation de l’interface.

Accessibles aux moins expérimentés.
Outils pas toujours fiables.

CARTOWEB3
http://www.cartoweb.org
Visualisation, manipulation de données vectorielles et raster.
Impression pdf, interface multilingue, fonctionnalités Web.
Connexion PostgGIS, WMS.

Installation complexe.
Nécessite une configuration particulière.

MAPLINK http://maplink.sourceforge.net/

Possibilité d’édition en ligne de la géométrie des couches.
Requêtes WMS/WFS.

Installation ardue…

Solutions côté serveur

IV) Discussion

Dans l'état actuel des choses, les solutions client/serveur peuvent être totalement complémentaires, l’une (serveur) permettant d’effectuer des traitements propres à la problématique des SIG (croisements de couches, requêtes, analyse thématiques), l’autre (client) par l’intermédiaire du mapfile affichant la carte dans une interface accessible sur Internet. Par ailleurs, on voit apparaître des modules Open Source qui se greffent sur les grands SIG commerciaux comme Amein maintenu par Terrestris pour ArCGIS 8 et Wortomap développé par Tydac utilisable avec MapInfo 7.8, qui lui permet d’exporter le mapfile du SIG pour afficher la même carte dans une interface MapServer.

Rappelons que dans cette étude comparative nous avons travaillé sur des logiciels Open Source qui nécessitent un minimum de compétences en développement. Ils ont souvent été conçus pour des besoins particuliers et leur réadaptation dans un nouvel environnement peut se révéler difficile. De plus, il arrive fréquemment que l’on installe des versions encore en statut «Beta», donc non définitives et souvent instables.

A ce stade encore primaire, les solutions «libres» proposées ne sont que des prototypes et ne répondent pas aux besoins-types d'un utilisateur de SIG. En effet, si quelques logiciels permettent de réaliser des cartes thématiques en aplats de couleurs, la discrétisation se fait souvent manuellement. En outre, quasiment aucune solution ne permet pour l'instant la représentation de symboles proportionnels (sauf OpenJUMP muni d'un plugin). Les requêtes spatiales sont, dans la majorité des cas, faites en langage SQL.

La réalisation de cartes dynamiques sur Internet est séduisante lorsqu’on souhaite diffuser de l’information géographique. Souvent utilisée dans la localisation des lieux par leurs adresses, dans le calcul d’itinéraires ou pour le géomarketing, son utilisation est croissante et s'élargit vers de nouveaux secteurs. Issu de l’informatique appliquée à la géographie, cet outil se place à la croisée de techniques alliant la gestion de données relationnelles, la représentation et l’analyse spatiale, la programmation en langage de script.

À l’heure actuelle, on trouve soit des composants réutilisables (Chameleon), des interfaces web (CartoWeb, Ka-Map), soit des solutions plus complètes d'aide à la gestion et à la réalisation d'applications Web (MapLab).

En se penchant sur la construction d’une carte en ligne, seul QGIS en client et MapLab grâce à son outil MapEdit côté serveur permettent d’éditer graphiquement et dynamiquement un mapfile. Dans ce domaine de nombreux progrès restent encore à faire car ce dernier n’est pas assez souple dans sa syntaxe et dans son adaptabilité aux différents environnements.

Conclusion

Ce (premier) bilan sur l’avancement des travaux donne aux utilisateurs une vision synthétique des outils disponibles en téléchargement et de leurs potentialités à un moment donnée. La majorité des tests a été effectués en avril 2005 dans le cadre d'un projet d'études de Mastère Professionnel (7). Depuis, les choses ont déjà évolué et certaines informations sont devenues obsolètes: dans le monde des SIG Open Source les versions  se suivent mais ne se ressemblent pas. Déjà, Refractions Research a mis en ligne la dernière version de son logiciel client UDIG 1.0, Karta.go GmbH propose MapStorer, une nouvelle manière pour éditer des mapfiles en ligne…

Marie Coutard, Jean-Pascal Klipfel, Samuel Blanc

Notes

1. Panorama, comparaison des solutions SIG sur Internet

2. Système de Gestion de Bases de Données Relationnelles

3. Le mapfile est la pièce maîtresse de l’agencement et de la sémiologie des couches, c’est lui qui téléguide mapserver. MapEdit permet de créer graphiquement le mapfile ou de le mettre à jour s’il provient de QGIS par exemple.

4. Configuration d’une requête WMS: http://[IP ou adresse du serveur]/cgi-bin/mapserv?map=[chemin depuis la racine jusqu’au mapfile avec son extention]& REQUEST=GetCapabilities

5. Rosa est une brique logicielle Java qui met à disposition de l’utilisateur des outils de navigation et de requête simple côté client.

6. MS4W est une installation simplifiée de tous les éléments composant un serveur cartographique MapServer, en environnement Windows, proposée par MapTools.org.

7. Master 2e année Professionnel SIGMA (Science de l'Information Géoréférencée pour la Maîtrise de l'environnement et l'Aménagement des territoires), Université de Toulouse-2 Le Mirail, Département de Géographie et Institut National Polytechnique, École Nationale Supérieure Agronomique de Toulouse (INP/ENSAT).