Contact: devloic at gmail dot com

exportGge 0.93 disponible ! Intégration d'OpenLayers et de Google Earth Plug-in.

La sortie d'exportGge 0.93 marque peut être un tournant dans le développement de CartoWeb 3 . En intégrant OpenLayers exportGge rend la partie cartoclient obsolète ce qui a pour conséquence d'à la fois alléger les traitements serveur ( ceux ci étant executés dans le browser) , d'accroitre la réactivité de l'interface web et d'accélérer les développements liés à cette même interface ( on s'épargne tout la plomberie javascript/php). On se rapproche ainsi de l'architecture de cartoweb 4 , alias mapFish à la différence qu'on reste avec notre bon vieux PHP. Techniquement cette intégration d'OpenLayers a été possible en forgeant des messages SOAP.... en javascript. Le browser communique du coup directement avec la partie cartoserver de CartoWeb via SOAP. Même si on peut se demander si SOAP est encore un bon choix compte tenu de sa lourdeur et s'il ne faudrait pas mieux implémenter un dialogue browser/cartoserver basé sur JSON ou autre, exportGge 0.93 permet je pense de repousser un peu les limites de la version 3 de CartoWeb et qui sait, rajeunir quelques applications existantes. En se basant sur OpenLayers pour la partie cliente on profite et on fait profiter la communauté de toute amélioration basée sur ce framework, ce n'est pas rien.
Voici les améliorations et nouvelles fonctionnalités apportées au plugin:

  • ajout d'une bibliothèque javascript SOAP permettant à OpenLayers d'accéder à cartoserver en mode SOAP l'interface OpenLayers en mode SOAP propose les fonctionnalités suivantes ( entièrement codées en javascript) :
  1. identification facile des éléments géographiques sur la carte via des markers ou en parcourant les métadonnées
  2. pagination/tri des tables de métadonnées
  3. recherche fulltext des métadonnées
  4. export vers PDF ( désactivé sous IE
  5. export vers CSV
  6. visualisation des données grace au plugin google earth dans le navigateur
  7. mesure d'aire et de distance, historique de navigation,pan,zoom,opacité, réordonnancement des couches
  • support de l'api google maps et google earth
  • mise à niveau vers yahoo maps api 3.8 et  virtual earth api 6.1 et KML 2.2 ( validé avec http://kmlvalidator.com )
  • overlay plus précis dans google earth
  • l'export KML vers google earth fonctionne en mode SOAP (ie cartoserverDirectAccess=false)

Problèmes référencés:

  • si cartoserver et cartoclient sont sur deux domaines différents alors le POST Soap en Ajax va échouer. J'ai essayé d'autres techniques comme "window.name" et le post à partir d'une iframe mais je bute sur le problème décrit ici : asynchronous-cross-domain-POST-request-inside-openlayers
  • le plugin google earth plante s'il est caché, du coup si dans le layerswitcher on sélectionne le mode google earth puis on quitte ce mode etfinalement on le recoche le plugin plante. Ce problème est connu : http://code.google.com/p/earth-api-samples/issues/detail?id=141
  • l'export CSV sous IE est fastidieux à cause de la barre d'information de sécurité qui s'ouvre
  • des fragments d'images correspondant à une couche OpenLayers apparaissent dans le fond des placemarks Google Earth

Remerciements aux auteurs de :

Javascript "SOAP Client" library : http://www.guru4.net/
geoxml : http://code.google.com/p/geoxml/
TrimPath JavaScript Templates : http://code.google.com/p/trimpath/wiki/JavaScriptTemplates
jquery tableFilter: http://ideamill.synaptrixgroup.com/?page_id=16
jsPDF : http://code.google.com/p/jspdf/
jvanulder extended OpenLayers layerswitcher : http://trac.openlayers.org/browser/sandbox/jvanulden/openlayers/lib/OpenLayers/Control/LayerSwitcher.js
proj4js : http://trac.osgeo.org/proj4js/
 
et aussi aux auteurs des plugins jquery suivants :
cacheimage, cookies, truemouseout, jcache, jQuery Post, table2CSV
 
Loïc