## Introduction
**Overpass Turbo** ([https://overpass-turbo.eu/](https://overpass-turbo.eu/)) est une interface web permettant d'interroger la base de données OpenStreetMap (OSM) via l'**API Overpass**. Elle permet de rechercher des objets cartographiques (points, lignes, zones) très spécifiques en fonction de leurs **tags** (étiquettes `clé=valeur`). C'est un outil puissant pour la géolocalisation et la collecte d'informations sur une zone.
## Interface Principale
* **Carte :** Affiche les résultats de la requête. La zone visible définit souvent la zone de recherche (`{{bbox}}`).
* **Éditeur de Requête :** Zone de texte où écrire votre requête en langage Overpass QL.
* **Boutons Principaux :**
* **Exécuter :** Lance la requête sur la zone visible.
* **Partager :** Génère un lien permanent vers votre requête et la vue actuelle.
* **Exporter :** Exporte les données trouvées (GeoJSON, GPX, KML...).
* **Assistant :** Aide à générer des requêtes simples via une interface guidée.
* **Vue Données :** Onglet affichant les données brutes des objets trouvés.
## Structure de Base d'une Requête (Overpass QL)
```sql
/*
Commentaire optionnel
pour expliquer la requête
*/
[out:json][timeout:25]; // Paramètres de sortie et de délai
// Bloc de requête principal
(
// Instruction 1: Chercher les nœuds avec un tag spécifique dans la zone visible
node["amenity"="restaurant"]({{bbox}});
// Instruction 2: Chercher les chemins (zones/lignes) avec le même tag
way["amenity"="restaurant"]({{bbox}});
// Instruction 3: Chercher les relations avec le même tag (plus rare pour les commodités)
// relation["amenity"="restaurant"]({{bbox}});
);
// Instruction de sortie : afficher les résultats sur la carte
out center; // 'out;' ou 'out body;' ou 'out geom;' selon ce qu'on veut voir
```
## Éléments Clés du Langage Overpass QL
### 1. Types d'Objets OSM
* `node` : Un point géographique (ex: un poteau, un banc, un magasin ponctuel).
* `way` : Une ligne (ex: une route, une rivière) ou une zone fermée (ex: un bâtiment, un parc).
* `relation` : Regroupe d'autres objets pour former des entités complexes (ex: un itinéraire de bus, une frontière administrative, un bâtiment avec cour intérieure).
* `nwr` : Raccourci pour `node, way, relation`.
### 2. Tags (Étiquettes `clé=valeur`)
C'est le cœur d'OSM. Chaque objet peut avoir plusieurs tags décrivant ce qu'il est.
* **Trouver les bons tags :**
* **Wiki OpenStreetMap :** La référence principale ([https://wiki.openstreetmap.org/wiki/Map_Features](https://wiki.openstreetmap.org/wiki/Map_Features) en anglais, ou équivalent français).
* **Taginfo :** Outil statistique pour voir quels tags sont les plus utilisés ([https://taginfo.openstreetmap.org/](https://taginfo.openstreetmap.org/)).
* **Syntaxe des Filtres par Tag :**
* Clé existe : `["power"]` (tous les objets ayant une clé "power")
* Valeur exacte : `["amenity"="restaurant"]`
* Valeur différente : `["highway"!="motorway"]` (routes qui ne sont pas des autoroutes)
* Clé n'existe pas : `[! "building"]`
* Correspondance Regex (Expression Régulière) : `["name"~"Café"]` (nom contenant "Café", sensible à la casse)
* Correspondance Regex (insensible à la casse) : `["name"~"café", i]`
* Non-correspondance Regex : `["name"!~"^Restaurant"]` (nom ne commençant pas par "Restaurant")
* Valeurs multiples (OU) : `["highway"~"primary|secondary"]`
* Valeurs multiples (ET - via plusieurs filtres) : `["shop"="supermarket"]["name"="Lidl"]`
### 3. Zone de Recherche
* `({{bbox}})` : **Le plus courant dans Overpass Turbo.** Désigne la zone rectangulaire actuellement visible sur la carte.
* `(area)` : Recherche dans une zone administrative nommée (pays, région, ville...). Nécessite de définir la zone au préalable :
```sql
area["ISO3166-1"="FR"][admin_level=2]->.pays; // Définit la France
node["amenity"="police"](area.pays); // Cherche les postes de police en France
```
* `(around:radius, lat, lon)` : Recherche dans un rayon (en mètres) autour d'un point spécifique.
```sql
node(around:500, 48.858, 2.294); // Nœuds à moins de 500m de la Tour Eiffel
```
### 4. Instructions de Sortie (`out`)
Contrôle ce qui est affiché/exporté.
* `out;` ou `out body;` : Sortie standard, inclut les nœuds et la géométrie des chemins/relations.
* `out skel;` : Sortie "squelette" (rapide), juste les IDs et tags, sans géométrie détaillée ni nœuds pour les chemins. Utile pour compter ou pour les étapes intermédiaires.
* `out center;` : Affiche le centre géométrique des zones (ways/relations). Utile pour ne pas surcharger la carte avec les contours des bâtiments/parcs.
* `out geom;` : Sortie complète de la géométrie, y compris les métadonnées (si disponibles).
* `out count;` : Affiche le nombre d'éléments trouvés au lieu des éléments eux-mêmes.
### 5. Union et Récursion
* `( ... );` : Bloc d'union. Les résultats de toutes les instructions à l'intérieur sont combinés.
* `>;` (Recurse Down) : Trouve les nœuds appartenant aux chemins/relations trouvés juste avant.
```sql
way["highway"="residential"]({{bbox}}); // Trouve les rues résidentielles
>; // Trouve tous les nœuds composant ces rues
out skel;
```
* `<;` (Recurse Up) : Trouve les chemins/relations qui utilisent les nœuds trouvés juste avant.
## L'Assistant (Wizard)
Pour des requêtes simples, l'Assistant est très pratique. Tapez une description simple en anglais (souvent), par exemple :
* `amenity=restaurant in {{bbox}}`
* `power=pole in my city` (remplacez "my city" par le nom)
* `name="Carrefour"`
L'Assistant génère la requête Overpass QL correspondante.
## Exemples de Requêtes Utiles (OSINT/GeoGuessr)
* **Poteaux électriques dans la vue :**
```sql
node["power"="pole"]({{bbox}});
out;
```
* **Caméras de surveillance dans la vue :**
```sql
node["man_made"="surveillance"]({{bbox}});
out;
```
* **Restaurants McDonald's dans la vue :**
```sql
nwr["amenity"="fast_food"]["name"~"McDonald",i]({{bbox}});
out center;
```
* **Bornes d'incendie dans la vue :**
```sql
node["emergency"="fire_hydrant"]({{bbox}});
out;
```
* **Types de barrières/clôtures spécifiques :**
```sql
way["barrier"="fence"]["fence_type"="chain_link"]({{bbox}});
out geom;
```
* **Boîtes aux lettres (ex: La Poste en France) :**
```sql
node["amenity"="post_box"]["brand"~"La Poste",i]({{bbox}});
out;
```
## Conseils pour l'OSINT
* **Explorez le Wiki OSM et Taginfo :** La clé est de trouver les bons tags pour ce que vous cherchez (antennes 4G/5G `man_made=mast` `communication:mobile_phone=yes`, types de surfaces routières `surface=...`, etc.).
* **Soyez Spécifique :** Plus vos tags sont précis, plus les résultats sont pertinents.
* **Vérifiez Visuellement :** Utilisez toujours les résultats d'Overpass en conjonction avec l'imagerie satellite ou Street View pour confirmer. La donnée OSM n'est pas toujours parfaite ou à jour.
* **Qualité Variable :** La densité et la précision des données OSM varient énormément d'une région à l'autre. Les zones urbaines en Europe/Amérique du Nord sont souvent très bien cartographiées, d'autres zones beaucoup moins.
## Ressources Utiles
* **Wiki Overpass API :** [https://wiki.openstreetmap.org/wiki/Overpass_API](https://wiki.openstreetmap.org/wiki/Overpass_API) (Documentation détaillée du langage)
* **Wiki OSM - Map Features :** [https://wiki.openstreetmap.org/wiki/Map_Features](https://wiki.openstreetmap.org/wiki/Map_Features) (Liste des tags courants)
* **Taginfo :** [https://taginfo.openstreetmap.org/](https://taginfo.openstreetmap.org/) (Statistiques d'utilisation des tags)