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 Mon 08 September 2008 15:38

chiche31
Participant actif
Date d'inscription: 20 Aug 2008
Messages: 64

[MapBasic 9.0] Afficher des données extraites d'un fichier

Bonjour,
Après avoir extrait des données issues d'un fichier (qui ne sont pour l'instant récupérées nul part, juste triées à partir de mapBasic), je souhaite les afficher dans mapInfo. Ce ne sont que des données textes, dont une qui est un lien vers une image.
Voici un exemple de données récupérer:
toto.bmp; Mon nom est toto; 12 ans
Et je souhaite afficher en haut à droite de la layer "ici" les deux données + l'image.
Le zoom de mapInfo est paramétré de la façon suivante :
Zoom : 33900
Echelle : 1000
Résolution de mon écran : 1280 * 1024

J'aimerais que ces trois données soient visibles sur mon écran sans avoir à toucher le zoom ni la résolution de l'écran, ni aux paramètres du zoom. Pouvez-vous m'expliquer comment faire, car les quelques pistes que j'avais n'ont pas donné grand chose...?. Quant aux données récupérées du fichier, est-ce que je dois obligatoirement les insérer dans une table, ou bien est-ce qu'il est possible de les traiter à la volée?

Merci par avance

Dernière modification par chiche31 (Mon 08 September 2008 16:31)

Hors ligne

 

#2 Mon 08 September 2008 16:31

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

Re: [MapBasic 9.0] Afficher des données extraites d'un fichier

Bonjour
Un peu de mal...
Qu'entendez vous par layer 0 ? La couche dessin ?
Zoom : 33900 Echelle : 1000  vous êtes sûr ?? Quelles sont les unités de distance ?
L'image c'est toto.bmp ?? Pour l'ouvrir et l'afficher il faudrait son chemin entier C:\temp\toto.bmp et il faut que cette image soit géoréférencée...ce qui ne sera pas le cas si c'est la photo de toto smile
Ou c'est juste le nom de l'image qu'il faut afficher ?? Dans ce cas il faut passer par
Set Map Layer 0 Editable
Create Text
    "TOTO.BMP"
    (X1,Y1) (X2,Y2)
    Font ("Arial",0,0,0)
(X1,Y1) étant les coordonnées du coin haut gauche et (X2,Y2) celles du coin bas droit du rectangle englobant le texte, dont la taille n'est déterminée que par la taille de ce rectangle englobant

Hors ligne

 

#3 Mon 08 September 2008 16:42

chiche31
Participant actif
Date d'inscription: 20 Aug 2008
Messages: 64

Re: [MapBasic 9.0] Afficher des données extraites d'un fichier

Maurice a écrit:

Bonjour
Un peu de mal...
Qu'entendez vous par layer 0 ? La couche dessin ?


Oui

Maurice a écrit:

Zoom : 33900 Echelle : 1000  vous êtes sûr ?? Quelles sont les unités de distance ?


Oui, certains. L'unité de distance est le kilomètre (c'est une map monde complète en fait)

Maurice a écrit:

L'image c'est toto.bmp ?? Pour l'ouvrir et l'afficher il faudrait son chemin entier C:\temp\toto.bmp et il faut que cette image soit géoréférencée...ce qui ne sera pas le cas si c'est la photo de toto smile
Ou c'est juste le nom de l'image qu'il faut afficher ?? Dans ce cas il faut passer par
Set Map Layer 0 Editable
Create Text
    "TOTO.BMP"
    (X1,Y1) (X2,Y2)
    Font ("Arial",0,0,0)
(X1,Y1) étant les coordonnées du coin haut gauche et (X2,Y2) celles du coin bas droit du rectangle englobant le texte, dont la taille n'est déterminée que par la taille de ce rectangle englobant


C'est une image lambda (en l'occurence le logo d'une compagnie) que je dois afficher, non pas son nom, et j'ai bien le chemin complet. Je dois afficher juste à côté deux informations relatives à cette compagnie. COmment je peux faire pour les afficher juste à côté du logo? Et que veux dire "géoréférencée"?

Hors ligne

 

#4 Mon 08 September 2008 17:09

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

Re: [MapBasic 9.0] Afficher des données extraites d'un fichier

Géoréférencé = positionné dans l'espace cartographique
Vous ne pouvez pas faire ça dans une carte, sauf à donner à l'image des points de calage qui la situeront correctement (non déformée) au Nord-Est du monde !!!
C'est à faire dans une mise en page où vous mettrez au bon endroit une frame qui contiendra cette seule image du logo (qui doit avant être ouvert en affichage et pas en calage) et vos autres textes
Le plus simple: faire un WOR test de tout ça, regarder ce qui s'y est inscrit, le reproduire en code MB

Hors ligne

 

#5 Mon 08 September 2008 17:20

chiche31
Participant actif
Date d'inscription: 20 Aug 2008
Messages: 64

Re: [MapBasic 9.0] Afficher des données extraites d'un fichier

Il n'est pas possible de faire ça? Même si je désire le faire sur une autre couche que la couche dessin?

Hors ligne

 

#6 Mon 08 September 2008 18:15

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

Re: [MapBasic 9.0] Afficher des données extraites d'un fichier

C'est possible d'ajouter le logo dans la carte  (pas en couche dessin) mais il faut le munir d'un TAB qui le géoréférence correctement dans le monde (se rappeler aussi que les vecteurs se reprojettent sur le raster...)
Ci-joint un exemple avec le monde (données livrées avec MI) et un logo pris au hasard et géoréférencé
Le texte peut être aussi ajouté( en couche dessin) mais les coordonnées des rectangles qui le contiendront seront à fixer dans des valeurs conforme à votre projection du monde (faire un WOR avec le texte placé et voir ce que sont ces valeurs)
Le tout = une petite galère....alors que dans une mise en page c'est plus simple !


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

Hors ligne

 

#7 Mon 08 September 2008 18:45

Gérard parcoli
Participant actif
Date d'inscription: 9 Jan 2007
Messages: 95

Re: [MapBasic 9.0] Afficher des données extraites d'un fichier

Bonjour,
une autre possiblité existe, elle consiste à employer vos images comme des symboles personnalisés mapinfo.
les contraintes étant avec la V9 étant qu'il faut que ces symboles soient en bmp (ce ne sera plus le cas avec la 9.5 :-), et regroupés dans un repertoire spécifique.

Hors ligne

 

#8 Tue 09 September 2008 09:31

chiche31
Participant actif
Date d'inscription: 20 Aug 2008
Messages: 64

Re: [MapBasic 9.0] Afficher des données extraites d'un fichier

En fait, je recherche le moyen le plus simple d'afficher un logo sur une carte, avec à côté des deux ou trois informations, peu importe la couche ou le moyen.
En fait mon programme consiste à venir lire un fichier qui contient la position (les coordonnées géographique en fait) d'un avion, le logo de sa compagnie et diverses informations. Une fois ces infos collectés, je dois afficher le logo (qui symbolise l'avion) au bon endroit, avec les informations juste à côté.

Hors ligne

 

#9 Tue 09 September 2008 09:42

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

Re: [MapBasic 9.0] Afficher des données extraites d'un fichier

Dans ce cas pas de doute, la solution donnée par Gérard parcoli est la meilleure
Reste à tatonner (en s'aidant d'un wor) pour trouver les "bonnes" coordonnées des rectangles texte

Hors ligne

 

#10 Tue 09 September 2008 09:48

chiche31
Participant actif
Date d'inscription: 20 Aug 2008
Messages: 64

Re: [MapBasic 9.0] Afficher des données extraites d'un fichier

Je vais passer pour un innocent, mais je ne vois pas du tout comment mettre en place la solution de Gérard....

Hors ligne

 

#11 Tue 09 September 2008 10:21

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

Re: [MapBasic 9.0] Afficher des données extraites d'un fichier

Voir dans l'aide en ligne "symboles personnalisés"...
Le plus dur: trouver le répertoire CustSymb smile
Le plus souvent dans C:\Documents and Settings\nom.utilisateur\Application Data\MapInfo\MapInfo\Professional\850\CustSymb
...mais il faut avant rendre visibles les dosssiers cachés, car c'en est !! (par Outils->Options des dossiers de l'explorateur)

Hors ligne

 

#12 Tue 09 September 2008 10:43

nicoboud
Membre
Lieu: Nantes
Date d'inscription: 12 Oct 2007
Messages: 860

Re: [MapBasic 9.0] Afficher des données extraites d'un fichier

Bonjour,

Il faut aussi que ces images aient un format particulier : BMP et une taille en pixel précise (32x32 ou 64x64) sinon MapInfo ne les proposera pas même si ces images sont dans le dossier Custsymb.

Nicolas.

PS:  et pour retrouver dans MapInfo ces images placées dans le dossier CustSymb, il faut utiliser la police MapInfo Symboles Personnalisés.

Dernière modification par Nicolas Boudesseul (Tue 09 September 2008 10:49)


Co-modérateur du forum Mapinfo
Utilisateur Mapinfo et QGIS

Hors ligne

 

#13 Tue 09 September 2008 13:59

chiche31
Participant actif
Date d'inscription: 20 Aug 2008
Messages: 64

Re: [MapBasic 9.0] Afficher des données extraites d'un fichier

Maurice a écrit:

Voir dans l'aide en ligne "symboles personnalisés"...
Le plus dur: trouver le répertoire CustSymb smile
Le plus souvent dans C:\Documents and Settings\nom.utilisateur\Application Data\MapInfo\MapInfo\Professional\850\CustSymb
...mais il faut avant rendre visibles les dosssiers cachés, car c'en est !! (par Outils->Options des dossiers de l'explorateur)


Ok, j'ai trouvé le dossier en question. Par contre à partir du map basic, comment afficher l'image que j'ai déposé dans ce répertoire? L'aide n'est pas très explicite...

Hors ligne

 

#14 Tue 09 September 2008 14:43

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

Re: [MapBasic 9.0] Afficher des données extraites d'un fichier

Passer par un Create Point Into Window WidowId(FrontWindow()) (X, Y) Symbol("nom_de_mon_bmp", couleur, taille, style)
Voir Symbol clause dans l'aide de MB

Hors ligne

 

#15 Tue 09 September 2008 14:57

chiche31
Participant actif
Date d'inscription: 20 Aug 2008
Messages: 64

Re: [MapBasic 9.0] Afficher des données extraites d'un fichier

Pourquoi la ligne suivant ne compile pas?

Create Point Into Window WidowId(FrontWindow()) (-172.597226, 76.122766) Symbol("AFR.bmp",0,30,1)


Merci par avance

Hors ligne

 

#16 Tue 09 September 2008 15:18

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

Re: [MapBasic 9.0] Afficher des données extraites d'un fichier

Parce que vous et moi avons fait des fautes de frappe sad
Create Point Into Window WindowId(FrontWindow()) (-172.597226, 76.122766) Symbol ("AFR.bmp",0,30,1)
WindowID et pas WidowID et un espace entre Symbol et la parenthèese

Hors ligne

 

#17 Tue 09 September 2008 15:21

chiche31
Participant actif
Date d'inscription: 20 Aug 2008
Messages: 64

Re: [MapBasic 9.0] Afficher des données extraites d'un fichier

J'ai vu l'erreur du "widows" en même temps que vous! Par contre, ça compile même avec Symbol et la parenthèse collée.

Par contre maintenant, comment je fais pour effacer cette image avec du code mapbasic?

Merci beaucoup en tout cas!

Hors ligne

 

#18 Tue 09 September 2008 16:37

Gérard parcoli
Participant actif
Date d'inscription: 9 Jan 2007
Messages: 95

Re: [MapBasic 9.0] Afficher des données extraites d'un fichier

chiche31 a écrit:

Par contre maintenant, comment je fais pour effacer cette image avec du code mapbasic?


Utilisez la commande Kill pour supprimer un fichier.
La commande Reload Custom Symbols From sera aussi nécessaire pour mettre à jour la liste des symboles perso.

Pour revenir sur les restrictions de dimensions des symboles perso, elle n'existe plus depuis quelques versions de mapinfo, mais il peut etre necessaire que le bmp comporte plus de 256 couleurs (autre ancienne restriction) pour qu'il soit listé.

Hors ligne

 

#19 Tue 09 September 2008 16:42

chiche31
Participant actif
Date d'inscription: 20 Aug 2008
Messages: 64

Re: [MapBasic 9.0] Afficher des données extraites d'un fichier

Je ne veux pas supprimer le fichier en lui même, je ne veux juste plus qu'il s'affiche

Hors ligne

 

#20 Tue 09 September 2008 17:05

Damien BEAUSEIGNEUR
Participant assidu
Lieu: meyzieu
Date d'inscription: 5 Sep 2005
Messages: 425

Re: [MapBasic 9.0] Afficher des données extraites d'un fichier

bonjour

Le plus simple consiste à supprimer la couche contenant le point ou d'annuler la modification fait sur la couche modifiable...
Un rollback sur la table devrait être suffisant.

Cordialement

Hors ligne

 

#21 Tue 09 September 2008 17:16

chiche31
Participant actif
Date d'inscription: 20 Aug 2008
Messages: 64

Re: [MapBasic 9.0] Afficher des données extraites d'un fichier

Quelle est la fonction qui permet d'annuler la modification?
le problème est que cette couche contient d'autres éléments que je voudrais conserver. N'y a t-il pas moyen de supprimer uniquement l'image en question?

Hors ligne

 

#22 Tue 09 September 2008 18:10

Gérard parcoli
Participant actif
Date d'inscription: 9 Jan 2007
Messages: 95

Re: [MapBasic 9.0] Afficher des données extraites d'un fichier

chiche31 a écrit:

N'y a t-il pas moyen de supprimer uniquement l'image en question?


Essayez d'appliquer la commande Delete Object sur une selection de l'objet à supprimer.

Hors ligne

 

#23 Tue 09 September 2008 20:10

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

Re: [MapBasic 9.0] Afficher des données extraites d'un fichier

Bémol: si je me souviens, ce point avec sa symbolique associée est en couche dessin, pas dans une vraie table
Et il ne faut pas tout effacer dans cette couche dessin, si j'ai bien compris
Alors c'est un peu plus coton...je vais d'abord combattre l'hypoglycémie smile

Hors ligne

 

#24 Wed 10 September 2008 08:56

Gérard parcoli
Participant actif
Date d'inscription: 9 Jan 2007
Messages: 95

Re: [MapBasic 9.0] Afficher des données extraites d'un fichier

Maurice a écrit:

Bémol: si je me souviens, ce point avec sa symbolique associée est en couche dessin, pas dans une vraie table
Et il ne faut pas tout effacer dans cette couche dessin


Oui,
la question suivante serait : Comment selectionner en mapbasic mon symbole dans la couche dessin ?

Hors ligne

 

#25 Wed 10 September 2008 09:07

chiche31
Participant actif
Date d'inscription: 20 Aug 2008
Messages: 64

Re: [MapBasic 9.0] Afficher des données extraites d'un fichier

Comment crée t-on une sélection d'objet?

Hors ligne

 

#26 Wed 10 September 2008 09:40

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

Re: [MapBasic 9.0] Afficher des données extraites d'un fichier

Pour détruire un point de la couche dessin:

' par prudence, rendre tous les autres layers non sélectables (facultatif ?)
Set Map Layer 0 Editable On Selectable On ' la couche dessin en édition et sélectable
dim mypnt as integer
mypnt=searchpoint(frontwindow(),valeur_X,valeur_Y)
' normalement on connait le X,Y du point, donc mypnt doit prendre la valeur 1 (un seul point trouvé à ce X,Y)
' on peut aussi utiliser un rectangle de recherche: searchrect. Le ou les points trouvés ne sont pas sélectionnés !
dim ligne as integer
ligne=searchinfo(1,2)
' donne le numéro de ligne du point trouvé - mais pas sélectionné - par searchpoint
delete object from cosmetic1 where rowid=ligne
' objet trouvé effacé !! CQFD
' pour le sélectionner seulement:
' select * from cosmetic1 where rowid=ligne

Hors ligne

 

#27 Wed 10 September 2008 10:39

chiche31
Participant actif
Date d'inscription: 20 Aug 2008
Messages: 64

Re: [MapBasic 9.0] Afficher des données extraites d'un fichier

Ca marche correctement, merci !! Par contre, il reste toujours le haut de l'image, comme si elle n'était pas entièrement effacée

Hors ligne

 

#28 Wed 10 September 2008 10:55

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

Re: [MapBasic 9.0] Afficher des données extraites d'un fichier

Un problème de rafraîchissement de la fenêtre ??
Tester dans MI (menu Fenêtre->Rafraîchir) et si OK reproduisez en code (run menu command 610 je crois)

Hors ligne

 

#29 Wed 10 September 2008 11:20

chiche31
Participant actif
Date d'inscription: 20 Aug 2008
Messages: 64

Re: [MapBasic 9.0] Afficher des données extraites d'un fichier

Maurice a écrit:

Un problème de rafraîchissement de la fenêtre ??
Tester dans MI (menu Fenêtre->Rafraîchir) et si OK reproduisez en code (run menu command 610 je crois)


Effectivement, c'était bien un problème de rafraîchissement.

Voici mon code :

Create Point Into Window WindowId(FrontWindow()) (-122.597226, 76.122766) Symbol ("AFR.bmp",255,30,1)

Set Map Layer 0 Editable On Selectable On
dim mypnt as integer
mypnt=searchpoint(frontwindow(),-172.597226,76.122766)

dim ligne as integer
ligne=searchinfo(1,2)

delete object from cosmetic1 where rowid=ligne

Il crée puis efface l'objet. Cependant, il ne marche qu'une seule fois. La seconde fois où je lance ce programme, l'image s'affiche mais n'est pas effacé. A quoi cela est dû??

Hors ligne

 

#30 Wed 10 September 2008 12:22

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

Re: [MapBasic 9.0] Afficher des données extraites d'un fichier

Chez moi le code suivant, lancé n fois dans la FMB fonctionne n fois:

dim mypnt as integer
dim ligne as integer
set coordsys table ma_table ' nom de la table du monde
Set Map Layer 0 Editable On Selectable On
Create Point Into Window WindowId(FrontWindow()) (-122.597226, 76.122766) Symbol ("AFR.bmp",255,30,1)
mypnt=searchpoint(frontwindow(),-122.597226, 76.122766)
print "mypnt: "+mypnt  ' pour tester ...
ligne=searchinfo(1,2)
print "ligne: "+ligne  ' pour tester ...
delete object from cosmetic1 where rowid=ligne
Set Map Layer 0 Editable Off
undim mypnt 'les undim sont pour la FMB
undim ligne

Hors ligne

 

Pied de page des forums

Powered by FluxBB