Interfejs Geospatial API używa kombinacji danych VPS i GPS do generowania dokładnych transformacji geoprzestrzennych. Interfejsu API można używać w dowolnym miejscu, w którym urządzenie może określić swoją lokalizację:
- W obszarach o niskiej dokładności GPS, takich jak wnętrza budynków i gęsto zaludnione obszary miejskie, interfejs API będzie korzystać z zasięgu VPS, aby generować transformacje o wysokiej dokładności.
- W środowiskach zewnętrznych z niewielką liczbą przeszkód nad głową interfejs Geospatial API może używać dostępnych danych o lokalizacji GPS, aby generować transformacje geoprzestrzenne z dużą dokładnością.
Możesz określić dostępność VPS w danej pozycji poziomej przed rozpoczęciem sesji AR i wykorzystać ją do tworzenia bardziej szczegółowych doświadczeń, na przykład do pokazania opcji „Enter AR” (Tryb AR). tylko wtedy, gdy dostępny jest VPS.
Włącz interfejs ARCore API
Aby sprawdzić dostępność VPS, aplikacja musi mieć włączony interfejs ARCore API.
Sprawdzanie dostępności usługi VPS w aplikacji
Interfejsu Geospatial API można używać w dowolnym miejscu, w którym urządzenie może określić swoją lokalizację. Jeśli działanie AR zależy od pokrycia VPS, możesz użyć narzędzia GARSession#checkVPSAvailabilityAtCoordinate:completionHandler:
, aby uzyskać GARVPSAvailabilityFuture
– asynchroniczne zadanie, które sprawdza dostępność VPS w danej pozycji poziomej.
Gdy już masz GARVPSAvailabilityFuture
, możesz uzyskać wynik przez ankietę lub wywołanie zwrotne.
Przeprowadź ankietę
Aby uzyskać stan Future
, użyj polecenia GARFuture.state
. Istnieją 3 stany:
GARFutureStatePending
: operacja nie została jeszcze ukończona, więc nie ma jeszcze żadnych wyników.GARFutureStateCancelled
: operacja została anulowana przezGARFuture#cancel
. Nie będzie też wykonywane żadne połączenie zwrotne.GARFutureStateDone
: operacja została zakończona. Aby uzyskać wynik, użyjGARVPSAvailabilityFuture.result
.
Możesz sprawdzać pole GARFuture.state
, dopóki zadanie nie zostanie ukończone.
Uzyskanie wyniku przez wywołanie zwrotne
Wynik wywołania Future
możesz też uzyskać za pomocą wywołania zwrotnego. Użyj aplikacji GARSession#checkVPSAvailabilityAtCoordinate:completionHandler:
i podaj completionHandler
. Funkcja completionHandler
zostanie wywołana w wątku głównym wkrótce po tym, jak stan Future
będzie wynosił GARFutureStateDone
.
Anuluj: Future
Aby anulować Future
, użyj GARFuture#cancel
. Z powodu równoległości wątków może się zdarzyć, że próba anulowania się nie powiedzie.
Funkcja GARFuture#cancel
zwraca wartość YES
, jeśli ta próba się powiodła, a w przeciwnym razie – wartość NO
.
Używaj interfejsu Geospatial API bez zasięgu VPS
Interfejsu Geospatial API można też używać na obszarach, które nie mają zasięgu VPS. Na zewnątrz, gdzie jest niewiele przeszkód z góry, lub bez przeszkód, do wygenerowania pozycji z dużą dokładnością wystarczy GPS.
Co dalej?
- Uzyskaj pozycję geoprzestrzenną kamery urządzenia, aby określić dokładną lokalizację urządzenia użytkownika w świecie rzeczywistym.