Interroger OSM avec overpassturbo
Avec overpassturbo, il est possible d'interroger la base de données OpenStreetMap pour rendre visible ou extraire les données qui répondent aux critères.L'utilisation de l'assistant de construction de requête aide beaucoup mais connaître un peu de syntaxe permet d'extraire des données plus fines. Ces notes sont une traduction/simplification de la page https://wiki.openstreetmap.org/wiki/FR:Overpass_API/Language_Guide#One_or_another_name
Combiner plusieurs critères
Si vous souhaitez combinez plusieurs tags dans votre requête via l'assistant, vous pouvez les indiquer en les séparant par un AND ou un ORex : waterway=ditch and description~gorgebleue
Extraire des données contenant une partie d'un mot
Même si vous ne connaissez pas le nom exact, vous pouvez trouver l'objet.Le premier exemple recherche tout nœud, ligne ou relation dont la description contient la chaîne "gorgebleue" :
Dans l'assistant : description~gorgebleue
Le deuxième exemple recherche tout nœud, ligne ou relation dont la description commence par la chaîne de caractères "gorgebleue" :
Dans l'assistant : description~^gorgebleue
Le troisième exemple recherche tout nœud, ligne ou relation dont la chaîne de caractères "gorgebleue" est la fin de la description :
Dans l'assistant : description~gorgebleue$
Et vous pouvez faire une recherche insensible à la casse avec des expressions régulières en mettant les deux variantes entre parenthèses :
Dans l'assistant : description~[Gg]orgebleue
Et si vous n'êtes pas sûr de l'orthographe d'un mot vous pouvez remplacer une lettre par un . :
Dans l'assistant : description~gorg.bleue
Si vous voulez autoriser deux valeurs alternatives, vous pouvez utiliser un | pour cela.
Dans l'assistant : description~gorgebleue|rousserolle
Extraire des données par exclusion
Par exemple, la requête suivante donne toutes les routes qui n'ont pas de valeur de clé d'autoroute :["highway"!~"."] => type de route sauf autoroute
["waterway"!~"."] :> tout ce qui n'est pas un waterway
Comme deuxième exemple, vous pouvez limiter une requête pour les arrêts d'autobus à ceux qui ont un abri. Techniquement, nous recherchons les nœuds avec "highway"="bus_stop" et tag "shelter" présent, mais pas réglé sur "no".
["highway"="bus_stop"]
["shelter"]
["shelter"!="no"]
Autre exemple : tous les endroits avec gorgebleue dans la description mais qui ne sont pas des fossés (wateway=ditch)
["description"~"gorgebleue"]["waterway"!~"."]