Indiquez dans le formulaire ci-dessous un lieu, et si possible le pays où il se trouve, puis cliquez sur le bouton pour découvrir des photos, des cartes et des informations sur celui-ci.

Le lieu
Une idée du pays ?

Notes :

    • Les résultats des recherches sont limités à une profondeur de 10, ceci pour ne pas surcharger par les requêtes les différents serveurs.
    • Vous êtes limités, en tant qu’utilisateur final, à quelques 1000 interrogations de lieux par période de 24 heures, au delà, une erreur vous sera signalée.
    • L’altitude du lieu est calculé d’après une grille de 90 mètres de côté, ou de 1’000 mètres pour les zones moins couvertes. Attention, ici le nombre de requêtes possibles est de 20 par heure.

Bonnes visites virtuelles !

Comment ça marche ?

Cette page fait un usage massif de la technologie YQL pour pouvoir afficher rapidement les résultats concernant un lieu.

YQL (Yahoo Query Language) est à la fois un langage de requête apparenté à SQL et un web-service offrant en standard de nombreuses possibilités (requêter, filtrer, croiser et joindre des données entre les services Web).

L’interrogation des services est très simple et est toujours de la forme :
SELECT quoi FROM service WHERE condition

Vous pouvez consulter un très bon article d’introduction (en anglais), par Christian Heilmann, expliquant le YQL sur http://www.smashingmagazine.com.

Quelques exemples en YQL :

On peut faire de très intéressantes requêtes en utilisant YQL. Ainsi, en mettant en cascade les résultats, en les filtrant, ou encore en les croisant, on arrive réellement à obtenir des informations pertinentes (et parfois surprenantes) à travers Internet.
En voici quelques-unes :

  • Rechercher sur Google le mot “atypique” :
    select * from google.search where q=”atypique”
  • Rechercher sur Google le mot “atypique” mais ne retourner que le titre et les URL’s des résultats :
    select url,title from google.search where q=”atypique”
  • Rechercher les titres des derniers articles du magazine Smashing et les traduire en français :
    select * from google.translate where q in (select title from feed where url=”http://rss1.smashingmagazine.com/feed/”) and target=”fr”
  • Trouver les mentions les plus récentes du mot “ipad” sur Delicious et YouTube :
    select * from social.updates.search where query=”ipad” and source in (“delicious”,”youtube”)
  • Afficher les restaurants japonais servant des sushis à Paris. Récupérer 50 résultats, mais limiter l’affichage à 20 tout en éliminant les 10 premiers :
    select * from local.search(50) where query=”sushi” and location=”Paris, France” limit 20 offset 10
  • Montrer les photos prises à Lyon en France :
    select * from flickr.photos.search where woe_id in (select woeid from geo.places where text=”Lyon, France”)

Et l’algorithme (ou la méthode) utilisé ici :

Faire une recherche sur geo.places avec comme arguments le nom du lieu et le pays (si indiqué).

  • Pour chaque résultat...
    • Récupérer les données géographiques (nom, région, latitude, etc.).
    • Faire une recherche de l’altitude du lieu sur geonames.org avec la latitude et la longitude.
      • Si l’information n’est pas disponible, basculer sur earthtools.org un autre serveur de données.
    • Récupérer la carte sur maps.map en utilisant la latitude et la longitude, faire un zoom intelligent pour l’affichage.
      • Préparer la possibilité de visualiser une carte interactive dans google.maps.
    • Récupérer les lieux aux alentours sur geo.places.neighbors avec l’identifiant unique WOE (Where On Earth == où sur le monde).
      • Pour chaque lieu trouvé extraire les informations pertinentes.
    • Récupérer les futurs évènements sur upcoming.events.
      • Pour chaque évènement trouvé extraire les informations intéressantes et les afficher.
    • Obtenir les données météorologiques sur weather.woeid avec le WOE.
      • Convertir les différentes informations en textes humainement compréhensibles.
    • Trouver les photos afférentes au lieu sur flickr.photos.search en utilisant le WOE ainsi que le nom du lieu. Pour chaque photo :
      • Créer une miniature
      • Trouver le propriétaire sur flickr.people.getInfo
        • Identifier l’album de la photo
        • Préparer la possibilité de visualiser la photo, dans cet album, en taille réelle

Et voilà !
Le résultat est affiché quelque part au-dessus ;-)