banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

GEODATA DAYS 2024

#1 Wed 16 May 2012 17:33

loloi
Participant actif
Lieu: rennes
Date d'inscription: 5 Sep 2005
Messages: 67

FME 2012 - bd-adresse - nom des type d'axes

Bonjour,

Je souhaite mettre à jour l'attribut du nom des voies de la BD-ADRESSE de l'IGN. En effet, les attributs du type de voie sont « suffixés », ce qui complique leur lecture.

Je veux donc par exemple que « AV des fleurs » devienne « Avenue des fleurs » et que « R de Paris » devienne « Rue de Paris ».

Le hic, c'est que je ne sais pas comment faire pour que seul le premier R soit modifié en RUE et pas tous les R de mon adresse : il ne faut pas que « R sur la plaine » devienne « Rue surue la plaine ».

Si quelqu'un a un workbench miracle, je suis preneur car je ne sais pas quels paramètres passer !

Cordialement

Florent DUCHESNAY

Hors ligne

 

#2 Wed 16 May 2012 18:28

ogayte
Participant assidu
Lieu: Saint-Estève
Date d'inscription: 6 Mar 2006
Messages: 658
Site web

Re: FME 2012 - bd-adresse - nom des type d'axes

Pas de workbench miracle mais une proposition. Il vous faut travailler avec StringReplacer en utilisant les expressions régulières.
Dans votre exemple :
Texte à rechercher : ^r
Texte de remplacement : Rue
Utiliser les exp reg : oui


Olivier Gayte
http://www.veremes.com
+33 (0)4-68-38-65-27

Hors ligne

 

#3 Mon 21 May 2012 08:51

Pierre
DesCartesPourUnMondeMeilleur
Date d'inscription: 22 Sep 2005
Messages: 1643

Re: FME 2012 - bd-adresse - nom des type d'axes

Aloha,

Ayant procédé à la traduction de la BD_ADRESS (en la confrontant au fantoir pour avoir le rivoli), j'ai utilisé ce bout de TCL (notamment pour modifier la casse) :

Code:

proc CASSE {} {
 
set res [string tolower [FME_GetAttribute "TYPE DE VOIE"] ]
switch -nocase $res {
                "all" {set res "allée"}
                "rue" {set res "rue"}
                "ave" {set res "avenue"}
                "pla" {set res "place"}
                "rte" {set res "route"}
                "gr" {set res ""}
                default {}
            }    
append res " "
  
set libel [FME_GetAttribute LIBELLE_VOIE]
 
set ListMots [regexp -inline -all -- {\w+|\'+} $libel]

set j -1
foreach _ $ListMots {
    if {($_ == "'")} {
            set res [string trimright $res]
            set j 0
            append res $_
        } else {
            switch -nocase $_ {
                "all" {set _ "allée"}
                "rue" {set _ "rue"}
                "ave" {set _ "avenue"}
                "pla" {set _ "place"}
                default {}
            }

            set  i   [expr { [string length $_ ] -1 } ]  
            if [regexp (^(DE|DU|D|DES|LE|LA|LES)$) $_ ] {
                append res [string tolower $_]
            } else {
                append res [string tolower $_ 1 $i ]
            }
            if {$j==0} {incr j} else {append res " "}
        }
    }
    set res [string trimright $res]
    set res [string trimleft $res]
    return $res
 }

Cordialement,


art X I. Déclaration des Droits de l’Homme et du Citoyen 1789
La libre communication des pensées et des opinions est un des droits les plus précieux de l’Homme : tout Citoyen peut donc parler, écrire, imprimer librement, sauf à répondre de l’abus de cette liberté, dans les cas déterminés par la Loi.

Hors ligne

 

Pied de page des forums

Powered by FluxBB