datagouv / api-geo

Interroger les référentiels géographiques plus facilement
https://api.gouv.fr/api/api-geo.html
MIT License
47 stars 17 forks source link

Moyen de retrouver les communes du 69D et 69M #162

Closed ThomasG77 closed 1 year ago

ThomasG77 commented 2 years ago

La circonscription départementale du Rhône https://fr.wikipedia.org/wiki/Circonscription_d%C3%A9partementale_du_Rh%C3%B4ne assimilée au département 69 recouvre 2 collectivités territoriales, le département du Rhône (code Insee : 69D) et la métropole de Lyon (code Insee : 69M)

Actuellement, on retourne le département sous le code 69. Il faut potentiellement rechercher par 69M ou 69D. Le problème est qu'il faudrait commencer à gérer ce cas particulier comme si c'était 2 départements alors que 69M n'est pas un département et rajouterait une hiérarchie: le département 69 contient un "sous-département" 69D qui est en fait le département 69 hors métropole de Lyon avec un autre "sous-département" 69M qui est la métropole de Lyon.

Pour avoir le 69M, il n'est pas forcément obligé de passer par cet ajout. Nous implémentons les endpoints EPCI (#136 et surtout la branche https://github.com/etalab/api-geo/tree/add-epci) et un simple filtre sur le code EPCI de la métropole de Lyon permettrait d'éviter cet écueil sans rentrer dans un cas particulier qui posera problème à la maintenance.

ThomasG77 commented 2 years ago

On n'a pas communiqué dessus mais les EPCI sont supportés. De ce fait,

Pour filtrer les communes du 69M avec le nom, faire

Pour avoir celles du 69D, même si c'est un peu moins pratique

puis on filtre pour exclure des résultats où le code EPCI est 200046977 (La métropole de Lyon) avec un utilitaire en ligne de commande, comme ci-dessous. Dans votre cas, vous devrez faire les changements selon votre language de programmation


curl "https://geo.api.gouv.fr/communes?nom=me&codeDepartement=69" \
   | jq '[.[] | select(.codeEpci == "200046977" | not)]'