Interfejs Geospatial API korzysta z kombinacji VPS i danych GPS do generowania bardzo dokładnych przekształceń geoprzestrzennych. Interfejsu API można używać w każdym miejscu, w którym urządzenie może określić swoją lokalizację:
- Na obszarach o niskiej dokładności sygnału GPS, takich jak przestrzenie wewnątrz budynków czy gęsty obszar miejski, interfejs API będzie wykorzystywać dane VPS do generowania przekształceń o dużej dokładności.
- W środowiskach zewnętrznych z niewielką liczbą przeszkód lub niewidocznymi z powietrza interfejs Geospatial API może wykorzystywać dostępne dane o lokalizacji GPS do tworzenia przekształceń geoprzestrzennych z dużą dokładnością.
Możesz określić dostępność VPS w danej pozycji w poziomie przed rozpoczęciem sesji AR i wykorzystać ją do stworzenia bardziej szczegółowych doświadczeń, na przykład do wyświetlania przycisku „Enter AR” tylko wtedy, gdy jest on dostępny.
Włącz interfejs ARCore API
Aby sprawdzić dostępność VPS, Twoja aplikacja musi włączyć interfejs ARCore API.
Sprawdź dostępność VPS w swojej aplikacji
Interfejsu Geospatial API można używać wszędzie tam, gdzie urządzenie może określić swoją lokalizację. Jeśli działanie AR zależy od zasięgu VPS, możesz użyć GARSession#checkVPSAvailabilityAtCoordinate:completionHandler:
, aby uzyskać GARVPSAvailabilityFuture
, czyli asynchroniczne zadanie, które sprawdza dostępność VPS w danej pozycji w poziomie.
Gdy już masz GARVPSAvailabilityFuture
, możesz uzyskać jego wynik przez odpytywanie lub oddzwanianie.
Przeprowadź ankietę
Użyj GARFuture.state
, aby uzyskać stan Future
. Istnieją 3 stany:
GARFutureStatePending
: operacja nie została jeszcze zakończona, więc nie jest znany żaden wynik.GARFutureStateCancelled
: operacja została anulowana przez użytkownikaGARFuture#cancel
. Zarejestrowane wywołanie zwrotne nigdy nie zostanie wykonane.GARFutureStateDone
: operacja została zakończona. Użyj funkcjiGARVPSAvailabilityFuture.result
, aby otrzymać wynik.
Możesz sprawdzać konto GARFuture.state
, dopóki zadanie nie zostanie ukończone.
Uzyskanie wyniku za pomocą wywołania zwrotnego
Wyniki działania Future
możesz też uzyskać, wywołując połączenie zwrotne. Użyj GARSession#checkVPSAvailabilityAtCoordinate:completionHandler:
i podaj completionHandler
. Ta funkcja completionHandler
zostanie wywołana w wątku głównym wkrótce po tym, jak Future
będzie mieć stan GARFutureStateDone
.
Anuluj umowę Future
Użyj GARFuture#cancel
, aby spróbować anulować Future
. Z powodu równoległości wątków próba anulowania może się nie udać.
GARFuture#cancel
zwraca wartość YES
, jeśli próba zakończyła się sukcesem. W przeciwnym razie zwraca wartość NO
.
Używaj interfejsu Geospatial API bez zasięgu VPS
Interfejsu Geospatial API można też używać na obszarach, które nie są objęte zasięgiem VPS. W warunkach na zewnątrz, w których występuje niewiele przeszkód z powietrza lub nie ma ich wcale, do wykonania pozycji z dużą dokładnością GPS może wystarczyć sygnał GPS.
Co dalej
- Określ położenie geoprzestrzenne kamery urządzenia, aby określić dokładną lokalizację urządzenia użytkownika w świecie rzeczywistym.