Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

calcul de coordonnées GPS

1 view
Skip to first unread message

ccur...@gmail.com

unread,
Mar 31, 2009, 1:05:28 PM3/31/09
to
Bonjour,
Je souhaite calculer les coordonnées GPS de certains points d'un objet
3D. Sachant que je connais les distances exactes entre ces points et
que l'objet est lui-même géolocalisé, quelle est la formule à exécuter
(merci de ne pas m'indiquer de logiciels, les calculs seront exécutés
en PHP) ?
Merci d'avance pour votre aide, aussi infime soit-elle, cela m'évitera
de m'arracher trop de cheveux.

Patrick V

unread,
Apr 1, 2009, 5:21:13 AM4/1/09
to
ccur...@gmail.com a écrit :

> Je souhaite calculer les coordonnées GPS de certains points d'un objet
> 3D. Sachant que je connais les distances exactes entre ces points et
> que l'objet est lui-même géolocalisé, quelle est la formule à exécuter
> (merci de ne pas m'indiquer de logiciels, les calculs seront exécutés
> en PHP) ?

Donc, en gros, ce dont tu as besoin, ce sont des formules de conversion
distance => coordonnées ?

ccur...@gmail.com

unread,
Apr 1, 2009, 6:26:11 AM4/1/09
to
> Donc, en gros, ce dont tu as besoin, ce sont des formules de conversion
> distance => coordonnées ?

Oui.


Un ami m'a donné la formule que j'ai testé en javascript :

function coordToDistt(u, v, w){
x = w * Math.sin(u) * Math.cos(v);
y = w * Math.sin(u) * Math.sin(v);
z = w * Math.cos(u);
return {x: x, y: y, z: z};
}

function distToCoord(x, y, z){
w = Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2) + Math.pow(z, 2));
u = Math.acos(z / w);
if(y >= 0)
v = Math.acos(x / Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2)));
else
v = 2 * Math.PI - Math.acos(x / Math.sqrt(Math.pow(x, 2) + Math.pow
(y, 2)));
return {u: u, v: v, w: w};
}

Mais les résultats me laissent penser qu'il y a une erreur quelque
part !

Patrick V

unread,
Apr 1, 2009, 8:21:33 AM4/1/09
to
ccur...@gmail.com a écrit :

> Un ami m'a donné la formule que j'ai testé en javascript :

A vue de nez, ça a l'air correct.

> Mais les résultats me laissent penser qu'il y a une erreur quelque
> part !

C'est à dire ? Tu obtiens quoi ?

ccur...@gmail.com

unread,
Apr 1, 2009, 10:43:50 AM4/1/09
to
geoToCart(2.475184854653805, 48.75171547649544, 24.16025940756962);

=> x = 0.8512750392674557, y = -14.910778757328066, z =
-18.99110692662728


cartToGeo(
geoToCart(2.475184854653805, 48.75171547649544,
24.16025940756962).x, // C.a.d. 0.8512750392674557
geoToCart(2.475184854653805, 48.75171547649544,
24.16025940756962).y, // C.a.d. -14.910778757328066
geoToCart(2.475184854653805, 48.75171547649544,
24.16025940756962).z // ...
);

=> u = 2.475184854653805, v = 4.769418326238336, w = 24.16025940756962

la valeur de v est donc fausse !

PS ces calculs doivent me servir pour un projet google earth. J'ai
posé des questions techniques sur le forum dédié afin d'éviter d'avoir
à faire ce genre de calculs, et, bien que le forum susnommé soit
infiniment plus actif que celui ci, personne ne daigne me répondre !
Un grand merci donc.

Patrick V

unread,
Apr 1, 2009, 1:16:00 PM4/1/09
to
ccur...@gmail.com a écrit :

> la valeur de v est donc fausse !

Ben oui, tu sembles utiliser des degrés alors que les calculs sont en
radians...

Jacques L'helgoualc'h

unread,
Apr 1, 2009, 1:24:43 PM4/1/09
to

Bah non,

? (48.75171547649544 - 4.769418326238336)/Pi
13.999999999999999...

ça fait donc une « erreur » de ~ 14 * Pi : c'est la valeur initiale de v
qui n'est pas entre 0 et 2*Pi.
--
Jacques L'helgoualc'h

0 new messages