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 ein GeospatialPose-Objekt abzurufen, das die raumbezogene Standortbestimmung 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

Raumbezogene Werte sind nur gültig, wenn Earth.TrackingState den Wert TrackingState.TRACKING hat. Achten Sie darauf, alle Geospatial API-Aufrufe in einem Earth.TrackingState-Kontrollblock zu kapseln.

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.

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.

GeospatialPose.getOrientationYawAccuracy() bietet eine Genauigkeitsschätzung für die Gierwinkel (Y+) für einen bestimmten GeospatialPose. Die Gierwinkel-Genauigkeit 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 des GeospatialPose genau ist.

Größere Werte weisen auf eine geringere Genauigkeit hin. Wenn der geschätzte Gierwinkel beispielsweise 60 Grad beträgt 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