samedi, 26 septembre 2020 21:47

Commet rechercher des magasins, salles, ... dans une ville grâce à OpenStreetMap

Écrit par

Dans cet article, je veux montrer à des fins non seulement de démonstration, mais aussi pour aider une tierce personne qui ne me l'a pas demandé mais qui je suis sûr se reconnaitra, comment utiliser le site internet OpenStreetMap afin de pouvoir récupérer sous la forme d'un ensemble cohérent de données, dans un format standard que vous pourrez choisir, un ensemble d'éléments répondant à une requête (ou plutôt une géorequête ?) particulière.
Je prends comme exemple son besoin, à savoir comment récupérer une liste des commerces, ou plutôt des petits commerces, que l'on peut trouver dans la ville de Nancy. La réponse est simple : il suffit donc d'interroger les données intégrées à OpenStreetMap de la manière suivante.

En allant sur le site http://overpass-turbo.eu, vous avez la possibilité de récupérer ces informations. Une fois votre navigateur positionné sur le site dont je vous ai donné l'URL, positionnez la carte de vous avez sur votre droite, grosso-modo sur la région que vous souhaitez interroger, on zoomant et en dezoomant la carte sous vos yeux.
Une fois la définition de votre zone géographique marquée par ce rectangle dans lequel vous avez toute votre carte affichée, dans la partie gauche collez le code que je vous donne ci- dessous :

[out:json][timeout:25]; // gather results ( // query part for: “Magasin” node["shop"]({{bbox}}); way["shop"]({{bbox}}); relation["shop"]({{bbox}}); ); // print results out body; >; out skel qt;

Remarquez dans ce code que vous avez il y a possibilité de changer le mot "shop" (il se trouve entre les crochets), par d'autres termes que vous retrouverez en suivant l'adresse que je vous donne :

https://nominatim.org/release-docs/latest/api/Search/

Une fois ce code collé, cliquez sur le bouton "exécuter". Ici un ensemble de magasins s'affiche sur votre carte.
Mais vous allez me dire, "que puis-je faire d'une carte comme ceci ? ".
Et bien l'exporter pardi !

Mais pas exporter la carte qui ne serait pas intégralement exploitable, mais bien exporter l'ensemble des données qu'elle contient !
Pour cela sur la barre horizontale située en haut de votre écran, cliquez sur le terme exporter (vous devez être dans l'onglet données). Toutefois vous pouvez remarquer que la requette que vous allez générer sur open Street Map, vous pouvez l'enregistrer pour la rejouer ultérieurement. Parenthèse fermée, lancez votre requête dans le but de pouvoir exporter les résultats renvoyés.
L'ensemble des résultats s'affiche sur votre carte de droite, sous la forme de petits points colorés, il ne vous reste plus qu'à en exporter ses données.

OSM

Pour le faire, cliquez sur le bouton exporter en haut dans la barre des actions. Une fenêtre modale s'ouvre, afin de vous proposer le format dans lequel l'export doit être effectué. Ce format vous est proposé dans l'onglet données. Choisissez votre format en cliquant sur le lien télécharger. Notez que, si vous êtes amené à relancer ultérieurement cette même requête, sélectionnez le dernier onglet tout en bas requête, vous pourrez ainsi récupérer la requête générée dans le but de la sauvegarder pour la rejouer ultérieurement. Je vous conseille de la stocker dans un petit fichier texte sur votre machine ou dans le cloud
Vous avez donc plusieurs formats qui vous sont proposés, malheureusement le format texte brut ne l'est pas. Mais vous pouvez exporter vous donnez au format JSON, format suffisamment standard pour pouvoir être ultérieurement réexploité par n'importe quel outil de développement. Vous pouvez aussi récupérer ces données au format KML voire GeoJson.

Si vous êtes amené à ré-importer ces mêmes données dans une autre carte de celle proposée par OpenStreetMap, vous pourrez le faire. Je vous laisse bien entendu le choix de regarder les autres options comme export de votre carte au format PNG, c'est-à-dire sous la forme d'une image, ou d'intégrer votre carte dans un format dynamique que vous pourrez par la suite réintégrer à votre propre site web.

Lu 624 fois