Skonfiguruj ustawienia aplikacji, aby mogła korzystać z interfejsu Geospatial API.
Wymagania wstępne
Zanim przejdziesz dalej, upewnij się, że rozumiesz podstawowe zagadnienia związane z rozszerzoną rzeczywistością oraz że wiesz, jak skonfigurować sesję ARCore.
Jeśli chcesz uruchomić przykładową aplikację, która demonstruje opisane tutaj funkcje, zapoznaj się z samouczkiem ARCore Geospatial na iOS.
Więcej informacji o Geospatial API znajdziesz w artykule Wprowadzenie do Geospatial API.
Jeśli dopiero zaczynasz programować z użyciem ARCore, w artykule Pierwsze kroki znajdziesz informacje o wymaganiach dotyczących oprogramowania i sprzętu, wymaganiach wstępnych oraz innych kwestii dotyczących używanych przez Ciebie platform.
Włączanie interfejsu ARCore API
Zanim użyjesz w aplikacji systemu pozycjonowania wizualnego (VPS), musisz najpierw włączyć ARCore API w nowym lub istniejącym projekcie Google Cloud. Ta usługa odpowiada za hostowanie, przechowywanie i rozwiązywanie kotwic geoprzestrzennych.
Preferowana jest autoryzacja bezkluczowa, ale obsługiwana jest też autoryzacja za pomocą klucza API.
Dodawanie wymaganych bibliotek do aplikacji
Po autoryzowaniu aplikacji do wywoływania interfejsu ARCore API musisz dodać biblioteki, aby włączyć w niej funkcje geoprzestrzenne.
ZaktualizujPodfile
swojej aplikacji, dodając do niej pakiet ARCore SDK i obsługę wersji na iOS. Aby to zrobić:
Dodaj do projektu
Podfile
projektuplatform
ipod
:platform :ios, '11.0' pod 'ARCore/Geospatial', '~> 1.46.0'
Możesz też określić
platform :ios, '10.0'
, jeśli chcesz obsługiwać iOS 10, ale pamiętaj, że interfejs Geospatial API będzie działać tylko w czasie działania w systemie iOS w wersji 11 lub nowszej.Otwórz okno Terminala i w folderze, w którym znajduje się projekt Xcode, uruchom polecenie
pod install
.Spowoduje to wygenerowanie pliku
.xcworkspace
, którego użyjesz do kompilacji i uruchomienia aplikacji.
Upewnij się, że środowisko programistyczne spełnia wymagania pakietu ARCore SDK opisane w artykule Szybki start.
Włączanie funkcji geoprzestrzennych w konfiguracji sesji
Sprawdzanie zgodności z urządzeniami
Nie wszystkie urządzenia, które obsługują ARCore, obsługują też interfejs Geospatial API, jak opisano w przewodniku szybkiego startu.
Użyj GARSession.isGeospatialModeSupported:
, aby sprawdzić urządzenie w ten sposób:
if (![self.garSession isGeospatialModeSupported:GARGeospatialModeEnabled]) {
[self setErrorStatus:@"GARGeospatialModeEnabled is not supported on this device."];
return;
}
GARSessionConfiguration *configuration = [[GARSessionConfiguration alloc] init];
configuration.geospatialMode = GARGeospatialModeEnabled;
[self.garSession setConfiguration:configuration error:&error];
if (error) {
[self setErrorStatus:[NSString stringWithFormat:@"Failed to configure GARSession: %d",
(int)error.code]];
return;
}
Prośba o dostęp do lokalizacji w czasie działania aplikacji
Aplikacja musi poprosić o te uprawnienia dostępu do lokalizacji w czasie działania przed skonfigurowaniem sesji:
kCLAuthorizationStatusAuthorizedWhenInUse
CLAccuracyAuthorizationFullAccuracy
(dotyczy wersji iOS ≥ 14)
Sprawdzanie dostępności danych geoprzestrzennych w bieżącej lokalizacji urządzenia
Ponieważ interfejs Geospatial API do określania przekształcenia geoprzestrzennego wykorzystuje kombinację VPS i GPS, można go używać, jeśli urządzenie jest w stanie 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 typowych warunkach VPS może zapewniać dokładność pozycjonowania do około 5 metrów i dokładność obrotu do 5 stopni. Użyj GARSession.checkVPSAvailabilityAtCoordinate:completionHandler:
, aby określić, czy dana lokalizacja ma zasięg 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 transformacji o wysokiej dokładności.
Co dalej?
- Uzyskaj transformację geoprzestrzenną aparatu urządzenia, aby określić dokładną lokalizację urządzenia użytkownika w świecie rzeczywistym.
- Sprawdź dostępność VPS w danej lokalizacji urządzenia.