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
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 ("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.
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, |
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 |