Cordonne vb6

Signaler
Messages postés
6
Date d'inscription
mercredi 30 avril 2008
Statut
Membre
Dernière intervention
23 juin 2008
-
Messages postés
693
Date d'inscription
samedi 18 mai 2002
Statut
Membre
Dernière intervention
17 avril 2017
-
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

Messages postés
1098
Date d'inscription
mercredi 22 mars 2006
Statut
Membre
Dernière intervention
22 octobre 2019
1
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"
Messages postés
6
Date d'inscription
mercredi 30 avril 2008
Statut
Membre
Dernière intervention
23 juin 2008

ma carte est dans picturebox et mes cordoné sont en twip
Messages postés
1098
Date d'inscription
mercredi 22 mars 2006
Statut
Membre
Dernière intervention
22 octobre 2019
1
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"
Messages postés
693
Date d'inscription
samedi 18 mai 2002
Statut
Membre
Dernière intervention
17 avril 2017
2
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.
Messages postés
693
Date d'inscription
samedi 18 mai 2002
Statut
Membre
Dernière intervention
17 avril 2017
2
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