Title: Comparaison des outils open source de webmapping Mapfish et Mapbuilder
1Comparaison des outils open source de webmapping
Mapfish et Mapbuilder
Fabien Ancelin, Projet de publication avancée de
données Spatiales sur Internet Session Automne
2008 Projet présenté aux Prof. Thierry Badard
Frédéric Hubert
2Plan de la présentation
- Présentation du projet
- Problématique et méthodologie
- Résultats sur la partie client
- Résultats sur la partie serveur
- Avantages / Inconvénients
- Limites de létude
31. Présentation du contexte
A. Contexte Web B. Open Layers C. Deux outils
Mapbuilder et Mapfish
4A. Contexte Web
- Nouveaux apports du Web 2.0 AJAX, Outils RIA
5A. Contexte Web
- Nouveaux apports du Web 2.0 AJAX, Outils RIA
- Multiplication des types de serveurs
cartographiques et des formats - Nouvelles technologies utilisées dans les
applications cartographiques !
6A. Contexte Web
Multiplication des services et des formats
Services OGC
Web Coverage Service
Formats
Web Feature Service
Web Map Service
GML
KML
SVG
GeoRSS
Services Non-conformes OGC
NASA World Wind
Yahoo Map
Google Map
7B. Open Layers
Affirmation dun nouveau client Open Layers
- De nombreux avantages simple dutilisation,
rapide, et interopérabilité
Linteropérabilité est la capacité que possède
un produit ou un système à fonctionner avec
dautres produits ou systèmes existants, et ce,
sans restrictions daccès ou de mise en œuvre
(daprès Wikipédia)
8B. Open Layers
Affirmation dun nouveau client Open Layers
- De nombreux avantages simple dutilisation,
rapide, et interopérabilité - Open Layers prend un rôle central dans de
nombreuses applications Web
9B. Deux outils Mapbuilder et Mapfish
Mapbuilder présentation
- Client cartographique Open Source, inclu dans les
projet de lOS Géo - Client basé sur les technologies Ajax, sappuyant
énormément sur le XSL - Intègre Open Layers depuis 2008
- Fin du projet annoncé en Juillet 2008
10B. Deux outils Mapbuilder et Mapfish
Mapbuilder présentation
Page html ce qui est affiché chez le client Config la liste des outils et widgets de lapplication
Context le modèle cartographiques Librairie bibliothèques dobjets et de fonctions javascript et XSL
11B. Deux outils Mapbuilder et Mapfish
Mapfish présentation
- Nouveau projet développé par CamptoCamp SA,
présenté en 2007 - Version 1.0 publiée fin Septembre 2008
- Un client chargé de laffichage cartographique
- Une partie serveur réalisant les traitements
12B. Deux outils Mapbuilder et Mapfish
MapFish présentation
Client Serveur
OpenLayers affichage cartographique ExtJs création de widgets Pylons framework de développement web Librairies géographiques Shapely, JTS
132. Problématique et méthodologie
- A. Problématique
- B. Définition de critères dévaluation
- C. Méthodologie de test
- D. Planning
14B. Problématique
Deux approches
- Comparaison côté client uniquement.
- Test de la partie serveur
15B. Problématique
Deux approches
- Comparaison côté client uniquement
Est-ce que chaque client reprend lensemble des
fonctionnalités dOpen Layers?
Quels sont les apports de Mapbuilder et Mapfish?
Quelles sont les forces / faiblesses de chaque
client?
16B. Problématique
Deux approches
- Etude de la partie serveur
Quels sont les apports?
Quelle est la facilité dutilisation de la
partie serveur?
Quels sont les avantages / inconvénients par
rapport à une approche où client et serveur(s)
sont indépendants?
17B. Définition des critères dévaluation
Google
Yahoo
WFS
WFS-T
Utilisation des standards OGC
Connexion à des services Non spécifiés par lOGC
Navigation
Affichage
Gestion des couches
Utilisation de la souris
Saisie de données
Facilité dutilisation de linterface
Ergonomie et rapidité
Fonctionnalités
Analyses thématiques
Rapidité dexécution
Fiabilité
Géocodage
Calculs ditinéraires
Qualité du support
Maturité du projet
Retours dexpériences
Mailing liste
Corrections des bugs
Documentation
Exemples
18C. Méthodologie
Partie client Etape 1/4
- Réalisation dun navigateur simple, reposant
simplement sur lintégration dOpen Layers - Choix des critères à évaluer à partir de lAPI
Open Layers - Tableau comparatif
Mapbuilder Mapfish client
Fonctionnalité dOpen Layers A Présent / Absent Présent / Absent
Fonctionnalité dOpen Layers B Présent / Absent Présent / Absent
19C. Méthodologie
Partie client Etape 2/4
- Définition dune application test comportant
seulement des fonctionnalités basiques de
navigation
Barre doutils
Navigation
Actions souris
Affichage des couches
Réagencement des couches
20C. Méthodologie
Partie client Etape 3/4
- Réalisation des applications de test.
Complexité du code
???
Qualité de la documentation
21C. Méthodologie
- Lensemble des tests est réalisé sur
- Windows OS
- EasyPHP et serveur Apache
- Firefox et Firebug
Partie client Etape 4/4
- Comparaison des performances des deux
applications
Quelles fonctionnalités sont proposées?
Qualité graphique de linterface?
Interactivité?
Rapidité?
22C. Méthodologie
Partie serveur 1/3 Test à partir dexemples
du site de démonstrations
- Evite de créer une base de données.
- Pas de travail de préparation des données.
- Pas de certitude que linstallation fonctionne
correctement!
23C. Méthodologie
Partie serveur 2/3 Test dinstallation
- Technologies utilisées?
- Degré de difficulté?
- Qualité de la documentation et du support?
24C. Méthodologie
Partie serveur 3/3 test en environnement
client / serveur
- Choix dun serveur pour Mapbuilder ?
GeoServer et Degree supportent WFS et édition,
également proposés dans Mapfish et Mapbuilder
GeoServer facile dinstallation
Mapbuilder propose des exemples à coupler avec
Geoserver
Tester les différences de performance sur un jeu
de données test, avec des paramètres communs
253. Résultats
A. Côté client
- Utilisation dOpen Layers
- Création des applications de test
- Comparaison des applications de test
B. Côté serveur
- Avantages de Mapfish serveur
- Résultat du test dinstallation
- Echec de la comparaison Mapfish avec le couple
Mapbuilder / Geoserver
263. Résultats
A. Côté client B. Côté serveur C. Comparaison
Mapbuilder/Mapfish
27A. Côté client
A. Côté client
- Comparaison sur les services
Accessibilité Mapbuilder Mapfish client
WMS
WCS
WFS
WorldWind
Google Maps
Yahoo Maps
28A. Côté client
A. Côté client
- Comparaison sur les formats
Format Mapbuilder Mapfish client
GML
GeoRSS
kml
SLD
29A. Côté client
A. Côté client
Fonctionnalité de navigation utilisable par la carte Mapbuilder Mapfish client
Barre de navigation
Barre de zoom
Pan souris par double clic
Zoom via la molette
30A. Côté client
Critères \Logiciel Mapbuilder Mapfish
Temps de réalisation 3h00 1h00
Simplicité dutilisation Simple Simple
Avantage(s) Réutilisabilité du code Utilisation simple et intuitive
Inconvénient(s) Beaucoup de fichiers à configurer
Difficulté(s) Gestion des mises en page. Gestion simultanée de plusieurs documents de contexte.
31A. Côté client
A. Côté client
- Les différences de performances
Fonctionnalités disponibles Mapbuilder Mapfish
Sélection / Désélection dune couche
Modification de lordre dune couche de 1 niveau
Modification de lordre dune couche de plusieurs niveaux
Ajout dicones dans la liste des couches
32A. Côté client
A. Côté client
33A. Côté client
A. Côté client
- Documentation de bonne qualité pour les deux
clients!
Critère Mapbuilder Mapfish
Tutoriaux Oui Oui
Exemples Oui Oui
Lien vers ressources externes Cours WFS-WMS Lien vers documentation Open Layers
34B. Côté serveur
Redéfinition du rôle du serveur
- Redéfinition du rôle du serveur un client qui
communique avec un serveur spécifique - Un langage spécifique, le GeoJSON
- Résultats, de nouvelles fonctionnalités
35B. Côté serveur
Liste des fonctionnalités
Mapbuilder / Geoserver Mapfish
Exploration des données du serveur
Fonctionnalités de recherche attributaire
Outils de discrétisation cartographique
Edition de données
Calculs ditinéraires
Export de la carte au format PDF
36B. Côté serveur
Un exemple le module géostat
37B. Côté serveur
Test Installation
- Repose sur Pylons et lutilisation dun paster
python - Mapfish est un œuf python il doit être
construit et installé dans un espace virtuel - Mapfish nécessite le téléchargement de librairies
ou dutilitaires supplémentaires - Les données doivent être situées dans une base
PostGIS
38D. Installation
C\CartoInternet\Mapfish\MapFish-0.2\server\python
gtC\my_vpython\Scripts\python setup.py egg_info
C\CartoInternet\Mapfish\MapFish-0.2\server\python
gtC\my_vpython\Scripts\python setup.py bdist_egg
- Installation de Mapfish dans le répertoire
virtuel python
C\CartoInternet\Mapfish\MapFish-0.2\server\python
gtC\my_vpython\Scripts\easy_in stall
dist\MapFish-0.2-py2.4.egg
C\my_vpython\Scriptsgtpaster create --overwrite
--no-interactive --templatemapf ish TutoMapfish
mapfishclientmfbasepathC\CartoInternet/Mapfish/M
apFish-0.2/cli ent/mfbase
39B. Côté serveur
Création dune application Non réussie pas de
comparaison avec Mapbuilder et Geoserver
Résultats
Test réalisé sous OS Windows, mais Mapfish a été
crée pour Linux à la base
Durée dune première installation de 4 h00
Premier déploiement de 4 h00
Bugs reportés OUI
Qualité de la documentation Incomplète, et adressé à des gens connaissant les bases de pylons, de python, et de linvite de commande
Support de la mailing list Très actif
405.Avantages / Inconvénients entre Mapfish et
Mapbuilder
Mapbuilder Mapfish
Avantages Les fonctionnalités ne dépendent pas dun client particulier wms, wcs, wfs Des fonctionnalités de gestion des documents de contexte ou dexploration du contenu de services web très puissantes XML simple à comprendre Documentation de qualité Grande réutilisabilité du code Client autonome Interface interactive et conviviale. Code sappuyant sur celui dOpen Layers, simple à utiliser Structure du client simple à comprendre Un serveur qui apporte une multitude de fonctionnalités Documentation de qualité pour la partie cliente Mailing list très active Mapfish est encore jeune
415.Avantages / Inconvénients entre Mapfish et
Mapbuilder
Mapbuilder Mapfish
Inconvénients Structure complexe, de lapplication Le développement dune première application peut être long Le développement de Mapuilder sest achevé en Juin 2008. Une procédure dinstallation longue et complexe Nécessaire de modifier des fichiers python à la main pour configurer un projet. Fonctionnalités entièrement dédiées au vecteur Mapfish serveur nest compris que de Mapfish client. Mapfish est encore jeune
426. Limites de létude
- Pas de comparaison sur des gros volumes de
données pour voire si XSL XML plus rapide que
JavaScript et GéoJSON - Mapfish et Mapbuilder nont pas été comparé dans
un environnement client serveur à partir dun jeu
de données commun - Solutions non testées sur Linux
- Mapfish serveur non testé sur serveur Apache
437. Difficultés rencontrées durant le travail
- Gestion du temps retard sur le planning annoncé
- Bugs dinstallation sur Mapfish
- Trop de temps consacré à essayer de faire
fonctionner Mapfish serveur
44Conclusion
- Mapbuilder et Mapfish sont deux clients robustes.
- Mapbuilder est efficace pour la navigation,
lexploration de services web, et la sauvegarde
de cartes sur Internet. - Mapfish bénéficie dune interface conviviale,
dispose potentiellement de toutes les
fonctionnalités dOpen Layers, et des apports de
la partie serveur. - La partie serveur de Mapfish est réservée à des
initiés du développement web et du langage
python. Le projet est encore immature.