Localistation coordonées GPS via rayon de détection

Messages postés
6
Date d'inscription
mercredi 26 juillet 2006
Statut
Membre
Dernière intervention
11 février 2008
-
Messages postés
345
Date d'inscription
mardi 3 juin 2003
Statut
Membre
Dernière intervention
21 mars 2008
-
Bonjour à tous,

J'ai besoin d'aide pour le developpement en VB6 d'une application GPS.

Voici mon problème:
Je capture des trames GPS et converti les coordonnées WGS(etrs89) en lambert72.
Ainsi j’obtiens des valeurs X, Y, H (ma position actuelle).

J'ai un fichier CSV qui contient des position X, Y, H (autre que ma position) et j'aimerait maintenant que mon code vérifie le contenu de mon fichier CSV et m’indique si mes coordonnées actuelle se situent dans un rayon de +-2 mètres autour d'une des valeurs lu dans le fichiers CSV.

Si oui, alors l'application fait un BIP
Si non alors on continue l'analyse des trames GPS.

Ceci est mon premier post (commentaire), alors si je ne m'y suis pas bien pris, veuillez m'en excuser.

Voici un exemple de position X,Y,Z voir l'application cconvert sur le site: www.ngi.be
Valeur de X=150120.001    
Valeur de Y=170365.998
Valeur de H=65.345

conversion de:
datum:ETRS89
Elipsoide: GRS80
Projection:None
Coordinates:Geographic

<<<<< Conversion vers:
Datum: Belgian Datum72
Elipsiode: Hayford24
Projection: Lambert
Coordinates: Plane

Je pense qu'il faut utiliser la formule de Pythagore (Euclidienne)
Votre avis m'intéresse et surtout votre aide.

En vous remerciant pour votre aide et  B-R-A-V-O  pour VBfrance, car le site est génial !!!

1 réponse

Messages postés
345
Date d'inscription
mardi 3 juin 2003
Statut
Membre
Dernière intervention
21 mars 2008
2
Salut,


ca semble simple tu as déjà test coordonnées XYZ ( H étant la hauteur
donc Z) tu es donc en coordonnées cartésiennes donc  tu as juste à
tester la distance entre les points.


Exemple de code :


'------------------------

' Point en 3D

'------------------------

Public Type Point3

    x As Single

    y As Single

    h As Single

End Type


'Retourne la distance entre deux points 3D

Function Distance3D(ByRef P1 As Point3, ByRef P2 As Point3) As Double

    Distance3D = Sqr((P2.x - P1.x) *(P2.x - P1.x) +
(P2.y - P1.y) *(P2.y - P1.y) + (P2.h - P1.h) *(P2.h - P1.h))

End Function


'Si tu veux la distance "projetée"


Function Distance3D(ByRef P1 As Point3, ByRef P2 As Point3) As Double


    Distance3D = Sqr((P2.x - P1.x) *(P2.x - P1.x) + (P2.y - P1.y) * (P2.y - P1.y) )


End Function


ca doit pas etre plus difficile que ca

bonne prog