Cordonne vb6

sweetygirls Messages postés 6 Date d'inscription mercredi 30 avril 2008 Statut Membre Dernière intervention 23 juin 2008 - 16 mai 2008 à 14:36
cs_cheyenne Messages postés 693 Date d'inscription samedi 18 mai 2002 Statut Membre Dernière intervention 17 avril 2017 - 18 mai 2008 à 18:13
salut ts le monde je suis entrain de faire une application en vb6 et j'ai besoin de votre aide
je veux bien savoir le code pour marquer un point avec des cordonnés X Y sur une carte geographique
meci pour tte info

5 réponses

Polack77 Messages postés 1098 Date d'inscription mercredi 22 mars 2006 Statut Membre Dernière intervention 22 octobre 2019 1
16 mai 2008 à 15:57
Bonjour
Bà c'est pas claire comme question

Ta carte est où , dans un objet, PictureBox, Image, Autre ???
X et Y, en point en Twip en millimétrés en pourcentage de l'image ????

Si non tu peut également regardé cette source :
http://www.vbfrance.com/codes/CLASSE-DESSIN-API-PLUS-RAPIDE-VB_32773.aspx

Ce projet contient une classe qui dessine plein de truc avec les API c'est sans doute un truc du genre que tu cherche

Bon courage
Amicalement
Pensez "Réponse acceptée"
0
sweetygirls Messages postés 6 Date d'inscription mercredi 30 avril 2008 Statut Membre Dernière intervention 23 juin 2008
16 mai 2008 à 16:29
ma carte est dans picturebox et mes cordoné sont en twip
0
Polack77 Messages postés 1098 Date d'inscription mercredi 22 mars 2006 Statut Membre Dernière intervention 22 octobre 2019 1
16 mai 2008 à 16:54
Je viens de faire un petit truc (par API tu dois pouvoir faire mieux mais je n'es pas le temps)
'8<----------------------------------------------------------------------------
Public Sub AjouteCroix(ByRef Picture As PictureBox, ByVal CentreX As Long, ByVal CentreY As Long, Optional ByVal Taille As Integer = 60)
    Picture.DrawMode = vbBlackness
    Picture.Line (CentreX - Taille / 2, CentreY - Taille / 2)-(CentreX + Taille / 2, CentreY + Taille / 2)
    Picture.Line (CentreX + Taille / 2, CentreY - Taille / 2)-(CentreX - Taille / 2, CentreY + Taille / 2)
End Sub
'---------------------------------------------------------------------------->8
Sa te conviens ?

Amicalement
Pensez "Réponse acceptée"
0
cs_cheyenne Messages postés 693 Date d'inscription samedi 18 mai 2002 Statut Membre Dernière intervention 17 avril 2017 2
17 mai 2008 à 14:36
Bonjour,


Si x et y sont des coordonnées exprimées en DMS, (50°30'15"N, 10°20'5"W ) le mieux est de travailler avec un PictureBox utilisant ce ScaleMode picCARTE.Scale (-180, 90)-(180, -90).
Tu convertis les degrés minutes et secondes sexagésimales en décimal, sachant que Ouest et Sud sont négatifs, il ne te reste plus qu'à tracer ton
point à ces coordonnées.

Tu extraits d'abord les degrés minutes secondes et l'orientation et tu fais les calculs suivants :


Pour x (longitude)
    lon = d + m / 60 + s / 3600    if orientation "W" then lon -lon 


idem pour y (latitude)  
    lat = d + m / 60 + s / 3600    if orientation  "S" then lat -lat


Si tu as au départ des données décimales (45.12345678,-15.12345678), il n'y a rien à faire, tu places ton repère directement sur la carte avec le ScaleMode indiqué ci-dessus.


Pour tracer un cercle équivalent à 1°  (à toi d'ajuster selon l'échelle de ta carte) : picCARTE.Circle(lon,lat), 1, vbRed

Le ScaleMode indiqué est celui d'une planisphère à toi de faire selon tes besoins. Tu n'as pas donné assez d'explications pour t'aider d'avantage.

Amicalement de Cheyenne.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_cheyenne Messages postés 693 Date d'inscription samedi 18 mai 2002 Statut Membre Dernière intervention 17 avril 2017 2
18 mai 2008 à 18:13
Bonjour sweetygirls,

Petites précisions :




Sur un planisphère (et non une comme je l'avais écrit précédement)
1° = 3 pixels (en fait 2.84) sur une carte de 1024 pixels allant de 180°W à 180 E.
1° de longitude à l'équateur représente 111.1 Km
1 pixel éqivaut à 21.7' soit environ 39 Km à l'equateur, donc il n'est pas nécessaire de tenir compte des secondes si tu travailles sur un planisphère.




A noter que si tu travailles avec une API pour dessiner sur ta carte, il te faudra, avant l'appel de celle-ci passer le ScaleMode en vbPixels et convertir les coordonnées en pixels.

Si ma réponse d'hier apporte une solution à ton poblème n'oublies pas de la valider, merci.
Il se peut aussi que cela ne corresponde pas à ce que tu demandes, dans ce cas précises excatement ce dont tu as besoin.

A+ Cheyenne
0
Rejoignez-nous