Nachdem Sie Ihre App-Einstellungen für die Verwendung der Geospatial API konfiguriert haben, können Sie Earth.getCameraGeospatialPose()
aufrufen, um ein GeospatialPose
-Objekt zu erhalten, das die raumbezogene Positionierung des Geräts für die Kamera im neuesten Frame beschreibt. Diese Haltung wird in einem Earth
-Objekt verwaltet und enthält die folgenden Informationen:
- Standort in Breiten- und Längengrad
- Höhe
- Eine Ausrichtung, die annähernd die Richtung des Nutzers im EUS-Koordinatensystem darstellt, mit X+ nach Osten, Y+ nach oben und Z+ nach Süden
Tracking-Status prüfen
Raumbezogene Werte sind nur gültig, wenn Earth.TrackingState
den Wert TrackingState.TRACKING
hat. Alle Geospatial API-Aufrufe müssen in einem Earth.TrackingState
-Steuerelementblock zusammengefasst sein.
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. }
Wenn aus Earth.TrackingState
nicht TrackingState.TRACKING
wird, kann Earth.TrackingState
TrackingState.PAUSED
oder TrackingState.STOPPED
sein. Wenn keine dieser Bedingungen erfüllt ist, prüfen Sie Earth.Earthstate
. Dadurch werden andere Fehlerstatus angezeigt, die das Tracking des Earth
-Objekts möglicherweise verhindern.
Für mehr Genauigkeit die Haltung anpassen
Wenn das Gerät in der Standardausrichtung aufrecht steht, sind die Neigungswinkel (X+) und Rollwinkel (Z+) aufgrund der natürlichen Ausrichtung mit dem AR-Tracking tendenziell präzise. Der Gierwinkel (Y+) kann jedoch je nach Verfügbarkeit der VPS-Daten und den zeitlichen Bedingungen am Standort variieren. Damit die App richtig funktioniert, müssen möglicherweise Anpassungen vorgenommen werden.
GeospatialPose.getOrientationYawAccuracy()
liefert eine Genauigkeitsschätzung für die Gierwinkel (Y+) für einen bestimmten GeospatialPose
. Die Giergenauigkeit der Ausrichtung ist eine Zahl, die den Radius des Konfidenzniveaus des 68. Perzentils um die von GeospatialPose.getEastUpSouthQuaternion()
zurückgegebenen Gierwinkel in Grad angibt. Mit anderen Worten: Es besteht eine Wahrscheinlichkeit von 68 %, dass der tatsächliche Gierwinkel von GeospatialPose
genau ist.
Größere Werte weisen auf eine geringere Genauigkeit hin. Wenn der geschätzte Gierwinkel beispielsweise 60 Grad und die Giergenauigkeit 10 Grad beträgt, besteht eine Wahrscheinlichkeit von 68 %, dass der tatsächliche Gierwinkel zwischen 50 und 70 Grad liegt.
Nächste Schritte
- Platzieren Sie einen raumbezogenen Anker, indem Sie seine räumliche Position abrufen.