Because I'm API ! 02/12/2015

Aujourd'hui nous allons parler d'API. Une API est une interface de programmation, fournie par un logiciel ou un service web dans le but d'établir une liaison entre ce dernier et notre application / site. L'API fournit ainsi aux développeurs des fonctions prêtes à être utilisées, donc rapide à mettre en place.

Je n'avais jusqu'à présent pas vraiment eu l'occasion de tester d'API au travail. J'ai donc décidé de franchir le pas à titre personnel.

Mais quelle API utiliser ? Facebook, Twitter, Maps,... Mon choix s'est porté sur Google Maps, dans le but d'intégrer une carte des découvertes faites lorsque je pratique le geocaching.

"Le quoi ?!?..."

Le geocaching, est une sorte de chasse au trésor géante. Des geocacheurs cachent des geocaches, pour que des geotrouveurs les trouvent uniquement à l'aide de coordonnées GPS et d'un indice. Bref, ce n'est pas le sujet. Dans tous les cas cette vidéo l'explique sans doute mieux que moi si ça vous intéresse. Et puis avec plus de 2M7 geocaches dans le monde je suis presque sûr que vous en avez croisé une sans le savoir.

Cette carte à donc pour but de répertorier toutes les caches découvertes à mon actif (au moment où j'écris, un peu plus de 200).

La première étape toute simple a été d'afficher une map vierge. Puis d'y ajouter tous les markers correspondant aux geocaches trouvées. Jusqu'ici rien de bien passionnant, je dirais même la base. Mais le but ici est de prendre en main cette API que je n'ai jamais vraiment eu l'occasion d'utiliser.

La carte en place, j'ai ajouté une interaction avec les marker via des infobulles qui donnent des informations sur la cache en question. Et oui, car en plus d'avoir un nom, à chacune d'entre elle correspond une note pour le terrain et une pour la difficulté. J'ai également mis en place un lien vers la page de la cache sur le site officiel de geocaching. J'en ai profité pour afficher les photos prises sur place pour certaines.

Et voilà la carte est en place et opérationnelle. Cependant, à certains endroits les markers ont tendances à être très proches, de ce fait ça devient vite le fouillis. Après quelques recherches sur internet j'apprends l’existence des clusters, quelques lignes de code plus tard me voilà avec de jolis clusters pour regrouper les markers et ainsi clarifier la map.

Le rendu est plutôt propre, mais à mon goût la map par défaut est trop colorée. Je me dirige donc une nouvelle fois sur Google et trouve rapidement une solution à mon problème. Je mets donc en place un style noir et blanc pour cette map, en gardant tout de même les zones d'eau en bleu. Et tant que je suis dans les couleurs j'en profite pour mettre les différents markers à la couleur du type de la cache associée (vert pour traditionnelle, bleu pour mystère et orange pour multi). Nous voilà donc avec un peu de couleur mais pas trop.

Quelques jours après la mise en place de la map quelque chose me chagrine, j'ai centré la map et défini le zoom en dur. Un zoom au mieux et un centrage auto serait tellement plus intéressant. Une fois de plus quelques minutes me suffisent à trouver une solution à mon problème.

Ce projet prend fin et je suis plutôt satisfait du résultat, il est toutesfois dommage que le site officiel de geocaching ne fournisse pas de lien RSS, json, xml... avec ces informations. En effet dès que je fais une nouvelle trouvaille je dois l'ajouter à la mano dans mon array. Seul petit point négatif donc et celui-ci n'est pas lié à l'API.

Ce que je retiens de ce petit projet c'est qu'une API bien documentée est très facile à prendre en main et c'est le cas de celle de Google Maps. Pour conclure en deux mots sur cette dernière : simple et efficace.

Et pour ceux qui sont arrivés jusqu'au bout de cet article, voici le lien de cette fameuse carte aux trésors.

PS : s'il y a des geocacheurs parmis vous, petite pub pour celle que j'ai posé.