EasyGeoTweet Présentation

Contexte : Simplifier les procédures de recherches autour des tweets géolocalisés

Quand une catastrophe se produit, Twitter est un outil d’information en temps réel des plus efficaces. S’il est courant d’utiliser les mots clefs et hashtags pour suivre l’information sur une localité, le suivi des tweets géolocalisés est beaucoup moins utilisé.

Lorsque que l’on cherche une information locale, il est possible de trier les tweets en fonction d’une composante géographique liée aux cordonnées GPS de l’utilisateur (option activée par l’utilisateur). Cela permet de faire un premier tri entre ceux qui parlent de la catastrophe et ceux qui la vivent. Par exemple, si une explosion survient à un endroit, il est ainsi possible d’avoir seulement les tweets présents à cet endroit d’utilisateurs géolocalisés. De même, quand un événement se produit sur une grande zone, impactant beaucoup de personnes, la masse de données peut être significative. Faire une géosélection des tweets permet ainsi de concentrer son suivi sur une zone précise.

Mon ami Scott Reuter, Président du VOAD Oregon et formateur en SMEM (Social Medias in Emergency Management – les MSGU anglophones) avait rédigé un tutoriel pour apprendre à trouver ces tweets sur une zone définie. J’appliquais cette méthode avec mon équipe depuis quelques temps déjà.

Cependant, lors du dernier #msguchat que j’animais sur le monitoring des médias sociaux, Guylaine me rappeller que cette technique n’était pas évidente à mettre en place pour des néophytes et qu’il fallait un billet sur mon blog pour l’expliquer.

Plutôt que d’écrire un article détaillant cette méthode, il n’était vraiment pas plus long pour moi de créer une petite application simplifiant cette tâche. En effet, en tant que développeur, il y a deux manières d’être efficace. Ou on développe un gros projet sur plusieurs semaines ou mois, ou on développe très rapidement une petite application qui répond à un objectif précis. Cette seconde méthode permet de répondre à un besoin identifié et peu faire naître des projets. C’est par exemple une des méthodes choisies lors du Hackathon for Disaster Response 2.0.

Ainsi, d’un besoin identifié dans les communautés MSGU, SMEM et VOST, j’ai pris quelques minutes pour y apporter une réponse. L’objectif était de simplifier et d’accélérer le processus de recherche des tweets géolocalisés en développant très rapidement EasyGeoTweets.

Comment marche EasyGeoTweets ?

Lien vers l’outil EasyGeoTweets V1 : https://www.i-resilience.fr/app/easygeotweets/

Pour trouver les tweets localisés sur Twitter il faut :

1/ Naviguez jusqu’à la zone de recherche de tweets qui vous intéresse.

Recherche par adresse sur leaflet

Pour cela :
– Utilisez les zooms + ou –
– Tapez des informations de localisation dans le champ de recherche : adresse, code postal, commune, lieux-dit, places, coordonnées GPS – appuyer sur « entrée » pour valider la recherche.

2/ Cliquez sur la carte à l’endroit qui vous intéresse

Easygeotweets image

La puce bleue est le point qui est donné suite à la recherche. Ici, c’est un arrêt de bus à défaut d’être le bâtiment.
Lorsque l’on clique sur la carte, un pop-up blanc apparaît.

3/ Préparez votre recherche

La bulle blanche (pop-up) qui apparaît contient alors plusieurs informations :
– les coordonnées GPS en latitude et longitude au format décimal du point cliqué
– un champ de saisie de texte pour y mettre un mot clef ou un hashtag (mot-dièse) pour affiner la recherche de tweets gélocalisés
– et les rayons proposés autour de ce point de clic pour sélectionner l’étendue des tweets géolocalisés

Si l’on clique sur le lien « 100m », sans mettre de mot clef ou de hashtag, on obtient alors la recherche Twitter sur les tweets dans cette zone :

Tweets géolocalisés

Solution utilisée :

Je me suis intéressé aux dernières librairies autour d’OpenStreetMap et en particulier à la dernière librairie Leaflet et à son Plug-In Geosearch, utilisé ici par défaut. Le fond de carte est celui des contributeurs d’OpenStreetMap, tout comme la recherche par adresse basée sur le Nominatim d’OSM.

Deux fonctions JS « seulement » ont été rajoutées au code de Jieter qui a créé le plug-in Geosearch pour Leaflet, utilisé ici par défaut.

La fonction de construction et d’ouverture d’URL

function getUrl(km,olat,olng) {
  keyw=document.getElementById('keyword').value;
  if(keyw!=""){
    keyw=keyw+" ";
  }
  var url="https://twitter.com/search/realtime?q=";
  url=url+keyw;
  url=url+"geocode:"+olat+","+olng+","+km+"km&src=typd";
  window.open(url,'_blank');
}

La fonction de création du Popup

function onMapClick(e) {
    popup
        .setLatLng(e.latlng)
        .setContent("" + e.latlng.toString()+" <br>Keyword/hashtag (opt.) : <br/><input type=\"text\" id=\"keyword\"><br/>GeoTweets (radius): <br/><a href=\"#\"  onClick=\"getUrl("+0.1+","+e.latlng.lat+","+e.latlng.lng+");\">100m</a> - <a href=\"#\"  onClick=\"getUrl("+0.5+","+e.latlng.lat+","+e.latlng.lng+");\">500m</a> - <a href=\"#\"  onClick=\"getUrl("+1+","+e.latlng.lat+","+e.latlng.lng+");\">1km</a>  - <a href=\"#\"  onClick=\"getUrl("+5+","+e.latlng.lat+","+e.latlng.lng+");\">5km</a> - <a href=\"#\"  onClick=\"getUrl("+10+","+e.latlng.lat+","+e.latlng.lng+");\">10km</a> - <a href=\"#\"  onClick=\"getUrl("+50+","+e.latlng.lat+","+e.latlng.lng+");\">50km</a>  - <a href=\"#\"  onClick=\"getUrl("+100+","+e.latlng.lat+","+e.latlng.lng+");\">100km</a>")
        .openOn(map);
}

Axes d’améliorations pour un EasyGeoTweets V2 :

– Faire apparaitre sur la carte les positions de tous les tweets géosélectionnés avec une légende et un code couleur associé à leurs heures de création.

–  Une meilleure visibilité sur mobile pour le champ de recherche par adresse.

–  Faire apparaître le cercle de sélection des tweets géolocalisés en transparence.

–  Créer une feuille de style et un petit logo pour avoir une présentation plus sympa.

– Résoudre les bugs sur Internet Explorer.

En ce moment, je travaille sur une application de microtasking de photos en sécurité civile et la dimension géographique y sera présente. Je suis donc assez pris. Néanmoins, si quelqu’un veut bien faire évoluer ce projet, il est le bienvenu. Sinon, pour que je l’améliore, j’aurai plus de disponibilités à la fin de l’année.

Lien vers le code source : http://www/i-resilience.fr/app/easygeotweets/EasyGeoTweets-V1-1.zip

MAJ du 02/11/2019.

Suite à des changements de synthaxe dans l’url de recherche Twitter, l’application a été mise à jour comme suit :

By Cédric Moro

Auteur du blog I-Resilience, je suis depuis plus de 20 ans au service de la prévention des risques majeurs, surtout en Europe et en Afrique. J'allie cette expertise avec mes compétences de développeur d'applications, passé par des grandes boites IT, pour vous écrire ici des articles aux croisements de ces deux mondes.

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.