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 04 September 2008 10:28

kharbeche
Participant occasionnel
Lieu: Eddamous
Date d'inscription: 27 Aug 2008
Messages: 42

[MapBasic 9.0] création de ligne

Bonjour;

mon objectif est d'afficher une ligne sur ma Map; alors j'ai la partie de code suivante:

Code:

...

open table nomTab       ' c une simple table contenant les donnés avec des diff colonnes (nom, long, lat, ...)


'§§§§§§§§§§§§§§§§§§§§     createline

dim x1,x2,y1,y2 as float

x1= 666800
x2= 667500
y1= 3960350
y2= 3960380

Insert Into nomTab (obj) Values (CreateLine( x1, y1, x2, y2))

'§§§§§§§§§§§§§§§§§§§§     end CL


map from nomTab

...

le pb c'est qu'à l'affichage j'aurais ma Map mais il n'y a pas de ligne;
mais quand j'exécute la commande "Browse * from nomTab" il y a une ligne (ou bien un enregistrement) qui s'ajoute à ma table; une ligne qui contient des zéros pour tout les enregistrements.


merci d'avance et Bonne Journée;
coordialement SOFIENE

Dernière modification par kharbeche (Thu 04 September 2008 10:42)

Hors ligne

 

#2 Thu 04 September 2008 11:08

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

Re: [MapBasic 9.0] création de ligne

Bonjour
Au départ, la table "nomTab" est une table graphique ou pas ??
Si elle ne l'est pas, il faut avant tout la rendre graphique par un Create Map For nomTab CoordSys...

Hors ligne

 

#3 Thu 04 September 2008 13:53

kharbeche
Participant occasionnel
Lieu: Eddamous
Date d'inscription: 27 Aug 2008
Messages: 42

Re: [MapBasic 9.0] création de ligne

Merci de votre réponse Mr;

Oui, vous avez totalement raison;

Mais comment paramètrer "CoordSys Earth Projection" sur tout pour le type de système de projection; pouvez-vous m'expliquer le plus simple possible.

Je serais trop reconnaissant si vous me donner un petit programme/exemple qui affiche tt simplement une ligne sur une Map;


Merci de votre collaboration;
Coordialement; SOFIENE

Hors ligne

 

#4 Thu 04 September 2008 14:27

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

Re: [MapBasic 9.0] création de ligne

Je ne sais pas dans quelle projection sont exprimés vos X,Y qui sont a priori en mètres. A vous de le savoir...
Supposons (pure hypothèse) que ce soit "UTM Zone 31, Northern Hemisphere (WGS 84)"
La ligne correspondante dans le fichier C:\Program Files\MapInfo\Professional\mapinfow.prj dit:
"UTM Zone 31, Northern Hemisphere (WGS 84)\p32631", 8, 104, 7, 3, 0, 0.9996, 500000, 0
La clause CoordSys du Create Map sera alors:
Create Map For nomTab CoordSys Earth Projection 8, 104, 7, 3, 0, 0.9996, 500000, 0
Autre solution: vous avez une table dans la même projection que celle des points de nomtab (disons tableRef)
Ouvrez là avant d'utiliser dans le code:
Set CoordSys Table tableRef
Create Map For nomTab
Pas besoin de CoordSys, la première ligne force l'utilisation de la même projection que tableRef

Hors ligne

 

#5 Fri 05 September 2008 12:21

kharbeche
Participant occasionnel
Lieu: Eddamous
Date d'inscription: 27 Aug 2008
Messages: 42

Re: [MapBasic 9.0] création de ligne

Bonjour Mr. Maurice;

Tout d'abord merci de votre suivi;

j'ai fixé mon système de cordonnés, ça devient le suivant: "UTM Zone 32, Northern Hemisphere (WGS 84)\p32632"

Et tout mon code devient:

Code:

Create Table Towns ( townname Char(30), population SmallInt, median_income Decimal(9,2) ) 


Create Map For towns CoordSys Earth Projection 8, 104, 7, 9, 0, 0.9996, 500000, 0

dim x1,x2,y1,y2 as float

x1= 666800
x2= 667500
y1= 3960350
y2= 3960380

Insert Into towns (obj) Values (CreateLine( x1, y1, x2, y2))

browse * from towns 

map from towns

Mais mon problème devient le suivant:

La Map s'affiche toute blanche; c-à-d aucune ligne ne s'affiche (vous pouvez exécuter le code et voir vous même);
mais une ligne (ou un enregistrement) qui s'ajoute dans la table "towns" tout en zéros pour tout les champs.

Merci de me résoudre ce problème.

Coordialement; SOFIENE

Hors ligne

 

#6 Fri 05 September 2008 12:57

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

Re: [MapBasic 9.0] création de ligne

C'est quasi bon...je dirais en fin de première ligne  ..... File "C:\TOWNS"
et surtout j'ajouterais (les 3 premières lignes sont facultatives)
set map redraw off
Set Map Layer 1 Global Line (1,2,0)     'au cas où le style de ligne par défaut serait invisible
set map redraw on
Set Map Window FrontWindow() Zoom Entire Layer 1   'pour centrer la carte sur l'objet ligne créé
Un commit table towns, pour enregistrer la table, sera nécessaire à un moment donné ...

Hors ligne

 

#7 Fri 05 September 2008 13:36

kharbeche
Participant occasionnel
Lieu: Eddamous
Date d'inscription: 27 Aug 2008
Messages: 42

Re: [MapBasic 9.0] création de ligne

Merci Mr de votre réponse;

voici le nouveau code en ajoutant vos modifications proposés;

Code:

Create Table Towns ( townname Char(30), population SmallInt, median_income Decimal(9,2) ) file "c:\map\towns"

Create Map For towns CoordSys Earth Projection 8, 104, 7, 9, 0, 0.9996, 500000, 0

dim x1,x2,y1,y2 as float
x1= 666800
x2= 667500
y1= 3960350
y2= 3960380

Insert Into towns (obj) Values (CreateLine( x1, y1, x2, y2))
commit table towns

    browse * from towns     
    map from towns

set map redraw off
Set Map Layer 1 Global Line (1,2,0)
set map redraw on
Set Map Window FrontWindow() Zoom Entire Layer 1

Mais malheureusement rien n'a changé;



Cordialement; SOFIENE

Hors ligne

 

#8 Fri 05 September 2008 13:54

Olivier T
Participant actif
Date d'inscription: 31 May 2006
Messages: 71

Re: [MapBasic 9.0] création de ligne

Bonjour

J'utiliserais plutôt la commande suivant

upadte town set obj=createline(x1,y1,x2,y2)

browse town

Hors ligne

 

#9 Fri 05 September 2008 15:52

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

Re: [MapBasic 9.0] création de ligne

Les mêmes lignes (sauf les  dim qui doivent être un seul par ligne) tapées dans la fenêtre MapBasic de MapInfo fonctionnent chez moi !!
Qu'est-ce qui ne va pas ?
Il n'y a pas d'objet graphique ? Mettez en édition, sélectionnez tout ... vous ne voyez rien ?

ps on ne peut pas utiliser le update towns set obj=createline(x1,y1,x2,y2) ...il n'y a pas encore d'objet à updater !!

Hors ligne

 

#10 Thu 11 September 2008 10:11

kharbeche
Participant occasionnel
Lieu: Eddamous
Date d'inscription: 27 Aug 2008
Messages: 42

Re: [MapBasic 9.0] création de ligne

Bonjour Mr. Maurice;

je suis désolé; mais j'ai u une fenêtre Map qui est toute blanche; aucun changement;

voici le code exécuté; et vous pouvez voir aussi une impécran de résultat de l'exécution comme pièce jointe

Code:

Create Table Towns ( townname Char(30), population SmallInt, median_income Decimal(9,2) ) file "c:\map\towns"

Create Map For towns CoordSys Earth Projection 8, 104, 7, 9, 0, 0.9996, 500000, 0

dim x1 as float
dim x2 as float
dim y1 as float
dim y2 as float


x1= 666800
x2= 667500
y1= 3960350
y2= 3960380

Insert Into towns (obj) Values (CreateLine( x1, y1, x2, y2))
commit table towns

    browse * from towns     
    map from towns

set map redraw off
Set Map Layer 1 Global Line (1,2,0)
set map redraw on
Set Map Window FrontWindow() Zoom Entire Layer 1

c vraiment bizarre mais je ne sais pas quoi faire; et j'ai vraiment besoin de votre aide;


en outre, l'objet se sélectionne; c'est à dire quand je sélectionne sa région dans la fenêtre Map il se sélectionne dans le tableau (la ligne correspondante); mais je ne le vois pas !!! comme si il est en blanc;

merci de votre suivi

Dernière modification par kharbeche (Thu 11 September 2008 11:56)


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

Hors ligne

 

#11 Thu 11 September 2008 13:53

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

Re: [MapBasic 9.0] création de ligne

Votre style courant pour les lignes doit être à blanc et/ou ligne vide ... sad
Utilisez les commandes suivantes, dans l'orde et pour plusieurs essais repartez en ligne 8, le Set Style, les 4 Dim et les deux lignes de création de table étant déjà faits (en gras les parties variables):

dim x1 as float
dim x2 as float
dim y1 as float
dim y2 as float
Create Table Towns (townname Char(30),population SmallInt,median_income Decimal(9,2)) file "c:\map\towns"
Create Map For towns CoordSys Earth Projection 8, 104, 7, 9, 0, 0.9996, 500000, 0
Set Style Pen MakePen( 1, 2, 0) 'nb: vous pouvez faire varier ça aussi, pour voir...
x1= 666800
x2= 667500
y1= 3960350
y2= 3960380
Insert Into towns (obj) Values (CreateLine( x1, y1, x2, y2))
commit table towns

' browse * from towns    facultatif
map from towns 'à ne faire qu'une fois au cours des essais, puis inactiver par '
Set Map Window FrontWindow() Zoom Entire Layer 1 'utile seulement la première fois, inactiver après

Hors ligne

 

#12 Mon 15 September 2008 01:08

kharbeche
Participant occasionnel
Lieu: Eddamous
Date d'inscription: 27 Aug 2008
Messages: 42

Re: [MapBasic 9.0] création de ligne

Bonsoir Mr.Maurice;

Oui vous avez raison pour la couleur de la ligne; mais en faite le problème n'est pas là;
parce qu'après le changement du programme comme vous avez m'indiquer; malheureusement j'ai obtenu les même résultats que précédemment; (aussi une Map toute en blanche)

Mais après un essai pour savoir des informations sur la ligne (après exécutions et en sélectionnant la région de la ligne sur la Map); j'ai bien contourné le problème;

C'est tout simplement les coordonnées ne sont pas ceux exigés dans le programme; j'ai obtenu des autres cordonnées pour les extrémités de la ligne avec une longueur égal à zéros mètres (dont vous pouvez voir l'impécran sur les résultats obtenus que j'ai eu lors de l'exécution; pour une meilleur clarté et compréhension du problème)

La figure ci jointe vous montre;

Une autre fois je vous remercie fortement pour votre suivi;

Cordialement; SOFIENE


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

Hors ligne

 

#13 Mon 15 September 2008 08:21

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

Re: [MapBasic 9.0] création de ligne

Voir le post #4: à part les problèmes de couleur, il faut aussi que les coordonnées que vous donnez aux points soient compatibles avec la projection que vous avez fixée pour la table. De plus vous pouvez forcer les calculs à se faire dans cette projection, par une ligne Set CoordSys Table towns, juste après Create Map....

Hors ligne

 

#14 Mon 15 September 2008 10:19

kharbeche
Participant occasionnel
Lieu: Eddamous
Date d'inscription: 27 Aug 2008
Messages: 42

Re: [MapBasic 9.0] création de ligne

waaaaaaaaaaaaaaaaw, Mr.Maurice; enfin j'ai réussi; c'est vraiment génial de vous;

milles mercis pour votre effort et de votre aide; juste je voudrais vous dire que dans le cadre de mon PFE c'est la première fois que je connais MapBasic/MapInfo;

au revoir, (au prochain problème big_smile)

"très" Cordialement de SOFIENE

Hors ligne

 

Pied de page des forums

Powered by FluxBB