À vous de jouer !
Afin de valider les compétences acquises dans les deux dernières parties de ce cours, je vous propose de réaliser une application permettant de déterminer le nom du monument qui se trouve devant vous: il s’agit d’une application géolocalisée qui va interroger une base de données de monuments. Le résultat n’est pas garanti, mais cela vaut le coup d’essayer !
L’illustration suivante montre un exemple de visuel possible pour cette application, dont les éléments notables sont : un bouton pour lancer la requête et l’affichage du nom du monument dans un TextView
.

Exploiter une source de donnée de monuments géolocalisés
Vous pourrez utiliser la base de données de Wikimedia pour accéder aux informations des monuments. Une API d’interrogation existe et est documentée ici. Par exemple, la requête suivante permet d’obtenir le monument au coordonnées précisées, dans la limite d’un seul monument et d’avoir une réponse au format JSON:
https://tools.wmflabs.org/heritage/api/api.php?action=search&coord=48.853493,2.348059&radius=10000&format=json&limit=1
On trouve alors dans l’un des sous objets JSON l’attribut name:
"name":"[[Cathédrale Notre-Dame de Paris|Cathédrale Notre-Dame]]"
On est donc tout proche de Notre-Dame
Conseils de réalisation
Réalisez une interface simple sur votre montre connectée : un bouton et deux labels de texte doivent suffire. Pour simplifier le développement, on fera l’ensemble du traitement dans la montre (sans développer de code côté smartphone) :
la requête HTTP depuis la montre connectée,
la récupération des données au format JSON,
l’affichage sur l’interface de la montre.
En bonus, on pourra s’amuser à “loguer” le résultat du côté du téléphone mobile: on peut par exemple envoyer un message depuis la montre avec le nom du monument et l’afficher dans une zone de texte de l’application côté mobile.
Vérifiez votre travail
Vérifiez que vous avez bien les éléments suivants :
Le code source est lisible et bien indenté
L'application compile et démarre
L'interface permet de lancer la requête
La position est correctement détectée
Le monument correspondant aux coordonnées GPS est affiché (soit via la géolocalisation, soit par les coordonnées fournies)
La requête HTTP a correctement été effectuée via une AsyncTask (ou un équivalent, par exemple un Thread)
Un écouteur est utilisé pour que l'information de géolocalisation soit mise à jour
La permission INTERNET est bien déclarée