Il faut en effet comparer les noms une fois abrégés (l'inverse pose beaucoup trop de problèmes).
Pour cela je suis en train de terminer un requête SQL qui fait ça à l'aide de string_split_to_table + un LEFT JOIN sur une table d'abréviation + un string_agg pour recoller les morceaux. Le problème c'est qu'il faut les remettre dans l'ordre original, donc besoin d'une séquence pour cela. Au final ça donne un truc comme: select insee,rivoli,string_agg(mot,' ' order by num), string_agg(coalesce(abrege,mot),' ' order by num) from (select insee,rivoli, regexp_split_to_table(nom_voie, E'\\s+') as mot, nextval('mot') as num from dgfip_fantoir_voies where insee='94068') as mots left join abbreviations on (upper(unaccent(complet))=upper(unaccent(mot))) group by insee,rivoli; Ah oui, unaccent (qui supprime les accents) provient d'une extension postgres... pour y avoir accès il suffit de faire un : CREATE EXTENSION unaccent; Le 19 janvier 2014 19:28, Vincent de Château-Thierry <v...@laposte.net> a écrit : > Bonsoir, > > Le 19/01/2014 18:41, Tyndare a écrit : > > >> J'ai mis à jour l'outil (et désactivé l'ancien pour l'instant): >> http://37.187.60.59/cadastre-housenumber/adresses.php >> (Il est encore plus lent, je crois que si on voulait faire une >> extraction massive du cadastre il lui faudrait plusieurs années...) >> >> J'ai gardé un fixme uniquement dans les cas suivants: >> - numéro sans rue (j'ai pas trouvé de parcelle correspondante) >> - numéro sans position exacte (j'ai une adresse de parcelle mais je >> n'ai pas trouvé le numéro sur le dessin du cadastre donc je l'ai mis au >> milieu de la parcelle. >> - numéro associé à plusieurs rues... oui ça arrive qu'une parcelle ait >> plusieurs adresses avec le même numéro, donc ne sachant pas choisir, >> j'associe chacun des numéros à chacune des rues. >> - numéro trouvé à plus de 10m de la parcelle (donc il faut mieux >> vérifier) >> Dites moi si la limite des 10m vous parait suffisante ou pas. >> >> Voici un exemple de résultat >> http://37.187.60.59/cadastre-housenumber/data/026/CL281/ >> CL281-adresses.osm >> >> il y a quand même plus de 600 fixme... cad 7% >> >> Un exemple plus simple: >> http://37.187.60.59/cadastre-housenumber/data/050/KN078/ >> KN078-adresses.osm >> >> >> Petit bonus: >> - j'ai créé des place=neighbourhood pour les adresses sans numéro >> comme suggéré par Mickaël >> - si le numéro est à moins de 2 m de la parcelle, je le déplace sur la >> limite de la parcelle >> - j'ai essayé d'améliorer la reconnaissance des lettres jusqu'à S pour >> Évry. >> >> Il faut encore que je modifie les lettre B T Q en bis ter quart si >> approprié comme tu l'a proposé Christian. >> >> Vincent, est-ce que tu pourras adapter ton script au nouveau format du >> fichier que je génère ? >> > > Oui, volontiers ! > > > Et dans ton fichier les nom de rue contiennent toujours des >> abréviations, est-ce qu'il y a moyen de trouver le nom complet dans OSM ? >> > > C'est pile là-dessus que j'ai voulu avancer (un peu) aujourd'hui : grâce à > la position des nodes, je télécharge les way highway=* dans l'emprise de la > relation associatedStreet et je cherche à matcher les ways avec le même nom > (aux écarts d'écriture qu'on connaît : accents, abrev., majuscules, etc.) > histoire de placer l'ID des ways reconnus dans la relation, avec un rôle > 'street'. Et quand ça matche, c'est le nom récupéré sur les ways qui > devient le 'name' de la relation, plutôt que le nom du cadastre. Si ça ne > matche pas, alors pas de rôle 'street' dans la relation, c'est lors de > l'intégration qu'il faut aller piocher les bonnes portions de voie. > Pour avancer là-dessus, il faut que j'intègre le dictionnaire des > abréviations de Christian, et que je télécharge les highways dans l'emprise > d'une relation admin, afin de limiter les appels. Pour mes premiers tests > je fais un appel par rue, ça pourra pas durer longtemps comme ça :-). > > On avance et on s'amuse :-) > > > vincent > > _______________________________________________ > dev-fr mailing list > dev-fr@openstreetmap.org > https://lists.openstreetmap.org/listinfo/dev-fr > -- Christian Quest - OpenStreetMap France
_______________________________________________ dev-fr mailing list dev-fr@openstreetmap.org https://lists.openstreetmap.org/listinfo/dev-fr