Contact: devloic at gmail dot com

0.931 publiée: correction d'un problème de content-type xml sous Firefox

Suite à certains problèmes dans la démo en ligne j'ai publié une nouvelle version 0.931.
Cette version envoie un header content-type de type text/xml avec la réponse SOAP afin
que Firefox puisse traiter la réponse correctement.
Le fichier core server/SoapXMLCache.php devrait prendre ça en charge dans readSoapXML(). J'ai
ouvert un ticket dans le bugzilla de CartoWeb pour cela.
exportGge 0.931 remplace également une url codée en dur dans soap.tpl avec sa valeur dynamique.

Loïc

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

Multilinguisme cartoweb sans charger l'extension php gettext

La classe I18nGettextZend a été développée pour résoudre des problèmes de cache avec l'extension gettext sous linux. Il n'était pas possible de mettre à jour des fichier .mo sans redémarrage d'Apache. Avec I18nGettextZend les fichiers .mo sont pris en compte sans redémarrage d'Apache. I18nGettextZend n'a pas besoin d'avoir l'extension php gettext chargée. Elle s'appuie sur Zend_Translate issu du Zend Framework. I18nGettextZend implémente l'interface cartoweb I18nInterface et utilise le pattern singleton. La procédure d'installation remplace le fichier cartoweb3/client/Internationalization.php d'origine par une version modifiée contenant la classe I18nGettextZend.
La version proposée est destinée à CartoWeb 3.4 . Une version pour CartoWeb 3.5 est en cours de test.

Fichier attachéTailleAccèsLast download
I18nGettextZend.zip1.23 Mo4216 jours 15 heures ago

Outils de mesure de distance et de surface acceptant les degrés MISE A JOUR 22/07/2008

Les outils de mesure de distance et de surface ne fonctionnaient qu'avec des mapfiles en UTM. Avec le plugin Dmstools disponible en téléchargement ci-dessous il est maintenant possible de faire fonctionner ces outils en epsg:4326 par example. Le plugin Dmstools convertie également les coordonnées dans le format degrés/minutes/secondes à la volée en javascript. Pour les instructions d'installation lire le readme.txt ( en anglais ) dans l'archive du plugin.


MISE A JOUR 22/07/2008
: refactoring de dmstools.js pour éviter des conflits avec dhtmlAPI.js

Loïc

Fichier attachéTailleAccèsLast download
dmstools_22072008.zip7.9 Ko3316 jours 15 heures ago

Sortie d'exportGge 0.92 alpha !

Cette verson apporte de nouvelles fonctionnalités majeures. L'export n'est plus limité au format KML, les couches pouvant être exportées en geoRSS et geoJSON. Ces deux nouveaux formats permettent à exportGge de proposer la visualisation des données dans Virtual Earth (via geoRSS) et Yahoo Maps (via geoJSON). geoRSS peut aussi être utilisé pour présenter les données dans Google Maps. Lancer la démo et faire une query pour obtenir les liens vers ces différents modes d'export.

Pour les dévelopeurs, exportGge possède dorénavant un mode debug qui rend plus facile de tracer l'utilisation des différents templates smarty ainsi que la source de données ( couche CartoWeb, couche MapServer, nom du shape file).
Chaque couche peut maintenant avoir son propre template smarty ce qui rend la tache plus facile pour créer des présentations différentes suivant les différents types de données.

Les dépendances avec les coreplugins query and tables sont toujours très importantes mais je continuerai l'effort pour les réduire.

Exporter des donneés c'est sympa (?) mais pourquoi ne pas .... importer des données dans ces formats! CartoWeb propose déjà les outils nécessaires pour faire cela, c'est juste une question de plomberie plus ou moins rigolote. S'il y'a des gens interessés et motivés par ce challenge faites le mois savoir :

devloic at gmail dot com .

Documentation pdf complète incluant des photos d'écran disponible ci-dessous. 

Joyeuse cartographie à tous,

Loïc

Fichier attachéTailleAccèsLast download
exportGge_092_doc_français.pdf1.82 Mo11955 jours 23 heures ago

Utiliser des jonctions sous Windows pour le déploiement de projets CartoWeb

Il est très pénible de devoir redéployer un project CartoWeb en ligne de commande chaque fois qu'on modifie une ressource javascript ou css. Ceci affecte seulement les système Windows car sous linux cw3setup.php crée des liens symboliques. Bien que ce ne soit pas officiellement supporté, les liens symboliques sont disponibles depuis Windows 2000 et sont appelés des jonctions.

J'ai modifié cw3setup.php ( basé sur CartoWeb 3.4 RC1) afin que le script utilise des jonctions à la place de faire une copie des répertoires et fichiers sous CARTOWEB_HOME/htdocs .
Junction.exe doit être disponible dans le path système ( ex: C:\WINDOWS\system32 ) .
Les jonctions fonctionnent seulement sur des partitions NTFS mais il est cependant possible de créer une jonction sur un volume NTFS qui pointe vers un répertoire sur une partition non-NTFS.
Junction.exe peut être téléchargé ci-dessous ou sur le site de Microsoft :
http://www.microsoft.com/france/technet/sysinternals/FileAndDisk/Junction.mspx
( La page indique Junction 1.04 mais le lien de téléchargement propose la version 1.05 )

La syntaxe de cw3setup.php ne change pas. Pour déployer il suffit de lancer qq chose comme:
php.exe cw3setup2.php --install --project myproject --base-url http://localhost/cartoweb3/htdocs/

Pour éviter l'utilisation des jonctions, ajouter l'option --no-symlinks :
php.exe cw3setup2.php --install --no-symlinks --project myproject --base-url http://localhost/cartoweb3/htdocs/

Il est nécessaire de redéployer lorsqu'un nouveau répertoire qui contient des css, js, gfx ou autre est créé dans le projet, par exemple lorsqu'un nouveau plugin possédant un répertoire htdocs est ajouté.

J'ai renommé le cw3setup.php modifié cw3setup2.php. Il est disponible en téléchargement ci-dessous.
cw3setup2.php a été testé sous Windows XP avec Junction 1.05 mais est sensé fonctionner sous Windows 2000. Windows Vista possède sa propre implémentation des liens symboliques ce qui fait que je n'ai aucune idée si les jonctions fonctionnent toujours.

Plus d'info sur les jonctions ici: http://en.wikipedia.org/wiki/NTFS_junction_point

La version proposée est destinée à CartoWeb 3.4 . Une version pour CartoWeb 3.5 est en cours de test.

Loïc

Fichier attachéTailleAccèsLast download
Junction.zip45.29 Ko2792 semaines 20 heures ago
cw3setup2.phps39.79 Ko23456 heures 5 minutes ago

Qu'est ce qu'exportGge ?

exportGge est un plugin d'export KML, geoRSS et geoJSON distribué sous license GPL pour CartoWeb, une solution de cartographie en ligne open source s'appuyant sur UMN MapServer et écrite en php5. Avec exportGge il est possible de :

photo d'écran exportgge google mapsphoto d'écran exportGge Google Earth
  • visualiser chaque carte générée par CartoWeb sous Google Earth en tant que ground overlay
  • visualiser chaque point , ligne, polygone en tant que placemark dans Google Earth avec les metadonnées associées
  • visualiser chaque couche MapServer dans Google Earth en tant que couche WMS. La couche WMS est rafraichie en fonction de la navigation dans Google Earth (Network links)
  • visualiser toutes les données mentionnées précédemment dans Google Maps
  • visualiser toutes les couches (sauf raster) dans Virtual Earth et Yahoo Maps
  • exporter les couches au format brut geoRSS et geoJSON
  • les données exportées peuvent être issues de l'étendue complète de la carte ou d'une portion sélectionnée à l'aide des outils de "requête sélection" de CartoWeb

exportGge est prévu pour fonctionner avec la dernière version de CartoWeb ( 3.4 RC1 ). Certaines fonctionnalités sont susceptibles de fonctionner avec des versions plus anciennes.
exportGge est disponible à travers le projet CartoWeb par défaut demoCW3 modifié et peut être téléchargé ici. Une démo en ligne est proposée ici.
Retours d'expérience et questions sont les bienvenus en me contactant par email devloic at gmail dot com ou directement en ligne à droite de la page.

Loïc

exportGge 0.91 alpha en téléchargement!

A l'occasion de la sortie d'exportGge alpha 0.91 qui ajoute la visualisation de couches CartoWeb dans Google maps, j'ai mis en place des liens vers un site de démo et vers des photos d'écran.
exportGge est de l'open source diffusé sous licence GPL.

exportGge 0.9 alpha disponible!

exportGge permet d'exporter des couches Cartoweb en KML et des les visualiser ainsi dans google earth.
Le plugin est disponible au sein d'un projet Cartoweb ( projet demoCW3 modifié). Ceci devrait permettre de le tester plus rapidement sans avoir à passer par la configuration d'un nouveau projet.
N'hésitez pas à me faire part de vos remarques techniques ou autres.
Bon export KML !

Loïc