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 przezGARFuture#cancel
. Nie będzie też wykonywane żadne połączenie zwrotne.GARFutureStateDone
: operacja została zakończona. Aby uzyskać wynik, użyj funkcjiGARVPSAvailabilityFuture.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?
- Uzyskaj informacje o pozycji geograficznej z kamery urządzenia, aby określić dokładną lokalizację urządzenia użytkownika w świecie rzeczywistym.