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

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żytkownika GARFuture#cancel. Zarejestrowane wywołanie zwrotne nigdy nie zostanie wykonane.
  • GARFutureStateDone: operacja została zakończona. Użyj funkcji GARVPSAvailabilityFuture.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