Raumbezogene Haltung der Gerätekamera erfassen

Nachdem Sie die Einstellungen Ihrer App für die Verwendung der Geospatial API konfiguriert haben, können Sie Earth.getCameraGeospatialPose() aufrufen, um einen GeospatialPose zu erhalten, der die geografische Positionierung des Geräts für die Kamera im letzten Frame beschreibt. Diese Pose, die in einem Earth-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

Georeferenzierte Werte sind nur gültig, solange Earth.TrackingState TrackingState.TRACKING ist. Alle Geospatial API-Aufrufe müssen in einem Earth.TrackingState-Steuerblock eingeschlossen sein.

if (earth != null && earth.getTrackingState() == TrackingState.TRACKING) {
  GeospatialPose cameraGeospatialPose = earth.getCameraGeospatialPose();
  // cameraGeospatialPose contains geodetic location, rotation, and confidences values.
}
if (earth.trackingState == TrackingState.TRACKING) {
  val cameraGeospatialPose = earth.cameraGeospatialPose
  // cameraGeospatialPose contains geodetic location, rotation, and confidences values.
}

Wenn Earth.TrackingState nicht zu TrackingState.TRACKING wird, kann Earth.TrackingState TrackingState.PAUSED oder TrackingState.STOPPED sein. Wenn keine dieser Bedingungen erfüllt ist, klicken Sie auf Earth.Earthstate. Daraufhin werden andere Fehlerstatus angezeigt, die das Tracking des Earth-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.

GeospatialPose.getOrientationYawAccuracy() gibt eine Schätzung der Genauigkeit für die Gierwinkel (Y+) für eine bestimmte GeospatialPose an. Die Genauigkeit des Gierwinkels ist eine Zahl, die den Radius in Grad des Konfidenzniveaus des 68. Perzentils um die von GeospatialPose.getEastUpSouthQuaternion() zurückgegebenen Gierwinkel beschreibt. Mit anderen Worten: Es besteht eine Wahrscheinlichkeit von 68 %, dass der wahre Gierwinkel von GeospatialPose 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.