Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
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

Printemps des cartes 2024

#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 wink
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 smile
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 smile !!!

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? neutral

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 wink

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? neutral

Hors ligne

 

Pied de page des forums

Powered by FluxBB