#1 Mon 25 July 2011 08:53
- ebiseau
- Participant actif
- Date d'inscription: 6 Sep 2010
- Messages: 98
Modifier la position d'une couche dans une fenêtre carte
Bonjour et merci d'avance pour votre aide :-)
J'ai une carte, sur celle-ci j'ajoute une couche. Donc celle-ci se met un peu n'importe où dans le contrôle des couches.
Je souhaite la mettre en 1er, comment faire dans map basic ?
j'ai bien la fonction map order mais celle-ci ne me convient pas car je ne sais jamais à l'avance combien je vais avoir de couches présentes et en quelle position sera la couche que je veux mettre en premier.
Exemple, si j'ai 4 couches et que la couche que je veux mettre en 1er est la 3ème, j'écrirai : Map Order 3,1,2,4. Là facile mais dans mon cas je ne sais comment faire :-(
'là j'ouvre la table que je souhaite ajouter
Open Table "Z:\Masques\Masque_SAT_ALES.TAB" Interactive
Add Map Auto Layer Masque_SAT_ALES
nbre_couche = mapperinfo(frontwindow(),mapper_info_layers)
'là je souhaite connaître en quelle position a été mis la table que j'ai ajouté
for i=1 to nbre_couche
if layerinfo(frontwindow(), i, layer_info_name)="Masque_SAT_ALES" then numero_couche=i
print i
end if
next
'mais à partir de là je ne sais comment faire pour mettre ma couche en 1er car d'une carte à l'autre mon nombre de couche va varier
'faire une boucle, oui mais laquelle et comment ?
Y'a t'il une autre méthode ?
Merci d'avance :-)
Hors ligne
#2 Mon 25 July 2011 10:22
- jasper
- Participant occasionnel
- Lieu: Paris
- Date d'inscription: 7 Mar 2007
- Messages: 44
Re: Modifier la position d'une couche dans une fenêtre carte
Bonjour.
Il s'agit simplement de ne pas utiliser l'attribut 'Auto' du Add Map :
Add Map Layer Masque_SAT_ALES
-> la couche ajoutée se retrouve en premier.
En effet, l'attribut auto permet de gérer automatiquement une priorité d'affichage liée aux types d'objets en respectant l'ordre suivant: tables de points, tables de lignes, polygones puis raster...
Cordialement,
Jasper.
Hors ligne
#3 Mon 25 July 2011 10:25
- ebiseau
- Participant actif
- Date d'inscription: 6 Sep 2010
- Messages: 98
Re: Modifier la position d'une couche dans une fenêtre carte
merci beaucoup
Hors ligne
#4 Mon 25 July 2011 10:32
- jasper
- Participant occasionnel
- Lieu: Paris
- Date d'inscription: 7 Mar 2007
- Messages: 44
Re: Modifier la position d'une couche dans une fenêtre carte
Précision utile: pour mettre la couche i en première position, vous n'avez pas besoin de préciser les couches suivantes, mais tout simplement:
Set Map Order i
ou encore Set Map Order Masque_SAT_ALES (ainsi, plus besoin de récupérer la position de la couche).
Mais il n'en reste pas moins que dans votre cas, la solution de ma réponse précédente est plus simple!
cordialement,
Jasper.
Dernière modification par jasper (Mon 25 July 2011 10:34)
Hors ligne
#5 Mon 25 July 2011 11:07
- ebiseau
- Participant actif
- Date d'inscription: 6 Sep 2010
- Messages: 98
Re: Modifier la position d'une couche dans une fenêtre carte
et comment faire si par exemple je veux mettre cette couche en 3ème position par exemple ?
(je n'en ai pas besoin mais c'est pour ma culture générale)
Hors ligne
#6 Mon 25 July 2011 11:24
- jasper
- Participant occasionnel
- Lieu: Paris
- Date d'inscription: 7 Mar 2007
- Messages: 44
Re: Modifier la position d'une couche dans une fenêtre carte
Sur le même principe, si l'on veut mettre la 1ère couche en 3ème position:
Set Map Order 2, 3, 1
(et l'ordre des couches suivantes n'est pas modifiée)
Dans des cas plus "complexes", ou par exemple on souhaite mettre la 1ère couche en dernière position (et que nous disposons d'un nombre de couches 'n'), il est utile de boucler afin de passer par une ligne de commande :
Dim Cmd As String
Dim i As Integer
Cmd = "Set Map Order "
For i = 2 To MapperInfo(FrontWindow(), Mapper_Info_Layers)
Cmd = Cmd + i + ","
Next
Cmd = Cmd + "1"
Run Command Cmd
Cordialement,
Jasper.
Dernière modification par jasper (Mon 25 July 2011 11:26)
Hors ligne
#7 Mon 25 July 2011 11:36
- ebiseau
- Participant actif
- Date d'inscription: 6 Sep 2010
- Messages: 98
Re: Modifier la position d'une couche dans une fenêtre carte
Merci beaucoup. J'ai beaucoup progresser en map basic en 1 an mais si vous avez le temps de m'expliquer ceci je serai ravi, sinon ce n'est pas grave et vous remercie déjà de votre aide :-)
1) pourquoi utiliser une commande, plus généralement quand utiliser une commande ?
2) je ne comprends le sens et l'écriture de Cmd = Cmd + i + ","
3) en fait je ne comprends pas bien comment fonctionne ce programme (cette commande)
Que vous répondiez, ou pas, merci encore de votre aide
Hors ligne
#8 Mon 25 July 2011 12:22
- jasper
- Participant occasionnel
- Lieu: Paris
- Date d'inscription: 7 Mar 2007
- Messages: 44
Re: Modifier la position d'une couche dans une fenêtre carte
Pas de soucis !
Dans le dernier cas, nous souhaitons mettre la 1ère couche en dernière position...
Or le nombre de couches étant variable, il faut -1- reconstituer l'instruction suivante:
Set Map Order 2,3,4,5,6,...,n,1
(sans les points de suspension, et avec la totalité de nombre de couches évidemment)
et -2- exécuter l'instruction reconstituée (c'est le Run Command)
En espérant que cela soit plus clair...
Cordialement,
Jasper.
Dernière modification par jasper (Mon 25 July 2011 13:40)
Hors ligne