Non connecté
@space public - Base de connaissances

Cartographie dynamique en mode client-serveur - WebMapping

Les technologies permettant de transmettre via Internet en mode client-serveur, de la cartographie, peuvent être classées dans deux catégories :
-Transfert d'images raster seulement (type "Web MapServer"): Un serveur (soit directement le serveur Web, soit un serveur dédié comme UMN MapServer, sur-couche du serveur Web) va envoyer au client (navigateur web sans pluggin) des images raster (préalablement tuilées dans le cas du serveur Web) en fonction des demandes de celui-ci (en fonction de l'échelle et de l'emprise de visualisation notamment). La conséquence de cette technologie est un raffraichissement systématique des pages HTML à chaque interaction (limitée) de l'utilisateur.
-Transfert d'images raster et de vecteurs (type "Web Feature Server"): Un serveur dédié ou un serveur Web aidé d'une série de scripts (écrits en PHP, Java, Perl, ...) couplé à une base de données relationnelle ayant la capacité de stocker des données spatiales (Oracle 8i à 10g, PostGreSQL/PostGIS, MySQL4.11+/MyGIS, ...) de type point, lignes, surface,image, ... va envoyer non seulement des données raster mais aussi des données vectorielles (suite ordonnée de couples de points x,y) dans un format dédié (SVG, SWF, VML, Silverlight, Java) dépendant de l'interpréteur installé côté client (Java runtime, Pluggin Adobe SVG Viewer, Pluggin Flash reader, navigateur implémentant nativement le format comme Mozilla, Opera, Safari, ...), avec un gain évident de qualité graphique lors de zoom, un rafraichissement sélectif des données (Ajax, web2.0, RIA), ainsi que de nombreuses autres fonctionnalités comme : interrogation d'objets graphiques par le client, animation d'objets, ...

C'est dans cette deuxième catégorie que se situe le produit "SVGMyServer" présenté ici.

L'idée de la réalisation de ce produit provient d'un constat : La demande en outils de Webmapping est de plus en plus grande (effet "Google Earth" oblige...) de la part de clients potentiels, or, après de multiples recherches et tests, Il s'avère qu'il n'existe pas encore sur le marché un outil de prix abordable et suffisamment ouvert afin d'être entièrement adaptable aux besoins exprimés par le client. Il existe effectivement des outils relativement simples fonctionnant sous technologie Flash, souvent édités par des agences de publicité pas toujours spécialisées en cartographie, d'un coût non négligeable toutefois, et limités généralement aux seules utilisations sous OS Windows. Il existe d'un autre côté des logiciels libres à côut de licence nul, mais souvent, dès que les fonctionnalités proposées sont élaborées, il s'agit de véritables "usines à gaz" nécessitant le recours à des informaticiens. "SVGMyServer" se veut être en milieu de gamme de ces produits du monde du libre.

Le modèle économique de la solution "SVGMyServer" repose sur une rémunération basée sur les seuls coût d'installation logicielle, d'intégration de données et d'adaptation de la plate-forme de base aux désidératas du client dans la mesure de ce qui est possible dans un temps volontairement limité. L'ensemble de travail est réalisé par igeomatic.

Téléchargez le flyer de présentation de SVGMyServer

Téléchargez le document édité par le Revue Européenne de géographie, n°340 du 26 juin 2006 sur le déploiement d'atlas interactifs sur Internet


Formats / technologies :

Dans la catégorie des serveurs vectoriels, les technologies/formats disponibles ou en passe d'être disponibles sont :

-Flash : Solution commerciale d'Adobe/ex-Macromedia avec l'utilisation du format SWF (sources du format toutefois libres) et du langage de programmation ActionScript (solution commerciale Adobe similaire à EcmaScript),
-FLEX : Nouvelle solution commerciale d'Adobe permettant le dessin de boites de dialogue, de forms, de widgets, ...) avec utilisation du langage de programmation ActionScript,
-MARS : Nouvelle solution commerciale d'Adobe orientée PDF. Reste à comprendre l'intérêt par rapport à FLEX...
-SVG (solution open-source recommandée par W3C) épaulé par le langage EcmaScript pour l'intéraction avec l'utilisateur (AJAX pour la communication asynchrone XMLHTTPRequest). Il est à noter qu'il manque drastiquement des outils permettant le dessin simple de boites de dialogue, de forms et de widgets avec cette technologie. Pour palier à ce problème, le produit SVGMyServer utilise une bibliothèque de composant Javascripts/SVG développée par Andréas Neumann de carto.net. Pour être visualisable sous un navigateur Internet Explorer (6, 7, 8), un pluggin développé et distribué gratuitement par Adobe est indispensable : Adobe SVGViewer. Toutefois, d'autres pluggin (Corel SVGViewer, Batik, Renesis, ...) sont acceptés par IE. Depuis l'annonce d'arrêt de mort programmée pour 2009 par Adobe du pluggin SVG Viewer, les développeurs des produits Opera, Mozilla Firefox et Safari s'acharnent à produire le meilleur interpréteur natif de SVG. Avec ces produits, nul besoin de pluggin pour lire du SVG. Opera 9.5 sait même lire les composantes d'animation SMIL du SVG et Firefox 3.0 vient de gagner en vitesse d'interprétation...

Comparatif des performances des navigateurs en lecture SVG


-Java/SVG (voir projets Batik, Eclipse)
-VML : Produit Microsoft s'interprétant uniquement sous Internet Explorer 5.0+ et datant de quelques années. Il aurait servi de base au développement de SVG...C'est la technologie initialement utilisée par GoogleMaps bien qu'il aient par la suite décidé d'implémenter également SVG. Vous trouverez ici des tutoriaux en Français sur le langage VML.
-XUL/AJAX/SVG : Technologie développée par la Mozilla Foundation et utilisée nativement dans son navigateur Firefox1.5+ (20% de part de marché en Allemagne à fin 2006). A noter toutefois que les animations à la norme SMIL ne sont pas encore prises en compte dans ce navigateur contrairement à Opera qui utilise à priori la même technologie tout comme Safari, le navigateur d'Apple pour MacOSX.
-XAML (eXtensible Application Markup Language) - WPF/E (nom de code pour le nouveau Windows Presentation Foundation) - SilverLight (nom commercial): XAML est le nouveau format développé par Microsoft et adopté pour le moteur graphique (interface utilisateur) de Vista. XAML est basé sur le langage XML et sur les langages de programmation usuels de Microsoft : C#, VB, .... Microsoft propose des outils de développement pour designer (série "Expression"): Graphic Designer, Interactive Designer et Web Designer qui vont se retrouver directement en concurrence avec les outils d'Adobe Flash et Director, Flex, ...
Côté client, il faut installer un pluggin appelé SilverLight sur une version IE6 et + du navagateur de Microsoft.


-On peux aussi parler des développement réalisés dans le but de traduire du SVG en SWF, d'interpréter à la volée du SVG pour le traduire si besoin est en VML (Dojo toolkit),...

Tout ceci est assez complexe, autant technologiquement que politiquement. Il est très difficile de comprendre la politique de majors comme Adobe ayant racheté Macromédia et son produit phare Flash, mais acceptant tous les 6 mois de prolonger le support sur l'application (gratuite et devenue de facto concurrente) SVGViewer. De même, entre Flex et Mars, qu'en est-il?

De la même manière, que va faire Microsoft? Tout le monde espère une lecture de SVG en natif sur la prochaine version de son navigateur IE. Il n'en a rien été pour la version IE7... VML va t'il continuer à vivre?


SVG :

SVG ("Scalable Vector Graphics") est un langage de description vectorielle de graphique en 2D permettant également l'animation.

Le format SVG est particulièrement adapté à la diffusion de cartographies sur Internet. Son principal intérêt, outre le fait d'être libre de droits et totalement gratuit, réside dans son aptitude à stocker des données vectorielles. Jusqu'à récemment, l'énorme majorité de sites internet de diffusion de cartographies ne traite que des données image (mode raster) avec l'inconvénient d'être limité en qualité lors des changements d'échelles (demandé coté client, mais réalisé par l'envoi d'une image adaptée coté serveur). De plus le Web2.0 grace à la technologie Ajax se prète très bien à la mise à jour de portions d'une page html, en l'occurence de portions de couches vectorielles...

Avec le format SVG, l'information est transmise au client (browser Internet) et c'est lui-même qui peut agir sur les données par l'intermédiaire de scripts (ecmascript) : Zoom sans dégradation de la qualité visuelle, pan, interrogation des objets graphiques (affichage de leurs attributs associés par exemple), visualisation en temps réel de la position de la souris dans le système de coordonnées original des données, etc...

-SVG permet de représenter trois types d'objets graphiques : des formes vectorielles(traits, courbes, ...), des images et du texte.
-Les objets graphiques peuvent être groupés, transformés, composés dans d'autres objets et recevoir des attributs de style (transparences, ...).
-Les objets (géoréférencés dans un référentiel spatial simiaire à des données SIG) s'affichent eux-même dans un espace géoréférencé. On retrouve aisément une similarité avec les outils classiques utilisés pour afficher des données cartographiques de type SIG.
-Les graphiques SVG sont interactifs et dynamiques. Leur animation peut être définie soit à l'intérieur des fichiers SVG, soit dans un langage de script externe (ECMAScript).
-SVG possède une interface avec DOM pour que l'utilisateur puisse accéder à tous les éléments et attributs.
-SVG est relié aux standards suivants du W3C: XML, XML-NS, XLINK, Xpointer, XSL-T, CSS, DOM, SMIL, HTML, XHTML, ...
-Rapport volume de données / qualité visuelle excellent,
-Le "S" de "Scalable" indique une conservation de la qualité visuelle indépendamment de l'échelle de visualisation, ce qui est un énorme avantage par rapport aux solutions classiques Raster.


SVGMyServer

Dans les exemples présentés ici, reposant sur le produit SVGMyServer, les technologies suivantes ont été utilisées : Apache/PHP/MySQL/XML/SVG/JavaScript/CSS/... Pas d'utilisation d'html, donc pas de forms html afin de garantir une (future) compatibilité totale de navigateurs et d'OS...

Une base de données MySQL (version supérieure à la 4.11) stocke les données vectorielles dans un format neutre recommandé par le W3C : "Well Known Text" (WKT).
Le choix de ce SGBDR vient de sa mise à disposition systématique par tous les hébergeurs de sites web.
Un portage de l'application SVGMyServer sous PostGreSQL/PostGis est envisagé et possible, afin de répondre à la demande des intéressés.

En l'attente d'un portage complet pour lecture des exemples sous navigateurs alternatifs (Firefox, Safari, Opera), tous les exemples suivants sont sensés fonctionner correctement sous OS Microsoft Internet Explorer Version 5.5 et plus. Ce qui est indispensable : disposer sur sa machine du pluggin Adobe SVG V3. C'est pourquoi, avant d'aller plus loin, vous devez impérativement installer préalablement le pluggin d'Adobe SVGViewer : des problèmes?

Dans un avenir très proche, les exemples présentés ici (du fait du choix de réalisation en "Full" SVG, sans HTML), pourront fonctionner également dans d'autres environnements rendus possibles (http://www.svgi.org/) par les nombreux projets open-source ou commerciaux d'implémentation de reader SVG dont j'ai parlé avant.

Si le document SVG ci-dessous ne semble pas s'afficher,
veuillez installez le pluggin Adobe SVG Viewer avant de poursuivre!

Si l'animation SMIL/SVG ci-dessous ne semble pas être visualisée correctement, votre navigateur ne supporte pas les animations. Vous serez alors privé de quelques fonctionnalités.

 

Accédez ici aux applications