Pages: 1 2
- Sujet précédent - [MapBasic 9.0] Afficher des données extraites d'un fichier - Sujet suivant
#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
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
Bonjour
Un peu de mal...
Qu'entendez vous par layer 0 ? La couche dessin ?
Oui
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)
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
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 !
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
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
Voir dans l'aide en ligne "symboles personnalisés"...
Le plus dur: trouver le répertoire CustSymb
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
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
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
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
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
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
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
Pages: 1 2
- Sujet précédent - [MapBasic 9.0] Afficher des données extraites d'un fichier - Sujet suivant