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

Interfejs Geospatial API wykorzystuje dane 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 niewielkimi lub bez przeszkód nad głową interfejs Geospatial API może używać dostępnych danych o lokalizacji GPS, aby generować transformacje geoprzestrzenne z wysoką dokładnością.

Przed rozpoczęciem sesji AR możesz określić dostępność VPS w danej pozycji poziomej i wykorzystać ją do tworzenia bardziej szczegółowych funkcji, np. wyświetlania przycisku „Wejdź do AR” tylko wtedy, gdy VPS jest dostępny.

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 korzystanie z AR zależy od zasięgu VPS, możesz użyć GARSession#checkVPSAvailabilityAtCoordinate:completionHandler:, aby uzyskać GARVPSAvailabilityFuture, czyli zadanie asynchroniczne, które sprawdza dostępność VPS w danej pozycji poziomej. Gdy masz GARVPSAvailabilityFuture, możesz uzyskać jego wynik za pomocą metody pollingu lub wywołania zwrotnego.

Wyniki ankiety

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 funkcji GARVPSAvailabilityFuture.result.

Możesz nadal sprawdzać GARFuture.state, aż zadanie zostanie ukończone.

Uzyskiwanie wyniku za pomocą wywołania zwrotnego

Wynik wywołania Future możesz też uzyskać za pomocą wywołania zwrotnego. Użyj właściwości GARSession#checkVPSAvailabilityAtCoordinate:completionHandler: i podaj wartość 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. Ze względu na równoległe wykonywanie wątków może się zdarzyć, że próba anulowania nie powiedzie się. Funkcja GARFuture#cancel zwraca wartość YES, jeśli próba się powiodła, a w przeciwnym razie – wartość NO.

Korzystanie z interfejsu Geospatial API bez pokrycia VPS

Interfejsu Geospatial API można też używać na obszarach, na których nie ma pokrycia VPS. W otoczeniu zewnętrznym z niewielką liczbą przeszkód nad głową lub bez nich GPS może wystarczyć do wygenerowania pozy z wysoką dokładnością.

Co dalej?