#1 Tue 19 June 2007 14:20
- ninikkhuet
- Participant occasionnel
- Date d'inscription: 13 Jun 2007
- Messages: 20
[Mapx 5.0 + VB 6] affichage d'un layer ?
bonjour,
j'ai beau parcourir les 2 bouquins qui sont fournis avec MapX et regarder sur les forums, je n'arrive toujours pas à comprendre qq chose qui doit être hyper simple pourtant. J'ai créé un tout petit projet en VB pour tester les différentes fonctionnalités de MapX. Il n'y a qu'une seule form dans laquelle j'ai posé une map. Lorsque la form est chargée, je créé mon .tab qui va bien:
Code:
Private Sub form_load() Dim X, Y As Integer Dim pt As New Point Dim ftrCircle As Feature Dim li As New MapXLib.LayerInfo Dim ftrs As MapXLib.Features Dim ds As MapXLib.Dataset 'création d'un layer Set ds = Map1.DataSets.Add(miDataSetLayer, Map1.Layers("World Countries")) Set ftrs = Map1.Layers.Item("World Countries").Selection.Clone li.Type = miLayerInfoTypeNewTable li.AddParameter "Name", "alertes" li.AddParameter "FileSpec", App.Path & "\test.tab" li.AddParameter "Features", ftrs li.AddParameter "OverWriteFile", True 'le layer est créé quand on le rajoute à la collection Map1.Layers.Add li X = Map1.CenterX Y = Map1.CenterY pt.Set X, Y Set ftrCircle = Map1.FeatureFactory.CreateCircularRegion(miCircleTypeScreen, pt, 222) Map1.Layers.Item("test").AddFeature ftrCircle Map1.Layers.Item("test").Visible = True End Sub
OK jusque là tout va bien, le .tab est créé et l'affichage du cercle se fait bien. Par contre lorsque je fais :
Code:
Private Sub Map1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Dim pnt As New MapXLib.Point Dim ftr As New MapXLib.Feature Dim mx As Double Dim my As Double Map1.ConvertCoord X, Y, mx, my, miScreenToMap pnt.Set mx, my Set ftr = Map1.FeatureFactory.CreateCircularRegion(miCircleTypeScreen, pnt, 222, Map1.MapUnit) Map1.Layers.Item("test").AddFeature ftr End Sub
cela n'affiche pas le cercle dont le centre est le clic de la souris. En faisant un msgbox des coordonnées, ce sont les bonnes qui s'affichent (j'affiche les screen et les coord map). Alors j'en viens à me demander comment fonctionnent les layers...il ne suffit pas de rajouter le cercle au layer "test" pour qu'il s'affiche ?
Hors ligne
#2 Tue 19 June 2007 16:10
- abdallahi
- Participant occasionnel
- Lieu: Boutilimitt
- Date d'inscription: 8 Jun 2007
- Messages: 11
Re: [Mapx 5.0 + VB 6] affichage d'un layer ?
j'ai executé ton code avec map4 mais j'ai un bug dans la ligne
Code:
Map1.Layers.Item("test").AddFeature ftrCircle
Hors ligne
#3 Tue 19 June 2007 16:45
- ninikkhuet
- Participant occasionnel
- Date d'inscription: 13 Jun 2007
- Messages: 20
Re: [Mapx 5.0 + VB 6] affichage d'un layer ?
ouep j'ai oublié de modifier qq chose : li.addParameter "Name", "test"..mais bon même en modifiant ça, le cercle ne s'affiche toujours pas
Hors ligne
#4 Tue 19 June 2007 16:56
- Sébastien VERNIER
- Juste Inscrit !
- Date d'inscription: 7 Sep 2005
- Messages: 8
Re: [Mapx 5.0 + VB 6] affichage d'un layer ?
Bonjour,
Je pense que votre problème vient d'un mauvais système de coordonnées.
En effet, dans Mapx comme dans MapInfo Pro d'ailleurs, vous pouvez spécifier un système à l'affichage et un autre pour les calculs.
Vous récupérez des coordonnées dans celui de l'affichage (Map1.DisplayCoordSys) et vous générez un objet dans celui du calcul (Map1.NumericCorrdsys).
Faîtes au préalable correspondre les 2 (Map1.NumericCoordsys = Map1.Displaycoordsys).
Bonne journée
Sébastien
Hors ligne
#5 Tue 19 June 2007 20:10
- Damien BEAUSEIGNEUR
- Participant assidu
- Lieu: meyzieu
- Date d'inscription: 5 Sep 2005
- Messages: 425
Re: [Mapx 5.0 + VB 6] affichage d'un layer ?
Bonjour
Le problème viens du rafraîchissement de la carte, à chaque fois que tu rajoutes un objet tu es obligé de rafraîchir la carte à moins de placer la couche que tu modifie comme la couche animé.
Dans ce cas et dans ce cas chaque modification sera reportée dès la modification.
Cela permet entre autre de faire clignoter un tracé par exemple en cachant et en rendant visible la couche à intervalle régulier.
Cordialement
Damien
Hors ligne
#6 Wed 20 June 2007 09:30
- ninikkhuet
- Participant occasionnel
- Date d'inscription: 13 Jun 2007
- Messages: 20
Re: [Mapx 5.0 + VB 6] affichage d'un layer ?
exact, effectivement hier j'ai essayé de rafraîchir et ça a fonctionné. Merci pour le conseil de la carte animé, ça va certainement me servir pour la suite !
Hors ligne