#1 Mon 30 September 2013 14:13
- mame1985
- Participant assidu
- Lieu: Montréal
- Date d'inscription: 16 Oct 2010
- Messages: 444
Etiquetage
Bonjour
Voilà, j'ai un petit soucis pour etiqueter.
J'ai un cadastre et je voudrais etiqueter un certain nombre de polygones.
Je peut le faire via le "definition querry" mais c'est un peu long.
Je voudrais savoir s'il existe un scrip qui permet d'etiqueter par intervale
c'est-dire-dire: etiqueter du polygone 1 à 10 sur un ensemble de 30.
Je travaille avec arcgis, la version 9.3.1
merci d'avance
Mame
Hors ligne
#2 Mon 30 September 2013 14:41
- Spacejo
- Membre
- Lieu: Nancy
- Date d'inscription: 17 Aug 2008
- Messages: 2511
Re: Etiquetage
Salut,
Plus de précisions nous serait utile pour répondre.
Quelles sont les conditions d'étiquetage?
En prenant tes conditions ->
Code:
Function FindLabel ( [Ton_champ_ID] ) I=[Ton_champ_ID] If I >= 1 and I<=10 then FindLabel = [Ton_champ_ID] End If End Function
A+
Joël
Dernière modification par Spacejo (Mon 30 September 2013 14:54)
Hors ligne
#3 Mon 30 September 2013 14:57
- mame1985
- Participant assidu
- Lieu: Montréal
- Date d'inscription: 16 Oct 2010
- Messages: 444
Re: Etiquetage
Merci Joel
Ici chaque polygone a un identifiant (No_ID), par le biais duquel je fais l'etiquetage.
Mais je veux juste etiqueter par exemple du polygone 1 au polygone 10.
Je sais que ça peut se faire par le SQL query de l'onglet Label, mais je connais pas
le scrypt qu'on pourrait utilisre pour ce cas ci. Sinon c'est possible de faire la requette polygone
par polygone.ex: dans le sql querry No_ID = x or No_ID = y etc ce que je veut pas faire puisque ce serai trop long.
Mame
Hors ligne
#4 Mon 30 September 2013 15:02
- Spacejo
- Membre
- Lieu: Nancy
- Date d'inscription: 17 Aug 2008
- Messages: 2511
Re: Etiquetage
Alors essaye ceci:
Code:
Function FindLabel ( [No_ID],[Champ_Que_Tu_Veux_Afficher] ) I=[No_ID] If I >= 1 and I<=10 then FindLabel = [Champ_Que_Tu_Veux_Afficher] End If End Function
Hors ligne
#5 Mon 30 September 2013 15:11
- mame1985
- Participant assidu
- Lieu: Montréal
- Date d'inscription: 16 Oct 2010
- Messages: 444
Re: Etiquetage
Pour etre plus claire je veux etiqueter du numero IM02613 à IM03133
j'ai un ensemble de polygone de IM02045 à IM03150
les chiffres 1 et le 10 etaient là en guise d'exemples.
Mame
Hors ligne
#6 Mon 30 September 2013 15:34
- Spacejo
- Membre
- Lieu: Nancy
- Date d'inscription: 17 Aug 2008
- Messages: 2511
Re: Etiquetage
Et dans ta liste celà se suit --> IM02613, IM02614, IM02615 etc....
Les conditions sont uniquement sur la valeur du champ -> No_ID
Sinon pour économiser de la frappe de caractères on peut utiliser en SQL ---> la fonction "In"
Code:
Select * from Ta_Table where No_ID in (IM02613, IM03133, etc....)
Je pense même que celà peut passer dans le script du dessus:
Code:
Function FindLabel ( [No_ID],[Champ_Que_Tu_Veux_Afficher] ) I=[No_ID] If I in (IM02613, IM03133, etc....) then FindLabel = [Champ_Que_Tu_Veux_Afficher] End If End Function
Dernière modification par Spacejo (Mon 30 September 2013 15:36)
Hors ligne
#7 Mon 30 September 2013 16:23
- mame1985
- Participant assidu
- Lieu: Montréal
- Date d'inscription: 16 Oct 2010
- Messages: 444
Re: Etiquetage
Oui la liste se suit comme tu le dis sauf que pour le premier code
ça equivaut à taper toute le lite ce qui est long.
Pour le deuxieme code ça ne marche pas.
merci quand même.
Mame
Hors ligne
#8 Mon 30 September 2013 16:29
- Spacejo
- Membre
- Lieu: Nancy
- Date d'inscription: 17 Aug 2008
- Messages: 2511
Re: Etiquetage
Tu peux ajouter une colonne dans ta table?
Y'a t'il toujours 3 caractères dans tes références --> IMO
Une solution est de créer un champ qui récupérera tes valeurs numériques que tu pourras filtrer:
Essaye ceci sur un nouveau champ:
Code:
TonNouveauChamp=val(right(No_ID,len(No_ID)-3))
A+
Joël
Dernière modification par Spacejo (Mon 30 September 2013 16:38)
Hors ligne
#9 Mon 30 September 2013 17:26
- mame1985
- Participant assidu
- Lieu: Montréal
- Date d'inscription: 16 Oct 2010
- Messages: 444
Re: Etiquetage
Comme tu le vois sur le fichier join je veux etiqueter le objets selectionnés
en utilisant la forme avance.
merci BV scrypt
Dernière modification par mame1985 (Mon 30 September 2013 17:33)
Mame
Hors ligne
#10 Mon 30 September 2013 17:36
- Frapru
- Participant occasionnel
- Date d'inscription: 6 Jul 2012
- Messages: 22
Re: Etiquetage
Bonjour
avez vous essayé : dans Proprété de la couche onglet Etiquettes tapez la requête "VotreChamps" >= 'IM02613' AND "VotreChamps" <='IM03133'
Hors ligne
#11 Mon 30 September 2013 17:47
- mame1985
- Participant assidu
- Lieu: Montréal
- Date d'inscription: 16 Oct 2010
- Messages: 444
Re: Etiquetage
Oui
l'expression est juste mais il ne retourne rien, j'allucine.
Mame
Hors ligne
#12 Mon 30 September 2013 17:50
- Spacejo
- Membre
- Lieu: Nancy
- Date d'inscription: 17 Aug 2008
- Messages: 2511
Re: Etiquetage
Comme tu le vois sur le fichier join je veux etiqueter le objets selectionnés
en utilisant la forme avance.
Oui je vois bien le problème
Je réitère ma question peux tu ajouter une colonne à ta table?
Dans l'affirmative -> tu crées un nouveau champ que tu incrémentes avec la calculette avec:
Code:
TonNouveauChamp=val(right(No_ID,len(No_ID)-3))
Puis :
Code:
Function FindLabel ( [No_ID],[Champ_Que_Tu_Veux_Afficher] ) I=[No_ID] If I >= 2613 and I<= 3133 then FindLabel = [Champ_Que_Tu_Veux_Afficher] End If End Function
A+
Joël
Dernière modification par Spacejo (Mon 30 September 2013 18:02)
Hors ligne
#13 Mon 30 September 2013 17:56
- Spacejo
- Membre
- Lieu: Nancy
- Date d'inscription: 17 Aug 2008
- Messages: 2511
Re: Etiquetage
A Frapru
les comparateurs < > <= >= peuvent être utiliser sur des chaines de caractères?
Dernière modification par Spacejo (Mon 30 September 2013 17:59)
Hors ligne
#14 Mon 30 September 2013 18:02
- Frapru
- Participant occasionnel
- Date d'inscription: 6 Jul 2012
- Messages: 22
Re: Etiquetage
@ Spacejo
oui avant de proposer la requête j'ai fait un test sur une de mes couches qui avait un champs similaire et ça marchait
Hors ligne
#15 Mon 30 September 2013 18:08
- Spacejo
- Membre
- Lieu: Nancy
- Date d'inscription: 17 Aug 2008
- Messages: 2511
Re: Etiquetage
Arcgis doit passer par "val" ---> Val(IMO2613)
En tout cas celà simplifie grandement le problème de Mame
Hors ligne
#16 Mon 30 September 2013 18:14
- Frapru
- Participant occasionnel
- Date d'inscription: 6 Jul 2012
- Messages: 22
Re: Etiquetage
je voulai ajouter une P.J. pour illustrer mais j'ai envoyé trop vite.. la voici
Dernière modification par Frapru (Mon 30 September 2013 18:15)
Hors ligne
#17 Mon 30 September 2013 18:18
- Frapru
- Participant occasionnel
- Date d'inscription: 6 Jul 2012
- Messages: 22
Re: Etiquetage
espérons que ça marche pour lui mais je pense qu'il n'y a pas de raison
Hors ligne
#18 Mon 30 September 2013 18:31
- Spacejo
- Membre
- Lieu: Nancy
- Date d'inscription: 17 Aug 2008
- Messages: 2511
Re: Etiquetage
Voilà pour ceux que celà intéresse :
Arcgis fait la comparaison par ordre alphabétique
Voir "Opérateurs de comparaison"
Dans ---> http://help.arcgis.com/fr/arcgisdesktop … 033000000/
PS:Au passage on peut utiliser la fonction "Between" ---> "No_ID" BETWEEN IM02613 AND IM03133
Dernière modification par Spacejo (Mon 30 September 2013 18:35)
Hors ligne
#19 Mon 30 September 2013 18:54
- mame1985
- Participant assidu
- Lieu: Montréal
- Date d'inscription: 16 Oct 2010
- Messages: 444
Re: Etiquetage
Merci pour vos reponses
ça marche
Mame
Hors ligne