Où est Martin?

Ou plutôt où est l’ordi de Martin? C’est facile, il suffit de regarder ici http://tinyurl.com/maxfcon

Comment cela fonctionne?

Premièrement, l’application web (l’interface de la carte) provient d’un modèle (template) que j’ai pris dans ArcGIS Online. Il en existe plusieurs formats et elles sont gratuites. J’ai tout simplement appliqué ce modèle à une carte web (web map). Qu’est-ce qu’une carte web? C’est simplement une carte fait à partir de la visionneuse d’ArcGIS Online. Vous pouvez en créer une à partir d’un compte public (gratuit) ou d’un compte organisationnel (payant). Vous n’avez qu’à définir un fond de carte, ajouter vos données et sauvegarder. Cela vous donne une carte web (web map) dans le cloud (infonuagique en français) sauvegardée dans votre compte sur le site d’ArcGIS Online. Pour plus d’info, question de ne pas refaire ce qui existe déjà, voici un bon point de départ pour ArcGIS Online (ici).

Mes données de géolocalisation ne sont pas statiques, elles sont générées toutes les 15 minutes. Maintenant, comment mettre à jour des données aux 15 min sur une carte faite et sauvegardée dans le web? Tout d’abord, il faut savoir que les données de la géolocalisation de mon ordi sont issues d’un fichier CSV (comma separated values) généré automatiquement par un logiciel (je m’explique plus bas, on ne saute pas d’étapes).

Si je reviens à la carte web, vous pouvez ajouter plusieurs formats de données à celle-ci via la visionneuse. Des fichiers Shapefile en format .zip, des fichiers provenant d’un GPS ( avec l’extension .gpx) et des données CSV (pour plus d’infos sur le CSV, voir ici). Autre élément  à savoir, c’est que les données CSV (entres autres) peuvent être stockées sur ArcGIS Online ou sur n’importe quel serveur sur le web (ArcGIS Online doit y avoir accès évidemment). Dans mon cas, les données sont stockées sur un site perso via FTP. Donc facilement accessible pour une mise à jour régulière. Si vous me suivez, les données de la carte se mettent à jour quand mes données (fichier CSV) sont mises à jour sur le site web. La carte n’est qu'un simple pointeur vers mes données web.

Maintenant, la partie mise à jour automatique. J’ai fait un service en VB. Net. C’est un petit logiciel qui s’exécute automatiquement au démarrage de l’ordinateur et qui ne contient aucune interface. Autrement dit, l’usager de l’ordi ne peut savoir que ce logiciel fonctionne à moins qu’il accède à la liste des services de Windows (peut se faire en inscrivant « services » dans le menu démarrage de Windows). Voici mon service sur mon ordi.

Ce logiciel ne fait que trouver la position (latitude et longitude) de mon ordi et met le tout à jour sur le site web via le protocole FTP (plus d’infos sur FTP ici). Le résultat se trouve ici : http://tinyurl.com/mayn8se. Soit un simple fichier texte ou les données sont séparées par des virgules.

Comment fait le logiciel pour trouver la position de l’ordi? J’utilise un site : http://freegeoip.net/ (il en existe plusieurs sur le web, j’ai pris celui-ci par pur hasard). Ce site utilise l’adresse IP de mon ordi et trouve son emplacement géographique. Les adresses IP sur le web ne sont pas distribuées au hasard, elles le sont par zones géographiques. Donc il est possible de trouver une position géographique en utilisant une adresse IP. Pour rendre la chose plus facile à extraire pour un logiciel, vous pouvez ajouter « /xml » à la fin de l’adresse (http://freegeoip.net/xml). Vous avez l’info en format XML.

Si je résume la partie logiciel, c’est un service qui roule sur mon ordi. Ce dernier va chercher la position géographique de mon ordi via mon adresse IP sur un site web. Il crée un fichier CSV qu’il met sur le Web via le protocole FTP. Simple, non? Si vous voulez le code source de mon service, il est ici : http://tinyurl.com/kkd2946.

Maintenant, la problématique qu’il me reste à régler, c’est que lorsque mon ordi se trouve derrière un proxy (voir ici pour comprendre ce que c’est). Ma position est associée à l’emplacement du proxy. Donc, si je suis dans un sous réseau, mon ordi peut-être physiquement à Québec, mais mon accès internet peut se faire via un ordi à Toronto. J’aurai donc la géolocalisation de l’ordi qui me permet d’aller sur internet plutôt que celle de mon ordi.

Encore du pain sur la planche

Martin

Vous avez du contenu à publier sur SigQuébec?

Communiquez avec le Webmestre.