<div dir="ltr">Il faut en effet comparer les noms une fois abrégés (l'inverse pose beaucoup trop de problèmes).<div><br></div><div>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.</div>

<div><br></div><div>Au final ça donne un truc comme:</div><div><br></div><div>







<p class="">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;</p>

<p class="">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;</p></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">

Le 19 janvier 2014 19:28, Vincent de Château-Thierry <span dir="ltr"><<a href="mailto:vdct@laposte.net" target="_blank">vdct@laposte.net</a>></span> a écrit :<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

Bonsoir,<br>
<br>
Le 19/01/2014 18:41, Tyndare a écrit :<div><div class="h5"><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
J'ai mis à jour l'outil (et désactivé l'ancien pour l'instant):<br>
<a href="http://37.187.60.59/cadastre-housenumber/adresses.php" target="_blank">http://37.187.60.59/cadastre-<u></u>housenumber/adresses.php</a><br>
(Il est encore plus lent, je crois que si on voulait faire une<br>
extraction massive du cadastre il lui faudrait plusieurs années...)<br>
<br>
J'ai gardé un fixme uniquement dans les cas suivants:<br>
  - numéro sans rue (j'ai pas trouvé de parcelle correspondante)<br>
  - numéro sans position exacte (j'ai une adresse de parcelle mais je<br>
n'ai pas trouvé le numéro sur le dessin du cadastre donc je l'ai mis au<br>
milieu de la parcelle.<br>
  - numéro associé à plusieurs rues... oui ça arrive qu'une parcelle ait<br>
plusieurs adresses avec le même numéro, donc ne sachant pas choisir,<br>
j'associe chacun des numéros à chacune des rues.<br>
  - numéro trouvé à plus de 10m de la parcelle (donc il faut mieux vérifier)<br>
Dites moi si la limite des 10m vous parait suffisante ou pas.<br>
<br>
Voici un exemple de résultat<br>
<a href="http://37.187.60.59/cadastre-housenumber/data/026/CL281/CL281-adresses.osm" target="_blank">http://37.187.60.59/cadastre-<u></u>housenumber/data/026/CL281/<u></u>CL281-adresses.osm</a><br>
<br>
il y a quand même plus de 600 fixme... cad 7%<br>
<br>
Un exemple plus simple:<br>
<a href="http://37.187.60.59/cadastre-housenumber/data/050/KN078/KN078-adresses.osm" target="_blank">http://37.187.60.59/cadastre-<u></u>housenumber/data/050/KN078/<u></u>KN078-adresses.osm</a><br>
<br>
<br>
Petit bonus:<br>
  - j'ai créé des place=neighbourhood pour les adresses sans numéro<br>
comme suggéré par Mickaël<br>
  - si le numéro est à moins de 2 m de la parcelle, je le déplace sur la<br>
limite de la parcelle<br>
  - j'ai essayé d'améliorer la reconnaissance des lettres jusqu'à S pour<br>
Évry.<br>
<br>
Il faut encore que je modifie les lettre B T Q en bis ter quart si<br>
approprié comme tu l'a proposé Christian.<br>
<br>
Vincent, est-ce que tu pourras adapter ton script au nouveau format du<br>
fichier que je génère ?<br>
</blockquote>
<br></div></div>
Oui, volontiers !<div class="im"><br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Et dans ton fichier les nom de rue contiennent toujours des<br>
abréviations, est-ce qu'il y a moyen de trouver le nom complet dans OSM ?<br>
</blockquote>
<br></div>
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.<br>


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 :-).<br>


<br>
On avance et on s'amuse :-)<div class="HOEnZb"><div class="h5"><br>
<br>
vincent<br>
<br>
______________________________<u></u>_________________<br>
dev-fr mailing list<br>
<a href="mailto:dev-fr@openstreetmap.org" target="_blank">dev-fr@openstreetmap.org</a><br>
<a href="https://lists.openstreetmap.org/listinfo/dev-fr" target="_blank">https://lists.openstreetmap.<u></u>org/listinfo/dev-fr</a><br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div dir="ltr">Christian Quest - OpenStreetMap France</div>
</div>