Une fois que vous avez configuré les paramètres de votre application pour utiliser l'API Geospatial, vous pouvez appeler Earth.getCameraGeospatialPose()
pour obtenir un GeospatialPose
qui décrit le positionnement géospatial de l'appareil pour l'appareil photo dans la dernière image. Cette posture, gérée dans un objet Earth
, contient les informations suivantes:
- Position, exprimée en latitude et longitude
- Altitude
- Orientation approximative de la direction vers laquelle l'utilisateur est orienté dans le système de coordonnées EUS, avec X+ pointant vers l'est, Y+ pointant vers le haut et Z+ pointant vers le sud
Vérifier l'état du suivi
Les valeurs géospatiales ne sont valides que si Earth.TrackingState
est défini sur TrackingState.TRACKING
. Veillez à encapsuler tous les appels d'API Geospatial dans un bloc de contrôle Earth.TrackingState
.
Java
if (earth != null && earth.getTrackingState() == TrackingState.TRACKING) { GeospatialPose cameraGeospatialPose = earth.getCameraGeospatialPose(); // cameraGeospatialPose contains geodetic location, rotation, and confidences values. }
Kotlin
if (earth.trackingState == TrackingState.TRACKING) { val cameraGeospatialPose = earth.cameraGeospatialPose // cameraGeospatialPose contains geodetic location, rotation, and confidences values. }
Si Earth.TrackingState
ne devient pas TrackingState.TRACKING
, Earth.TrackingState
peut être TrackingState.PAUSED
ou TrackingState.STOPPED
. Si aucune de ces conditions n'est remplie, vérifiez Earth.Earthstate
, qui affiche d'autres états d'erreur pouvant empêcher le suivi de l'objet Earth
.
Ajuster la posture pour plus de précision
Lorsque l'appareil est à la verticale dans l'orientation par défaut, les angles d'inclinaison (X+) et de roulis (Z+) ont tendance à être précis en raison de l'alignement naturel avec le suivi en RA. Cependant, les angles du lacet (Y+) peuvent varier en fonction de la disponibilité des données VPS et des conditions temporelles du site. Votre application devra peut-être effectuer des ajustements pour plus de précision.
GeospatialPose.getOrientationYawAccuracy()
fournit une estimation de la précision des angles du lacet (Y+) pour un GeospatialPose
donné. La précision de la rotation de l'orientation est un nombre qui décrit le rayon, en degrés, du niveau de confiance au 68e centile autour des angles de rotation renvoyés par GeospatialPose.getEastUpSouthQuaternion()
. En d'autres termes, il y a 68 % de chances que l'angle de lacet réel de GeospatialPose
soit précis.
Plus la valeur est élevée, plus la précision est faible. Par exemple, si l'angle de lacet estimé est de 60 degrés et que la précision du lacet est de 10 degrés, il y a 68 % de chances que l'angle de lacet réel soit compris entre 50 et 70 degrés.
Étape suivante
- Placez une ancre géospatiale en obtenant la position géospatiale de l'ancre.