Ce TP durera deux séances. Créez un projet MIF38-TP2 sur la forge, ajoutez-y votre binôme et vos encadrants (comme reporters). N'oubliez pas de mettre vos noms dans la description du projet.
L'objectif est de créer une application qui présente des données géolocalisées issues de plusieurs sources :
L'utilisateur entrera un nom de lieu (pays, ville...) et l'application lui positionnera sur la carte ce lieu, avec une description textuelle issue de différentes sources de données.
Comme au TP précédent, vous allez réaliser une Single-Page Application (SPA). Cette application comportera deux vues (pour l'instant) : une page de recherche de points d'intérêt (PoI) et une page de visualisation de ces PoI sur une carte. Commencez par :
Modifiez le modèle de la recherche pour qu'il crée et envoie les requêtes suivantes :
À la réception de la réponse au service de localisation, changez la route pour afficher la carte et centrez-la sur les coordonnées du lieu demandé.
À la réception des réponses de DBPedia uniquement, créez et enrichissez une ou plusieurs "boîtes" (InfoWindow sous Google) avec le texte de description introductif de la / des ressources et positionnez-la (les) sur le lieu demandé.
Remarque :
Pour l'instant, votre application ne gère pas les erreurs et n'utilise qu'une seule des deux sources de données (DBPedia et LinkedGeoData). Vous allez définir et mettre en oeuvre un modèle d'agrégation et de visualisation des données.
Pour cela, commencez par mettre en place un requêtage similaire de LinkedGeoData. Testez.
Définissez ensuite le modèle de données sous-jacent que vous souhaitez utiliser. Pour chaque type de données (ville, pays...), correspondra à un objet avec des attributs spécifiques (nom, description, coordonnées, nombre d'habitants, spécialités culinaires...), et vous stockerez l'ensemble de vos données dans un tableau JSON.
Définissez ensuite la politique d'intégration des données dans le modèle : en fonction du type de données retourné par une source, ajoutez-le au modèle. À vous de définir comment faire pour gérer les doublons : privilégier une source, concaténer les résultats, les comparer...
Comme au TP1, mettez en place le templating pour ajouter à la carte un widget approprié et différent en fonction du type de ressource demandé.
À l'aide de l'API de géolocalisation, indiquez également sur la carte la position de l'appareil.
Le rendu du TP s'effectue sur la forge. Le dernier commit devra avoir été fait avant le début de la séance de TP suivante.
Pour ce qui est du serveur, je vous demande :