2017-09-23 2 views
0

Disons que je connais deux personnes sont debout à GPS emplacement A et B. A est en train de regarder B.Comment convertir les coordonnées GPS relatives en une coordonnée x, y, z "locale" personnalisée?

je voudrais savoir B « s (x, y, z) les coordonnées sur la base de A, l'axe +y est la direction de B (depuis A cherche à B), +z est la verticale au ciel. (Donc +x est droite de A)

Je sais comment convertir un GPS coordonnées UTM à , mais dans ce cas, une rotation semblent coordonner système et traduction nécessaires. Je vais faire un calcul, mais avant cela, y aura-t-il des codes à examiner?

Je pense que cela doit être géré par de nombreuses applications, mais je ne pouvais pas trouver jusqu'à présent.

Répondre

0
  1. points de stand Convertir 3D cartésien

    GPS suggère WGS84 donc voir How to convert a spherical velocity coordinates into cartesian

  2. Construct matrice de transformation avec vos axises souhaitées

    voir Understanding 4x4 homogenous transform matrices. Donc vous avez besoin de 3 vecteurs unitaires perpendiculaires. Le Y est la direction de vue si

    Y = normalize(B-A); 
    

    un des axises sera très probablement en vecteur de sorte que vous pouvez utiliser approximation

    Z = normalize(A); 
    

    et comme origine, vous pouvez utiliser le point A directement. Maintenant, il suffit d'exploiter produit croisé pour créer X perpendiculaire à la fois et faire également Y perpendiculaire à X et Z (si haut reste en place). Pour plus d'informations voir Representing Points on a Circular Radar Math approach

  3. Transfrom B-B' par cette matrice

    Encore une fois dans le QA liés à # 1 est de savoir comment faire. C'est une simple multiplication matricielle/vectorielle.