#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 SubOK 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 Subcela 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 ftrCircleHors 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


