Włączanie interfejsu Geospatial API dla aplikacji na iOS

Skonfiguruj ustawienia aplikacji, aby umożliwić korzystanie z interfejsu Geospatial API.

Wymagania wstępne

Zanim przejdziesz dalej, upewnij się, że znasz podstawowe pojęcia związane z AR i wiesz, jak skonfigurować sesję ARCore.

Jeśli chcesz uruchomić przykładową aplikację, która prezentuje opisane tu funkcje, przeczytaj krótkie wprowadzenie do ARCore Geospatial na iOS.

Więcej informacji o interfejsie Geospatial API znajdziesz we wprowadzeniu do interfejsu Geospatial API.

Jeśli nie masz doświadczenia w programowaniu z ARCore, przeczytaj Pierwsze kroki, aby uzyskać informacje o wymaganiach dotyczących oprogramowania i sprzętu, wymagań wstępnych oraz innych informacji specyficznych dla używanych przez Ciebie platform.

Włącz interfejs ARCore API

Zanim użyjesz w swojej aplikacji systemu VPS (Visual Positioning System, VPS), musisz najpierw włączyć interfejs ARCore API w nowym lub istniejącym projekcie Google Cloud. Ta usługa odpowiada za hostowanie, przechowywanie i rozstrzyganie kotwic geoprzestrzennych.

Preferowana jest autoryzacja bez klucza, ale obsługiwana jest również autoryzacja klucza interfejsu API.

Dodaj wymagane biblioteki do aplikacji

Po autoryzacji aplikacji do wywoływania interfejsu ARCore API musisz dodać biblioteki, aby włączyć w niej funkcje geoprzestrzenne.

Zaktualizuj plik Podfile swojej aplikacji, aby zawierał pakiet ARCore SDK i obsługiwaną wersję na iOS. Aby to zrobić:

  1. Dodaj platform i pod do Podfile projektu:

    platform :ios, '11.0'
    pod 'ARCore/Geospatial', '~> 1.41.0'
    

    Możesz też określić platform :ios, '10.0', jeśli chcesz obsługiwać iOS 10. Pamiętaj jednak, że interfejs Geospatial API będzie działać tylko w czasie działania w iOS w wersji 11 lub nowszej.

  2. Otwórz okno terminala i uruchom pod install z folderu, w którym znajduje się projekt Xcode.

    Spowoduje to wygenerowanie pliku .xcworkspace, który służy do skompilowania i uruchomienia aplikacji.

Upewnij się, że Twoje środowisko programistyczne spełnia wymagania ARCore SDK zgodnie z opisem w krótkim wprowadzeniu.

Włącz funkcje geoprzestrzenne w konfiguracji sesji

Sprawdź zgodność urządzenia

Nie wszystkie urządzenia obsługujące ARCore również obsługują interfejs Geospatial API, jak opisano w quickstart.

Użyj GARSession.isGeospatialModeSupported:, aby sprawdzić urządzenie, jak w tym przykładzie:

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;
}

Pytaj użytkownika o dostęp do lokalizacji podczas działania

Przed skonfigurowaniem sesji aplikacja musi poprosić o te uprawnienia do lokalizacji w czasie działania:

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

Interfejs Geospatial API używa kombinacji VPS i GPS do przekształcania transformacji geoprzestrzennej, dlatego interfejsu API można używać, jeśli urządzenie może określić jego 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 transformacji o dużej dokładności. W typowych warunkach architektura VPS zapewnia dokładność pozycjonowania wynoszącą około 5 metrów i dokładność obrotu co 5 stopni. Użyj narzędzia GARSession.checkVPSAvailabilityAtCoordinate:completionHandler:, aby określić, czy dana lokalizacja ma zasięg 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, dane GPS mogą wystarczyć do przeprowadzenia przekształcenia z dużą dokładnością.

Co dalej