Le 25 octobre 2013 14:53, Frédéric Rodrigo <fred.rodr...@gmail.com> a écrit
:

> Tu peux également utiliser directement les opérateur de dessin de base du
> PDF, ça évite un passage en SVG. Soit directement dans le code de Qadastre,
> soit en exécutant un script depuis Quadastre en lui passant les primitives
> (c'est comme ça que j'avais fait)
>

Cela serait surement beaucoup plus efficace en terme de performance, mais
je ne suis pas très à l'aise en C++, et je me suis perdu dans la spec du
format PDF. SVG m'a parut plus simple, mais je me trompe peut être.

>
>
>> Pour détecter les numéros de rue, j'ai codé en dure un "path" (au sens
>> svg) correspondant à chaque numéro (0-9 et les lettres B,T,Q,A,B,C,D,E,F),
>> et je fait une transformation pour les comparer. Je filtre ensuite selon la
>> taille pour ne garder que les numéros de rue (et éviter les numéros de
>> parcelles).
>>
>
> Quel genre de transformations et de comparaison tu fais (je n'ai pas pris
> le temps de regarder le code) ?
> J'avais rencontré des problèmes la dessus : détermination de l'orientation
> du texte, du mal à comparer les shapes entres elles pour déterminer le
> caractère. Le path variait en fonction de la taille de la commune et de son
> orientation.
>

Je commence par comparer les commandes qui composent les paths, si ce sont
exactement les mêmes, alors je compare les coordonnées de la liste des
points qui composent les paths (par rapport au format SVG j'ai en fait
normalisé la représentation des path pour n'avoir que des coordonnées
absolue, pas de valeur relatives). Je transforme donc les points avec pour
chaque path:
 - une mise à l'échèle de telle manière que le point le plus loin du
premier se retrouve à une distance de 1.0
 - une rotation pour que le premier point et le 6ème (choix arbitraire) se
retrouvent à l'horizontal
Une fois ces transformations effectuées, je vérifie que la distance
maximale entre les points des deux paths soit < 0.05
Je pense donc avoir une vérification assez fiable et ne pas pouvoir
confondre un chiffre avec un autre, le risque est plus d'en rater certains
pour des problème de précision.

J'avais aussi à l'origine un problème de variation des path selon la taille
de la commune, mais je pense que c'était en fait un problème de précision
du au format PDF, et je crois l'avoir résolu en découpant la récupération
du cadastre en plusieurs fichiers PDF de taille raisonnable (comme le
script import-bati.sh).



> J'espère que a court et moyen terme on pourra avoir accès aux données
> d'adresses du cadastre sans avoir à les extraire depuis le WMS. Ces
> informations sont dans les EDIGEO et il faut à mon avis pousser pour avoir
> accès à ces données, on a commencé à la faire département par département,
> il faut poursuivre
>

Passer par les fichier EDIGEO serait effectivement plus sûr et plus
logique, mais là on sort de mon domaine de compétence.
_______________________________________________
dev-fr mailing list
dev-fr@openstreetmap.org
https://lists.openstreetmap.org/listinfo/dev-fr

Répondre à