Sprawdź dostępność VPS w bieżącej lokalizacji urządzenia

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 przez GARFuture#cancel. Nie będzie też wykonywane żadne połączenie zwrotne.
  • GARFutureStateDone: operacja została zakończona. Aby uzyskać wynik, użyj GARVPSAvailabilityFuture.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?