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

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Thu 27 March 2008 13:28

Daniel
Membre
Lieu: Victoriaville, Québec
Date d'inscription: 6 Sep 2005
Messages: 2028

Affichage d'étiquette

Bonjour

Je ne sais pas si c'est moi mais je ne trouve pas la solution à mon problème.  Je règle souvent des problèmes plus complexe mais là, j'allume pas.....
Dans une couche de routes, j'avais une colonne qui indiquait les numéros de routes.  Cette colonne était en texte avec des numéro comme 00010, 00208, 69875.  J'ai transformé ma colonne de texte en numérique entier pour avoir seulement des chiffres comme 10, 208, 69875.  Seulement, les numéros de routes au Québec ont des chiffres jusqu'à 999.  Les chiffre plus grand que 1000 sont des codes utilisés par le ministère des Transports.  Je veux simplement afficher les codes plus petit que 1000.  Je vais donc dans ma couche, étiquette, et j'entre l'expression no_route < 1000.  Voilà, rien ne s'affiche.  Je suis certain que c'est quelque chose de simple mais ma petite lumière ne s'allume pas!!!!!

Est-ce que quelqu'un pourrait me donner un petit coup de main s.v.p.

Daniel


De retour à la géomatique

Hors ligne

 

#2 Thu 27 March 2008 14:20

Robin
GeoRezo forever
Lieu: France
Date d'inscription: 31 Aug 2005
Messages: 13614
Site web

Re: Affichage d'étiquette

Bonjour Daniel,

Auriez vous un extrait un peu varié en chiffres pour qu'on puisse tester ?

Merci,
Robin.

Hors ligne

 

#3 Thu 27 March 2008 14:28

Maurice
Membre
Lieu: Montpellier
Date d'inscription: 5 Sep 2005
Messages: 5331

Re: Affichage d'étiquette

Bonjour
Pas normal: tu devrais obtenir F pour FALSE partout où la condition no_route < 1000 est fausse et T pour TRUE partout où elle est respectée ....ce qui n'est pas, je pense, l'objectif visé smile
Tu peux:
- soit étiqueter une sélection
- soit utiliser une "bonne" expression genre val(Left$(str$(no_route),3))

Hors ligne

 

#4 Thu 27 March 2008 14:49

Daniel
Membre
Lieu: Victoriaville, Québec
Date d'inscription: 6 Sep 2005
Messages: 2028

Re: Affichage d'étiquette

Bonjour

Merci à Robin et Maurice.  Pour répondre à Maurice, j'avais pensé à étiquetter une sélection mais je voulais éviter d'avoir une couche "inutile".  Pour ce qui est de l'expression, je ne suis pas certain si elle va correspondre à ce que je veux.  Pour répondre en même temps à Robin, voici un extrait des routes.  Il y a une colonne no_route.

Merci du coup de main...

Daniel


Fichier(s) joint(s) :
Pour accéder aux fichiers vous devez vous inscrire.

De retour à la géomatique

Hors ligne

 

#5 Thu 27 March 2008 15:09

Maurice
Membre
Lieu: Montpellier
Date d'inscription: 5 Sep 2005
Messages: 5331

Re: Affichage d'étiquette

Daniel a écrit:

... l'expression, je ne suis pas certain si elle va correspondre à ce que je veux.....


Ca dépend comment on doit comprendre 66 552: 66 (+552)  ou 665 (+52) ??
L'expression marche pour la seconde hypothèse
Pour la première....c'est plus dur (s'il le faut je cherche tongue)
Mais une sélection, qu'il n'est pas besoin d'enregistrer et qui ne prendra donc pas de place sur le disque, n'est pas une couche "inutile" et sera conservée dans le WOR si les bonnes options sont cochées...

Hors ligne

 

#6 Thu 27 March 2008 15:32

Robin
GeoRezo forever
Lieu: France
Date d'inscription: 31 Aug 2005
Messages: 13614
Site web

Re: Affichage d'étiquette

Hello,

Quand on rentre l'expression :

no_route < 1000


, Mapinfo affiche bel et bien quelque chose en étiquetage : T ou F, True ou False... Et oui, il affiche le résultat booléen de la condition.

Solution : D'abord tu sélectionne les n° de route qui correspondent à tes critères, et ensuite tu étiquette cette sélection wink

Voilou,
Robin.

EDIT :

j'avais pensé à étiqueter une sélection mais je voulais éviter d'avoir une couche "inutile"


Oups, pas vu... Pas d'idée du coup sad

REEDIT : Zut, Maurice est trop rapide

Pas normal: tu devrais obtenir F pour FALSE partout où la condition no_route < 1000 est fausse et T pour TRUE partout où elle est respectée ....ce qui n'est pas, je pense, l'objectif visé


Décidemment...

Hors ligne

 

#7 Thu 27 March 2008 15:42

Daniel
Membre
Lieu: Victoriaville, Québec
Date d'inscription: 6 Sep 2005
Messages: 2028

Re: Affichage d'étiquette

Bonjour

Merci à vous deux.  Je crois que je vais y aller avec la sélection.  C'est la méthode la plus simple mais je croyais qu'une expression serait la solution.

Merci

Daniel


De retour à la géomatique

Hors ligne

 

#8 Sat 29 March 2008 10:45

Carto Gratte
Juste Inscrit !
Date d'inscription: 7 Feb 2006
Messages: 5

Re: Affichage d'étiquette

Bonjour,
je pense comprendre que l'idée est d'étiqueter les routes répondant au critère no_route < 1000
le plus efficace est souvent de faire une sélection SQL et d'étiqueter la "couche SQL". comme le suggéraient Maurice et Robin.
l'actualisation se fera à chaque ouverture du document.

Avec une expression :
no_route < 1000 renvoie effectivement T ou F
mais il faut savoir que int(expression) renvoie 1 ou 0...
en utlisant cette propriété, on peut étiqueter de manière conditionelle en utilisant des fonctions telles que left$. exemple :
d'étiqueter les routes répondant au critère no_route < 1000 avec leur nom :

left$(nom;50*int(no_route < 1000))

si vrai : on étiquette les 50 caractères de gauche du nom, sinon les 0 caractère de gauche  : pas d'étiquette.

nom peut êtree remplacé par une expression +/- complexe, du moment que le résultat est alphanumérique. si on veut utiliser un code de route numérique (quelle idée ! les codes alpha sont plus logiques et la manip aurait tout aussi bien marché :
left$(no_route_alpha;50*int(no_route_alpha < "1000")) ...)

penser à utiliser une fonction qui rend alpha le code numérique :   

left$(str(no_route);50*int(no_route < 1000))
ou
left$(format$(no_route,"0 000");50*int(no_route < 1000))  par ex.

Bonne journée à vous tous

Hors ligne

 

Pied de page des forums

Powered by FluxBB