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 Position, die in einem Earth-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

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.

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 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. Es werden weitere Fehlerstatus angezeigt, die das Tracking des Objekts Earth verhindern.

Pose für mehr Genauigkeit anpassen

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. 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 tatsächliche Gierwinkel des GeospatialPose genau ist.

Je höher der Wert, desto ungenauer ist die Schätzung. 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