Insérer modifier les coordonnées caméra pour qu'elles soit égales aux coordonnées GPS

Toutes les questions sur le développement Mobile, y compris la partie script.
jferenergies
Messages : 13
Inscription : 16 Avr 2019 09:53

Insérer modifier les coordonnées caméra pour qu'elles soit égales aux coordonnées GPS

Message par jferenergies » 24 Avr 2019 11:09

Bonjour,

J'ai effectué un programme pour une application RA où j'arrive à connaître les coordonnées GPS de mon smartphone en temps réel. De plus, j'ai converti ces coordonnées géographiques (Mercator) en coordonnées cartésiennes (WGS84) afin de les intégrer au mieux dans le logiciel unity. Cependant, je n'arrive pas à ce que la caméra aient les mêmes coordonnées (x,y,z) que mon smartphone, comment faire ? De plus je voudrais que ces coordonnées se mettent à jour en même temps que les coordonnées du smartphone.

Cdt,

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6185
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: Insérer modifier les coordonnées caméra pour qu'elles soit égales aux coordonnées GPS

Message par boubouk50 » 24 Avr 2019 13:31

J'ai compris que tu souhaites utiliser les coordonnées GPS dans Unity.
Les coordonnées GPS sont des coordonnées sphériques et dans Unity ce n'est qu'une repère orthonormé. Tu dois donc sphère une conversion d'un repère à un autre. Comme le repère d'Unity est libre, tu peux également adapter à ta sauce l'origine de celle-ci.
Essaie cela:

Code : Tout sélectionner

 public float latitude;
 public float longitude;
 transform.position = Quaternion.AngleAxis(longitude, -Vector3.up) * Quaternion.AngleAxis(latitude, -Vector3.right) * new Vector3(0,0,1);
Tu peux aussi y inclure une translation pour changer l'origine, voire une échelle pour la taille.

source: https://answers.unity.com/questions/923 ... nates.html
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

jferenergies
Messages : 13
Inscription : 16 Avr 2019 09:53

Re: Insérer modifier les coordonnées caméra pour qu'elles soit égales aux coordonnées GPS

Message par jferenergies » 24 Avr 2019 15:18

Bonjour,

Merci pour votre réponse. Cependant j'ai déja effectué ce changement de repère avec les formules suivantes :

var a = 6378137.0f; // Demi Grand Axe (m)
var f = 1 / 298.257222101f; //applatissement
var b = 6356752.314140356f; // Demi Petit Axe (m)
var e = 0.081819190842622f;
var W1 = Mathf.Sqrt(1 - Mathf.Pow(e, 2) * Mathf.Sin(dLatitude));
var W2 = Mathf.Sqrt(1 - Mathf.Pow(e, 2) * Mathf.Sin(sLatitude));
var N1 = a / W1;
var N2 = a / W2;
var X1 = (N1 + dAltitude) * Mathf.Cos(dLatitude) * Mathf.Cos(dLongitude); // X de l'appareil
var X2 = (N2 + sAltitude) * Mathf.Cos(sLatitude) * Mathf.Cos(sLongitude); // X de l'objet
var Y1 = (N1 + dAltitude) * Mathf.Cos(dLatitude) * Mathf.Sin(dLongitude);
var Y2 = (N2 + sAltitude) * Mathf.Cos(sLatitude) * Mathf.Sin(sLongitude);
var Z1 = (N1 * (1 - Mathf.Pow(e, 2)) + dAltitude) * Mathf.Sin(dLatitude);
var Z2 = (N2 * (1 - Mathf.Pow(e, 2)) + sAltitude) * Mathf.Sin(sLatitude);
distance = Mathf.Sqrt(Mathf.Pow((X1 - X2), 2) + Mathf.Pow((Y1 - Y2), 2) + Mathf.Pow((Z1 - Z2), 2)); //distance entre l'objet et l'appareil

Ce que je cherche désormais à faire ca serait X1 = Xcaméra, Y1 = Ycaméra et Z1 = Zcaméra.

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6185
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: Insérer modifier les coordonnées caméra pour qu'elles soit égales aux coordonnées GPS

Message par boubouk50 » 24 Avr 2019 16:38

Quelle que soit la formule est le même:
ton smartphone à une position GPS. Ton monde virtuel à des coordonnées d'un repère orthonormé.
Tu dois donc convertir tes coordonnées GPS vers des coordonnées d'un repère orthonormé (quel qu'il soit) et faire en sorte qu'il corresponde au monde virtuel.
En gros, il faut que la conversion inverse fonctionne. Ton monde virtuel doit aussi correspondre aux coordonnées GPS.
Si ton objet réel est à la position GPS Lt, Lg, une fois converti il sera à la position X,Y dans Unity.
Maintenant, pour toute coordonnée GPS du monde, en la convertissant, il se retrouvera au bon endroit dans Unity.

La conversion, tu la fait comme tu veux, tu es libre puisque c'est à toi de définir comment cela doit être affiché dans Unity. Il existe surement des algos capable de la faire actuellement, pour mettre sur carte par exemple, ou aplanir des données sphériques.
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

jferenergies
Messages : 13
Inscription : 16 Avr 2019 09:53

Re: Insérer modifier les coordonnées caméra pour qu'elles soit égales aux coordonnées GPS

Message par jferenergies » 25 Avr 2019 08:35

Bonjour,
Merci de votre réponse mais je pense que vous ne comprenez pas mon problème qui est peut être "futile" mais très contrariant pour moi. Mon objet possède des coordonnées cartésiennes (X,Y,Z) sur unity. Cependant, quand je démarre mon application RA, il m'est impossible de voir cet objet. Je pense que cela vient du fait que ma caméra est toujours fixée aux coordonnées (0,0,0). Je voudrais que ma caméra ait les mêmes coordonnées GPS (converti dans le même système que mon objet). Comment faire pour cela ?
Cdt,

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6185
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: Insérer modifier les coordonnées caméra pour qu'elles soit égales aux coordonnées GPS

Message par boubouk50 » 25 Avr 2019 14:43

La caméra devrait être dirigée par les coordonnées GPS, non? Et l'objet augmenté avoir une coordonnée fixe?
Soit je pige pas ce que vous voulez faire: augmenter un objet en fonction de données GPS, soit je pige pas votre demande.
Pour moi, l'objet a une coordonnée fixe sous Unity correspondant à une coordonnée GPS du vrai monde, et la caméra est dirigée en temps-réel via les infos directes GPS et d’orientation.
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

jferenergies
Messages : 13
Inscription : 16 Avr 2019 09:53

Re: Insérer modifier les coordonnées caméra pour qu'elles soit égales aux coordonnées GPS

Message par jferenergies » 25 Avr 2019 14:50

Vous avez compris ma demande sauf que je n'arrive pas à mettre en place la caméra afin qu'elle suive mon orientation et mes coordonnées GPS... la distance entre l'objet et la caméra reste constante

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6185
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: Insérer modifier les coordonnées caméra pour qu'elles soit égales aux coordonnées GPS

Message par boubouk50 » 25 Avr 2019 14:56

et ta caméra reste fixe?
ce serait soit le rafraîchissement des données GPS, soit l'algorithme de conversion soit un mauvais paramétrage des éléments de la scène alors.(Static, hiérarchie, etc)
Je peux avoir la configuration de l'objet augmenté et de la caméra stp?
Et le code de conversion des données GPS pour la caméra?
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

Répondre

Revenir vers « Développement plateformes mobile Iphone et Android »