Outils de géocodage
Sommaire
Géocodage à partir de l'adresse
Base d'Adresse Nationale / API adresse
API : https://geo.api.gouv.fr/adresse
Fonctionnalités
Deux endpoints :
-
/search :
- pas de polygone mais point lon lat
- format GeoJSON
-
/search/csv :
- permet de géocoder un ensemble d'adresse en une seule requête !!!
- pas de polygone mais point lon lat
- pas de GeoJSON mais c'est pas un problème (pour un point c'est juste un objet JSON très simple, cf https://geojson.org/)
Limites
- 50 requêtes par seconde et par IP pour le géocodage simple via l’API Adresse ;
- 2 requêtes simultanées par IP pour le géocodage de masse (maximum 50 Mo par envoi de fichier pour le géocodage direct, 6 Mo pour le géocodage inversé).
- Limité à la France
Est-il possible de faire lever les limites de l’API ?
Oui, mais uniquement si vous êtes un service public ou chargé d’une mission de service public
Dans le cas contraire, vous pouvez aussi héberger notre API de géocodage chez vous, en suivant ces instructions.
-> Possible de selfhost
Exemples
dans la doc de l'API
Nominatim
API : https://nominatim.org/release-docs/develop/api/Search/
Fonctionnalités
- polygone (si existant) + lon lat
- GeoJSON
- bounding box (https://wiki.openstreetmap.org/wiki/Bounding_Box)
- objet OSM (id)
Limites
- Usage policy
- Max 1 requête par seconde
- Possible de selfhost
- Pas possible de géocoder un ensemble d'adresse en une requête donc il faut faire plusieurs requêtes
- Pour la France, pour un point lon lat, c'est probablement moins précis que l'API adresse
Exemples
- Montpellier https://nominatim.openstreetmap.org/search?q=Montpellier&format=json https://nominatim.openstreetmap.org/search.php?q=montpellier&polygon_geojson=1&format=jsonv2
- adullact https://nominatim.openstreetmap.org/search.php?q=adullact&polygon_geojson=1&format=jsonv2
- musée du louvre https://nominatim.openstreetmap.org/search.php?q=mus%C3%A9e%20du%20louvre&polygon_geojson=1&format=jsonv2
Géocodage à partir du SIREN
- SIREN = identifiant d'entreprise.
- SIRET = identifiant d'un établissement d'une entreprise
On a que le SIREN donc il peux y avoir un problème pour la précision.
Pas de SIREN pour les adhérents particuliers.
API cquest geo_sirene_as_api
https://github.com/cquest/geo_sirene_as_api
fait par Christian Quest
Fonctionnalités
- Champ "etablissementsiege": "true" (règle le problème des différents établissements avec le SIREN)
- Pas de polygone mais point lon lat
- GeoJSON directement
- d'autres informations liés à l'entreprise
Limites
- ???? pas écrit sur GitHub alors il faudrait demander
- Possible de selfhost
Exemples
https://api.cquest.org/sirene?siren=213401722
API Entreprise
- API https://entreprise.api.gouv.fr/
- DOC https://entreprise.api.gouv.fr/catalogue/#a-entreprises https://entreprise.api.gouv.fr/doc/
L’API entreprise retourne en principe (retournait c’est sûr), une version géocodée de l’entreprise (donc un lat/lon).
Cependant selon la réponse type donnée ici https://entreprise.api.gouv.fr/catalogue/#a-entreprises pas de géocodage de l'adresse disponible
Limites
- ???
- Il faut un token pour l'utiliser, et être autorisé. Voir les conditions
- certainement pas moyen de selfhost
Exemples
Wikidata
Documentation : https://www.mediawiki.org/wiki/API:Main_page https://www.wikidata.org/w/api.php
Fonctionnalités
- récupérer tous les informations Wikidata pour un identifiant donné
- géocodage lon lat (format pas GeoJSON)
- population
- autre (voir ce qui est utile)
- géocodage GeoShape (géométrie géographique, un polygone) (ex Paris)
- à partir du SIREN
- à partir d'une recherche par titre
Limites
- Données incomplètes / manquantes :
- Pas tous les adhérents sur Wikidata (hors particuliers) : exemple : Territoire Numérique BFC : https://w.wiki/3Er4
- Géocodage manquant pour certains adhérents (ex https://www.wikidata.org/wiki/Q92922919, https://www.wikidata.org/wiki/Q92935106)
- Population manquante pour certains adhérents
- Autres données manquantes pour certains adhérents
- Terms of Use Trademark Policy User-Agent Policy
Exemples
On peut obtenir l'identifiant Wikidata de plusieurs façons
-
En cherchant par nom : ex ADULLACT : https://www.wikidata.org/w/api.php?action=wbsearchentities&search=ADULLACT&language=en
-
avec le SIREN : ex mairie chatillon :
On peut soit récupérer certaines infos avec l'API SPARQL en une requête, soit récupérer l'identifiant Wikidata avec l'API SPARQL et ensuite récupérer toutes les infos à propos de cet identifiant :
- identifiant Wikidata, population et coordonnées GPS :
- identifiant Wikdata puis requête à l'autre API
avec l'API SPARQL : https://w.wiki/3Eou
-> dans les résultats on a l'identifiant Wikidata : Q212947
Ensuite grâce à l'identifiant
- Page Wikidata (HTML) : https://www.wikidata.org/wiki/Q212947
- Requête API : https://www.wikidata.org/w/api.php?action=wbgetentities&ids=Q212947
et ensuite on peut récupérer toutes les propriétés de cet id, grâce aux numéros de propriétés. Exemples :
Il y a d'autres propriétés qu'on peut récupérer
On peut préciser notre requête API :
- ne vouloir que les propriétés (pas de description, label…) https://www.wikidata.org/w/api.php?action=wbgetentities&ids=Q212947&format=json&props=claims
- ou wbgetclaims pour les propriétés https://www.wikidata.org/w/api.php?action=wbgetclaims&entity=Q212947&format=json
- et que les coordonnées GPS : https://www.wikidata.org/w/api.php?action=wbgetclaims&entity=Q212947&property=P625&format=json
- voir https://www.wikidata.org/w/api.php?action=help&modules=wbgetentities
- voir https://www.wikidata.org/w/api.php?action=help&modules=wbgetclaims
Un exemple d'identifiant Wikidata avec pleins d'informations renseignées : Paris
Autre
Bibliothèques
Il y a des bibliothèque pour géocoder (à partir de l'adresse) dans pleins de langages :