Forum OSM France

Cherche une api me donnant le quartier et/ou l'arrondissement d'un point (Long/lat) ou d'une adresse

Bonjour,

Je suis actuellement à la recherche d’une api pouvant me générer le quartier et/ou l’arrondissement à partir de coordonnées géospatiales longitude et latitude ou d’une adresse.

Je m’explique, j’ai un base de données remplis d’adresses avec des coordonnées (Long/Lat) et j’aimerais les placer sur une carte interactive avec Leaflet et OSM. Cette carte affiche le nombre d’adresses par quartiers ou arrondissements. Seulement je n’ai pour le moment aucun moyen de faire le pont entre les deux. Il faudrait donc que je puisse récupérer soit le nom ou le numéro des quartiers/arrondissements.

Merci pour votre aide, cela réglerait mon problème et me permettrait de finaliser mon application grâce à vous !

Nominatim permet de faire un géocodage inverse d’un lat/lon:

Exemple: https://nominatim.openstreetmap.org/reverse?lat=48.85&lon=2.35&format=json

Retourne:

{
  "place_id": 68278490,
  "licence": "Data © OpenStreetMap contributors, ODbL 1.0. https://osm.org/copyright",
  "osm_type": "node",
  "osm_id": 6239361260,
  "lat": "48.8499061",
  "lon": "2.3499511",
  "display_name": "Coffea, 52, Boulevard Saint-Germain, Quartier Saint-Victor, Paris 5e Arrondissement, Paris, Île-de-France, France métropolitaine, 75005, France",
  "address": {
    "shop": "Coffea",
    "house_number": "52",
    "road": "Boulevard Saint-Germain",
    "city_block": "Quartier Saint-Victor",
    "suburb": "Paris 5e Arrondissement",
    "city_district": "Paris",
    "county": "Paris",
    "state": "Île-de-France",
    "region": "France métropolitaine",
    "postcode": "75005",
    "country": "France",
    "country_code": "fr"
  },
  "boundingbox": [
    "48.8498561",
    "48.8499561",
    "2.3499011",
    "2.3500011"
  ]
}

On a donc les champs city_block, suburb, qui correspondent à des découpage infra-communaux.

Nominatim n’est pas contre pas pertinent sur les adresses, car il ne connaît que les adresses présentes dans OSM et en France on doit avoir entre 10 et 20% de celles existantes.

Pour une adresse il est donc préférable de faire un géocodage avec la BAN ou BANO pour obtenir le lat/lon, puis faire le géocodage inverse sur les lat/lon obtenus.

Exemple:

http://ban.addok.xyz/search?q=23+rue+Greneta+75002+PARIS

{
  "type": "FeatureCollection",
  "version": "draft",
  "features": [
    {
      "type": "Feature",
      "geometry": {
        "type": "Point",
        "coordinates": [
          2.350549,
          48.865081
        ]
      },
      "properties": {
        "label": "23 Rue Greneta 75002 Paris",
        "score": 0.96755,
        "housenumber": "23",
        "id": "75102_4318_00023",
        "name": "23 Rue Greneta",
        "postcode": "75002",
        "citycode": "75102",
        "x": 652355.64,
        "y": 6862979.27,
        "city": "Paris",
        "district": "Paris 2e Arrondissement",
        "context": "75, Paris, \u00cele-de-France",
        "type": "housenumber",
        "importance": 0.64305,
        "street": "Rue Greneta"
      }
    }
  ],
  "attribution": "BAN",
  "licence": "ODbL 1.0",
  "query": "23 rue Greneta 75002 PARIS",
  "limit": 5
}

Et vu qu’on parle d’API… petit placement produit:

Les deux API que j’ai indiqué n’ont pas des capacités illimitées (à éviter pour un traitement en masse) et peuvent ne pas être disponibles en permanence… donc attention à ne pas en abuser et à déployer ses propres instances si on a des usages intenses et/ou critiques.

1 Like

Super réponse, j’ai moi même fais des recherches dans le même temps et était tombé sur la meme api que toi donc top :grinning: !
Et oui j’ai vu ça je vais donc devoir regarder pour déployer ma propre instance…
Et merci je vais aller lire ton poste !

Déployer nominatim est lourd… sauf si cela ne concerne que la France.

Déployer un addok avec la BAN ou BANO est bien plus simple.

1 Like

J’avoue ne pas savoir comment déployer de l’une ou l’autre manière mais je vais commencer à developper l’app sans deployer et je m’occuperai de ça à la fin… Ca me semble etre la meilleure chose à faire ?

Ou y’a t’il un autre moyen que une api pour effectuer les opérations que je souhaite ?

Addok est assez simple à installer et la doc est plutôt bien faite.

En puis si un jour tu as besoin d’un moteur de recherche pour chercher des adresses, Addok marche aussi super bien avec les adresses françaises.