D'une "adresse" à un "way/building"

Bonjour à tous,

Amateur de cartes en tous genre, j’essaye d’en réaliser*…
Malheureusement, malgré mes efforts, je me heurte à quelques difficultés que je ne parviens à lever.
Peut-être allez-vous pouvoir m’aiguiller et/ou me donner quelques conseils… :confused:

J’ai une liste de 7 000 adresses (à Paris), et j’aimerai aboutir à un shapefile (ou autre fichier) qui contiendrait les “buildings” correspondant dans Openstreetmap.

Mon idée première est de :

  1. Utiliser l’API Mapquest pour obtenir le “Node OSM” pour ces 7 000 adresses (par exemple : 67, Place Lobligeois 75017 = Node:894237705)
  2. Utiliser l’API Overpass pour obtenir les “Nodes” et “Ways” de tout Paris
  3. Faire matcher dans Excel (1) et (3) pour récupérer les “ways” correspondant à mes 7 000 “Nodes/Adresses”
  4. Charger dans QGIS un shapefile de tous les “buildings” de Paris (trouvé sur download.bbbike.org/osm/bbbike/Paris/), shapefile qui contient, pour chaque building, un "OSM_ID)
  5. Trouver avec QGIS, les OSM_ID qui sont identiques aux “ways” trouvés à l’étape 3

Est-ce selon vous une bonne approche ? Y-en-a-t-il une plus simple (car pour l’instant, je n’arrive même pas à mener à bien les étapes 1 et 2 :

  • pour (1), la requête avec Google Refine prend environ 24h
  • pour (2), overpass-turbo échoue à chaque fois (trop de données)…

Je serais ravi d’avoir vos conseils et avis…
Merci beaucoup,

Charles H

  • Ma dernière réalisation (http://goo.gl/ituNMK) représente les “navettes domicile/travail” sur la base des flux INSEE.

7000 adresses à Paris ?

Tu peux les géocoder (obtenir le X/Y) en t’appuyant sur BANO: http://openstreetmap.fr/bano
Les données sont ici: http://bano.openstreetmap.fr/data

Pour les bâtiments… L’overpass peut sûrement sortir tout les bâtiments sur Paris… voici par exemple ceux du 1er arrondissement: http://overpass-turbo.eu/s/52A
Si tu remplace 75101 (code INSEE du 1er arr.) par 75056 (code INSEE de la ville de Paris), tu aura tout en patientant…

Ensuite, faire correspondre adresses et bâtiments… ce n’est pas aussi “direct” car il bâtiment peut correspondre à plusieurs adresses et une adresse à plusieurs bâtiments.
Si on passe outre ceci, le mieux serait de faire tout le traitement géospatial dans QGis ou à l’aide d’une base de données spatiale (postgres+postgis ou sqlite+spatialite), Excel est inadapté pour ça.
QGis peut récupérer les bâtiment obtenus via l’overpass. Inutile de prendre une autre source pour ça.
Il faut faire une recherche par proximité entre le point adresse et le polygone de bâtiment le plus proche.

En fait, il est extremement simple de récupérer tous les bâtiments de Paris (ways avec “building=*”) et tous les noeuds qui forment ces ways puis de chercher quels noeuds portent l’adresse voulue. En effet, la plupart des adresses à Paris sont mis sur des noeuds en façade. Il est possible que sur les 7000 recherchés il y ait quelques ratés mais ça ne sera probablement qu’une toute petite partie qui pourrait éventuellement être corrigé directement dans OSM (si l’adresse se trouve par exemple sur le building et pas sur le noeud en façade). Il arrive aussi que certaines adresses utilisent la relation associatedStreet, ce qui complique singulièrement le traitement - un autre des nombreux désavantages de ces relations.

Bonjour,

Tout d’abord merci beaucoup pour vos réponses,
et veuillez m’excuser pour mon délai (j’ai été très occupé dans mon activité diurne).

Je tente de regrouper vos deux réponses (n’étant pas expert QGIS, je cherche une solution réalisable au regard de mes capacités).

Voici donc le mode opératoire auquel j’aboutis :

  1. Récupérer le “Node OSM” pour ces 7 000 adresses (par exemple : 67, Place Lobligeois 75017 = Node:894237705)
  2. Grâce à Overpass-turbo et la requête de Cquest récupérer les “buildings” arrondissement par arrondissement (impossible de le faire en une seule fois pour tout Paris)
  3. Exporter les données au format “Données brutes”.

A ce stade, je me retrouve avec quelque chose comme (si je comprends bien ce qu’évoque Pieren) :

 <way id="53770916" version="1" timestamp="2010-03-30T20:12:47Z" changeset="4280436" uid="17286" user="Pieren">
    <nd ref="678876808"/>
    <nd ref="678876818"/>
    <nd ref="678876791"/>
    <nd ref="678876792"/>
    <nd ref="678876793"/>
    <nd ref="678876794"/>
    <nd ref="678876817"/>
    ...
</way>

Mais là, je bloque ; comment dois-je faire (avec quel outil) pour extraire le WAY correspondant à un NODE dans l’extrait ci-dessus par exemple ?

Après, il faudra “corriger” à la main les éléments pour lesquels cela n’a pas fonctionné (comme vous l’indiquez)
Autre possibilité, j’ai compris de travers vos indications…

Merci encore pour vos conseils,
Charles H.

Je reboote…

Tu veux quoi AU FINAL ?
Tu as quoi au départ ?

Oublie les étapes intermédiaires.

En input, j’ai une liste .csv d’environ 7000 adresses à Paris intramuros.
En output, j’aimerai avoir un shapefile des bâtiments correspondant à ces 7000 adresses.
Merci beaucoup.