Nachdem Sie die Einstellungen Ihrer App für die Verwendung der Geospatial API konfiguriert haben, können Sie ArEarth_getCameraGeospatialPose
aufrufen, um einen ArGeospatialPose
zu erhalten, der die geografische Positionierung des Geräts für die Kamera im letzten Frame beschreibt. Diese Pose, die in einem ArEarth
-Objekt verwaltet wird, enthält die folgenden Informationen:
- Standort, ausgedrückt in Breiten- und Längengrad
- Höhe
- Eine Orientierung, die der Richtung entspricht, in der sich der Nutzer im EUS-Koordinatensystem befindet, wobei X+ nach Osten, Y+ nach oben und Z+ nach Süden zeigt
Tracking-Status prüfen
Geospatiale Werte sind nur gültig, solange ArEarth.ArTrackingState
ArTrackingState.AR_TRACKING_STATE_TRACKING
und ArEarth.ArEarthState
AR_EARTH_STATE_ENABLED
ist. Alle Geospatial API-Aufrufe müssen in einem ArEarth.ArTrackingState
-Steuerblock eingeschlossen sein.
if (ar_earth != NULL) { ArTrackingState earth_tracking_state = AR_TRACKING_STATE_STOPPED; ArTrackable_getTrackingState(ar_session, (ArTrackable*)ar_earth, &earth_tracking_state); if (earth_tracking_state == AR_TRACKING_STATE_TRACKING) { ArGeospatialPose* camera_geospatial_pose = NULL; ArGeospatialPose_create(ar_session, &camera_geospatial_pose); ArEarth_getCameraGeospatialPose(ar_session, ar_earth, camera_geospatial_pose); // camera_geospatial_pose contains geodetic location, rotation, and // confidences values. ArGeospatialPose_destroy(camera_geospatial_pose); } }
Wenn ArEarth.ArTrackingState
nicht zu ArTrackingState.AR_TRACKING_STATE_TRACKING
wird, kann ArEarth.ArTrackingState
AR_TRACKING_STATE_PAUSED
oder AR_TRACKING_STATE_STOPPED
sein. Wenn keine dieser Bedingungen erfüllt ist, klicken Sie auf ArEarth.ArEarthState
. Daraufhin werden andere Fehlerstatus angezeigt, die das Tracking des ArEarth
-Objekts verhindern können.
Pose für mehr Genauigkeit anpassen
Wenn sich das Gerät in der Standardausrichtung befindet, sind die Neigungs- (X+) und Rollwinkel (Z+) aufgrund der natürlichen Ausrichtung mit dem AR-Tracking in der Regel präzise. Die Abweichungswinkel (Y+) können jedoch je nach Verfügbarkeit von VPS-Daten und zeitlichen Bedingungen am Standort variieren. Möglicherweise müssen Sie Anpassungen an Ihrer App vornehmen, um die Genauigkeit zu verbessern.
ArGeospatialPose_getOrientationYawAccuracy()
gibt eine Schätzung der Genauigkeit für die Gierwinkel (Y+) für eine bestimmte ArGeospatialPose
an. Die Genauigkeit des Gierwinkels ist eine Zahl, die den Radius in Grad des Konfidenzniveaus des 68. Perzentils um die von ArGeospatialPose_getEastUpSouthQuaternion()
zurückgegebenen Gierwinkel beschreibt. Mit anderen Worten: Es besteht eine Wahrscheinlichkeit von 68 %, dass der wahre Gierwinkel von ArGeospatialPose
korrekt ist.
Je höher der Wert, desto ungenauer ist die Vorhersage. Wenn der geschätzte Gierwinkel beispielsweise 60 Grad beträgt und die Giergenauigkeit 10 Grad, liegt der wahre Gierwinkel mit einer Wahrscheinlichkeit von 68% zwischen 50 und 70 Grad.
Nächste Schritte
- Platzieren Sie einen geospatialen Anker, indem Sie die raumbezogene Pose des Ankers abrufen.