Die Geospatial API verwendet eine Kombination aus VPS- und GPS-Daten, um hochpräzise raumbezogene Transformationen zu generieren. Die API kann überall verwendet werden, wo das Gerät seinen Standort ermitteln kann:
- In Gebieten mit geringer GPS-Genauigkeit, z. B. in Innenräumen und dicht bebauten städtischen Umgebungen, setzt die API auf eine VPS-Abdeckung, um hochpräzise Transformationen zu generieren.
- In Außenumgebungen mit wenigen oder keinen Hindernissen durch den Kopf kann die Geospatial API die verfügbaren GPS-Standortdaten verwenden, um raumbezogene Transformationen mit hoher Genauigkeit zu generieren.
Sie können die Verfügbarkeit von VPS an einer bestimmten horizontalen Position ermitteln, bevor die AR-Sitzung beginnt, und sie verwenden, um spezifischere Funktionen zu erstellen, z. B. um die Schaltfläche „AR aktivieren“ nur dann einzublenden, wenn VPS verfügbar ist.
ARCore API aktivieren
Ihre App muss die ARCore API aktivieren, um die Verfügbarkeit von VPS zu prüfen.
Verfügbarkeit von VPS in Ihrer App prüfen
Die Geospatial API kann überall verwendet werden, wo das Gerät seinen Standort ermitteln kann. Wenn Ihre AR-Nutzung von der VPS-Abdeckung abhängt, können Sie GARSession#checkVPSAvailabilityAtCoordinate:completionHandler:
verwenden, um eine GARVPSAvailabilityFuture
zu erhalten. Das ist eine asynchrone Aufgabe, die die VPS-Verfügbarkeit an einer bestimmten horizontalen Position prüft.
Sobald Sie die GARVPSAvailabilityFuture
haben, können Sie das Ergebnis durch Abfragen oder über einen Callback abrufen.
Ergebnis abfragen
Verwenden Sie GARFuture.state
, um den Status von Future
abzurufen. Es gibt drei verschiedene Status:
GARFutureStatePending
: Der Vorgang ist noch nicht abgeschlossen, sodass kein Ergebnis bekannt ist.GARFutureStateCancelled
: Der Vorgang wurde vonGARFuture#cancel
abgebrochen. Registrierte Callbacks werden nie aufgerufen.GARFutureStateDone
: Der Vorgang ist abgeschlossen. Verwenden SieGARVPSAvailabilityFuture.result
, um das Ergebnis abzurufen.
Sie können die Suche in GARFuture.state
fortsetzen, bis die Aufgabe abgeschlossen ist.
Ergebnis über einen Callback abrufen
Sie können das Ergebnis eines Future
auch über einen Callback abrufen. Verwenden Sie GARSession#checkVPSAvailabilityAtCoordinate:completionHandler:
und geben Sie eine completionHandler
an. Diese completionHandler
wird im Main-Thread aufgerufen, kurz nachdem Future
den Status GARFutureStateDone
hat.
Future
abbrechen
Versuchen Sie mit GARFuture#cancel
, Future
abzubrechen. Aufgrund der Threadparallelität ist es möglich, dass Ihr Abbruchversuch nicht erfolgreich ist.
GARFuture#cancel
gibt YES
zurück, wenn dieser Versuch erfolgreich war, andernfalls NO
.
Geospatial API ohne VPS-Abdeckung verwenden
Die Geospatial API kann auch in Regionen verwendet werden, in denen keine VPS-Abdeckung vorliegt. In Außenbereichen mit wenigen oder gar keinen Hindernissen über dem Kopf reicht das GPS unter Umständen aus, um eine Position mit hoher Genauigkeit zu erstellen.
Nächste Schritte
- Räumliche Position der Gerätekamera festlegen, um den genauen Standort des Geräts in der realen Welt zu bestimmen