Nachdem Sie die Einstellungen Ihrer App für die Verwendung der Geospatial API konfiguriert haben, können Sie ArEarth_getCameraGeospatialPose
aufrufen, um ein ArGeospatialPose
-Objekt abzurufen, das die raumbezogene Standortbestimmung des Geräts für die Kamera im letzten Frame beschreibt. Diese Position, die in einem ArEarth
-Objekt verwaltet wird, enthält die folgenden Informationen:
- Standort in Breiten- und Längengrad
- Höhe
- Eine Ausrichtung, die ungefähr der Richtung entspricht, die der Nutzer im EUS-Koordinatensystem sieht, wobei X+ nach Osten, Y+ nach oben und Z+ nach Süd zeigt
Tracking-Status prüfen
Raumbezogene Werte sind nur gültig, wenn ArEarth.ArTrackingState
den Wert ArTrackingState.AR_TRACKING_STATE_TRACKING
und ArEarth.ArEarthState
den Wert AR_EARTH_STATE_ENABLED
hat. Achten Sie darauf, alle Geospatial API-Aufrufe in einem ArEarth.ArTrackingState
-Kontrollblock zu kapseln.
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); } }
Wird ArEarth.ArTrackingState
nicht zu ArTrackingState.AR_TRACKING_STATE_TRACKING
, kann ArEarth.ArTrackingState
den Wert AR_TRACKING_STATE_PAUSED
oder AR_TRACKING_STATE_STOPPED
haben. Wenn keine dieser Bedingungen erfüllt ist, klicken Sie auf ArEarth.ArEarthState
. Es werden weitere Fehlerstatus angezeigt, die das Tracking des Objekts ArEarth
verhindern.
Passe die Pose für mehr Genauigkeit an
Wenn das Gerät in der Standardausrichtung aufrecht steht, sind die Neigungs- (X+) und Rollwinkel (Z+) aufgrund der natürlichen Ausrichtung beim AR-Tracking in der Regel präzise. Der Gierwinkel (Y+) kann jedoch je nach Verfügbarkeit der VPS-Daten und zeitlichen Bedingungen am Standort variieren. Ihre App muss möglicherweise Anpassungen vornehmen, um die Genauigkeit zu verbessern.
ArGeospatialPose_getOrientationYawAccuracy()
bietet eine Genauigkeitsschätzung für die Gierwinkel (Y+) für einen bestimmten ArGeospatialPose
. Die Gierwinkel-Genauigkeit ist eine Zahl, die den Radius des Konfidenzniveaus des 68. Perzentils um die von ArGeospatialPose_getEastUpSouthQuaternion()
zurückgegebenen Gierwinkel in Grad angibt. Mit anderen Worten: Es besteht eine Wahrscheinlichkeit von 68 %, dass der tatsächliche Gierwinkel des ArGeospatialPose
genau ist.
Größere Werte weisen auf eine geringere Genauigkeit hin. Wenn der geschätzte Gierwinkel beispielsweise 60 Grad und die Gierwinkel-Genauigkeit 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 raumbezogene Position abrufen.