#1 Mon 09 June 2014 15:47
- joel cyrille
- Participant occasionnel
- Lieu: Douala Cameroun
- Date d'inscription: 5 Jun 2014
- Messages: 35
style des lignes avec MapBasic
Salut
Je suis dans un projet où je dois représenter les liaisons en utilisant une cartes.
Je parviens déjà à tracer les segments à partir des coordonnées des points mais mes lignes sont toutes noirs et j'aimerais leur appliquer une couleur et une épaisseur particulière mais ca ne marche pas. Voici mon code :
Code:
INCLUDE "C:\Program Files (x86)\MapInfo\MapBasic\MAPBASIC.DEF" Declare Sub Main Sub Main Dim style_sel as brush style_sel=makebrush(17,1316095,-1) open table "C:\Users\JOEL CYRILLE\Documents\ND1\9508MPR.TAB" as exercice Set CoordSys Table exercice Fetch First From exercice Do While Not EOT(exercice) update exercice set obj=CreateLine(long1,lat1,long2,lat2) Set Map Layer exercice Display Global Global Brush style_sel Fetch Next From exercice Loop end sub
j'obtiens le message d'erreur suivant : (ligne1.mb:17) Invalid window identifier: 0.
là je ne sais quoi faire.
Hors ligne
#2 Tue 10 June 2014 08:44
- Spacejo
- Membre
- Lieu: Nancy
- Date d'inscription: 17 Aug 2008
- Messages: 2511
Re: style des lignes avec MapBasic
Salut,
Comme ceci, celà ne suffit pas?
Code:
INCLUDE "C:\Program Files (x86)\MapInfo\MapBasic\MAPBASIC.DEF" Declare Sub Main Sub Main open table "C:\Users\JOEL CYRILLE\Documents\ND1\9508MPR.TAB" as exercice Set CoordSys Table exercice Fetch First From exercice Do While Not EOT(exercice) update exercice set obj=CreateLine(long1,lat1,long2,lat2) Fetch Next From exercice Loop Set Map Layer 1 Display Global Global Line (3, 2, BLUE) end sub
A+
Joël
Dernière modification par Spacejo (Tue 10 June 2014 09:00)
Hors ligne
#3 Tue 10 June 2014 10:15
- joel cyrille
- Participant occasionnel
- Lieu: Douala Cameroun
- Date d'inscription: 5 Jun 2014
- Messages: 35
Re: style des lignes avec MapBasic
Salut
j'ai utilisé ton code Joël mais j'obtiens ce message d'erreur : (ligne1.mb17)Invalid window identifier: 0.
Hors ligne
#4 Tue 10 June 2014 13:26
- Spacejo
- Membre
- Lieu: Nancy
- Date d'inscription: 17 Aug 2008
- Messages: 2511
Re: style des lignes avec MapBasic
en ajoutant -> Set Window FrontWindow()
Code:
INCLUDE "C:\Program Files (x86)\MapInfo\MapBasic\MAPBASIC.DEF" Declare Sub Main Sub Main open table "C:\Users\JOEL CYRILLE\Documents\ND1\9508MPR.TAB" as exercice Set CoordSys Table exercice Fetch First From exercice Do While Not EOT(exercice) update exercice set obj=CreateLine(long1,lat1,long2,lat2) Fetch Next From exercice Loop Set Window FrontWindow() Set Map Layer 1 Display Global Global Line (3, 2, BLUE) end sub
PS: à tout moment tu peux faire un "enregistrer un document" et ouvrir le .wor généré avec le bloc note
Celà permets de connaître pas mal de chose.
A+
Joël
Dernière modification par Spacejo (Tue 10 June 2014 20:04)
Hors ligne
#5 Tue 10 June 2014 14:38
- joel cyrille
- Participant occasionnel
- Lieu: Douala Cameroun
- Date d'inscription: 5 Jun 2014
- Messages: 35
Re: style des lignes avec MapBasic
Merci Joel
J'utilise Set Window FrontWindow() mais ca m'affiche toujours le même message d'erreurs. Ca trace quand même mais les lignes sont toujours noires.
Hors ligne
#6 Tue 10 June 2014 20:42
- Spacejo
- Membre
- Lieu: Nancy
- Date d'inscription: 17 Aug 2008
- Messages: 2511
Re: style des lignes avec MapBasic
Ce code fonctionne:
Code:
INCLUDE "C:\Program Files (x86)\MapInfo\MapBasic\MAPBASIC.DEF" Declare Sub Main Sub Main open table "C:\Users\JOEL CYRILLE\Documents\ND1\9508MPR.TAB" as exercice Set CoordSys Table exercice Map from exercice Fetch First From exercice Do While Not EOT(exercice) update exercice set obj=CreateLine(long1,lat1,long2,lat2) Fetch Next From exercice Loop Set Map Layer 1 Display Global Global Line (3, 2, BLUE) end sub
PS:Je pensais que tu partais avec une fenêtre carte ouverte
A+
Joël
Dernière modification par Spacejo (Tue 10 June 2014 20:43)
Hors ligne
#7 Wed 11 June 2014 10:51
- joel cyrille
- Participant occasionnel
- Lieu: Douala Cameroun
- Date d'inscription: 5 Jun 2014
- Messages: 35
Re: style des lignes avec MapBasic
Merci Joël ca fonctionne !!!
Hors ligne
#8 Wed 11 June 2014 11:43
- joel cyrille
- Participant occasionnel
- Lieu: Douala Cameroun
- Date d'inscription: 5 Jun 2014
- Messages: 35
Re: style des lignes avec MapBasic
Salut j'aimerais superposer automatiquement plusieurs cartes en les attribuant avant tout des couleurs différentes.
Voici mon code
Code:
INCLUDE "C:\Program Files (x86)\MapInfo\MapBasic\MAPBASIC.DEF" Declare Sub Main Sub Main open table "C:\Users\JOEL CYRILLE\Documents\ND1\eclipse.TAB" as exercice1 Set CoordSys Table exercice1 Map from exercice1 Fetch First From exercice1 Do While Not EOT(exercice1) update exercice1 set obj=CreateLine(long1,lat1,long2,lat2) Fetch Next From exercice1 Loop Set Map Layer 1 Display Global Global Line (3, 2, RED) open table "C:\Users\JOEL CYRILLE\Documents\ND1\9508MPR.TAB" as exercice Set CoordSys Table exercice Map from exercice Fetch First From exercice Do While Not EOT(exercice) update exercice set obj=CreateLine(long1,lat1,long2,lat2) Fetch Next From exercice Loop Set Map Layer 1 Display Global Global Line (3, 2, BLUE) end sub
j'obtiens deux maps distinctes une en bleue l'autre en rouge mais comment faire pour que les 2 soient superposées?
Quand je fais newmapper et je choisi les 2 tables exercice et exercice1, j'obtiens bien la superposition des 2 mais chacun a la couleur noire.
Merci d'avance !!!
Dernière modification par joel cyrille (Wed 11 June 2014 11:49)
Hors ligne
#9 Wed 11 June 2014 12:51
- Spacejo
- Membre
- Lieu: Nancy
- Date d'inscription: 17 Aug 2008
- Messages: 2511
Re: style des lignes avec MapBasic
Salut,
Code:
INCLUDE "C:\Program Files (x86)\MapInfo\MapBasic\MAPBASIC.DEF" Declare Sub Main Sub Main open table "C:\Users\JOEL CYRILLE\Documents\ND1\eclipse.TAB" as exercice1 open table "C:\Users\JOEL CYRILLE\Documents\ND1\9508MPR.TAB" as exercice Set CoordSys Table exercice1 Map from exercice1, exercice Fetch First From exercice1 Do While Not EOT(exercice1) update exercice1 set obj=CreateLine(long1,lat1,long2,lat2) Fetch Next From exercice1 Loop Set Map Layer 1 Display Global Global Line (3, 2, RED) Fetch First From exercice Do While Not EOT(exercice) update exercice set obj=CreateLine(long1,lat1,long2,lat2) Fetch Next From exercice Loop Set Map Layer 2 Display Global Global Line (3, 2, BLUE) end sub
A essayer
A+
Joël
Hors ligne
#10 Wed 11 June 2014 18:49
- joel cyrille
- Participant occasionnel
- Lieu: Douala Cameroun
- Date d'inscription: 5 Jun 2014
- Messages: 35
Re: style des lignes avec MapBasic
ca marche merci Joel !!!
Hors ligne
#11 Tue 24 June 2014 12:12
- joel cyrille
- Participant occasionnel
- Lieu: Douala Cameroun
- Date d'inscription: 5 Jun 2014
- Messages: 35
Re: style des lignes avec MapBasic
Salut
j'ai un problème. Mon code suivant me permet d'afficher les lignes suivant 2 couleurs (rouge et bleu) mais quand je clique sur new mapper et je choisit juste la table exercice, les lignes s'affichent en noir et non en bleu. voici le code :
Code:
INCLUDE "C:\Program Files (x86)\MapInfo\MapBasic\MAPBASIC.DEF" Declare Sub Main Sub Main open table "C:\Users\JOEL CYRILLE\Documents\ND1\eclipse.TAB" as exercice1 open table "C:\Users\JOEL CYRILLE\Documents\ND1\9508MPR.TAB" as exercice Set CoordSys Table exercice1 Map from exercice1, exercice Fetch First From exercice1 Do While Not EOT(exercice1) update exercice1 set obj=CreateLine(long1,lat1,long2,lat2) Fetch Next From exercice1 Loop Set Map Layer 1 Display Global Global Line (3, 2, RED) Fetch First From exercice Do While Not EOT(exercice) update exercice set obj=CreateLine(long1,lat1,long2,lat2) Fetch Next From exercice Loop Set Map Layer 2 Display Global Global Line (3, 2, BLUE) end sub
Je constate que les couleurs ne sont pas maintenues quand je crée une nouvelle map.
Que faire pour rendre les couleurs permanentes ?
Hors ligne
#12 Thu 26 June 2014 09:26
- Spacejo
- Membre
- Lieu: Nancy
- Date d'inscription: 17 Aug 2008
- Messages: 2511
Re: style des lignes avec MapBasic
Salut,
Le "Set Map Layer 2 Display Global" te crée un cosmétique pour modifier réellement la symbologie de tes entités:
Code:
Dim P_Penstyle As Pen Dim MyCurrentObj As Object Dim i, nRecords as integer nRecords = TableInfo(Exercice, TAB_INFO_NROWS) P_Penstyle = MakePen (1, 2, 16711680) For i = 1 To nRecords MyCurrentObj = Exercice.obj Alter Object MyCurrentObj Update Exercice Set obj = MyCurrentObj where RowID = i next
Pour les valeurs des couleurs 2 liens intéressants:
http://georezo.net/forum/viewtopic.php? … on+couleur
http://georezo.net/jparis/MI_Enviro/Col … apinfo.htm
A+
Joël
Dernière modification par Spacejo (Thu 26 June 2014 09:27)
Hors ligne
#13 Mon 14 July 2014 10:58
- joel cyrille
- Participant occasionnel
- Lieu: Douala Cameroun
- Date d'inscription: 5 Jun 2014
- Messages: 35
Re: style des lignes avec MapBasic
Merci Joel
Désolé pour mon absence je suis allé soutenir pour obtenir mon diplôme d'ingénieur de conception des genies des télécommunications et je dois beaucoup à ce forum.
Mais je ne comprends pas ce code? A quel niveau dois je l'intégrer? Comment faire mon affichage en couches?
Merci d'avance!!!
Hors ligne
#14 Tue 15 July 2014 19:38
- Spacejo
- Membre
- Lieu: Nancy
- Date d'inscription: 17 Aug 2008
- Messages: 2511
Re: style des lignes avec MapBasic
Salut,
Le code cité ci-dessus modifie ta couche "Exercice" dans la couleur et le style --> "(1, 2, 16711680)".
Maintenant si je reprends ton code:
Essaye voir ceci:
INCLUDE "C:\Program Files (x86)\MapInfo\MapBasic\MAPBASIC.DEF"
Declare Sub Main
Sub Main
open table "C:\Users\JOEL CYRILLE\Documents\ND1\eclipse.TAB" as exercice1
open table "C:\Users\JOEL CYRILLE\Documents\ND1\9508MPR.TAB" as exercice
Set CoordSys Table exercice1
Set style pen makepen(3,2,RED)
Map from exercice1, exercice
Fetch First From exercice1
Do While Not EOT(exercice1)
update exercice1 set obj=CreateLine(long1,lat1,long2,lat2)
Fetch Next From exercice1
Loop
Set style pen makepen(3,2,BLUE)
Fetch First From exercice
Do While Not EOT(exercice)
update exercice set obj=CreateLine(long1,lat1,long2,lat2)
Fetch Next From exercice
Loop
end sub
A+
Joël
Hors ligne
#15 Wed 16 July 2014 13:19
- joel cyrille
- Participant occasionnel
- Lieu: Douala Cameroun
- Date d'inscription: 5 Jun 2014
- Messages: 35
Re: style des lignes avec MapBasic
Merci Joël
Ce que je veux c'est que quand l'utilisateur clique sur le bouton "New Mapper", il choisi les tables qu'il aimerait voir s'afficher, ensuite il clique sur "OK" et une nouvelle carte s'affiche avec ces liens ayant les mêmes couleurs.
En ma question c'est comment faire pour que ces liens aient une couleur permanente sur l'espace de travail???
Merci encore
Hors ligne
#16 Wed 16 July 2014 20:43
- Spacejo
- Membre
- Lieu: Nancy
- Date d'inscription: 17 Aug 2008
- Messages: 2511
Re: style des lignes avec MapBasic
En ma question c'est comment faire pour que ces liens aient une couleur permanente sur l'espace de travail
As tu essayé le code?
A+
Joël
Hors ligne
#17 Thu 17 July 2014 13:51
- joel cyrille
- Participant occasionnel
- Lieu: Douala Cameroun
- Date d'inscription: 5 Jun 2014
- Messages: 35
Re: style des lignes avec MapBasic
Merci Joël celà fonctionne mais j'ai un souci.
voici mon code :
Code:
INCLUDE "C:\Program Files (x86)\MapInfo\MapBasic\MAPBASIC.DEF" Declare Sub Main Sub Main open table "C:\Users\JOEL CYRILLE\Documents\ND1\eclipse.TAB" as exercice1 open table "C:\Users\JOEL CYRILLE\Documents\ND1\9508MPR.TAB" as exercice Set CoordSys Table exercice1 Set style pen makepen(3,2,RED) Map from exercice1, exercice Fetch First From exercice1 Do While Not EOT(exercice1) update exercice1 set obj=CreateLine(long1,lat1,long2,lat2) Fetch Next From exercice1 Loop Set style pen makepen(3,2,BLUE) Fetch First From exercice Do While Not EOT(exercice) update exercice set obj=CreateLine(long1,lat1,long2,lat2) Fetch Next From exercice Loop set Map Layer 1 Label Auto On Visibility On set Map Layer 2 Label Auto On Visibility On end sub
Le problème c'est que dans la nouvelle mappe que j'obtiens en faisant new mapper, la visibilité n'est plus activé (on ne peut plus voir le nom des différentes liaisons). Comment faire pour rendre également permanent la visibilité des liaisons?
Hors ligne