Włączanie interfejsu Geospatial API dla aplikacji na iOS

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

Wymagania wstępne

Upewnij się, że znasz podstawowe pojęcia związane z AR. i dowiedz się, jak skonfigurować sesję ARCore, zanim przejdziesz dalej.

Jeśli chcesz uruchomić przykładową aplikację prezentującą opisane funkcje obejrzyj Krótkie wprowadzenie do ARCore Geospatial na iOS

Zobacz Wprowadzenie do interfejsu Geospatial API informacje o interfejsie Geospatial API.

Jeśli nie masz doświadczenia w programowaniu z ARCore, przeczytaj artykuł Pierwsze kroki. zawiera informacje o wymaganiach dotyczących oprogramowania i sprzętu, wymagań wstępnych oraz inne informacje powiązane z platformami, z których korzystasz.

Włączanie interfejsu ARCore API

Przed użyciem systemu pozycjonowania wizualnego (VPS) w aplikacji musisz najpierw włączyć interfejs 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 bez klucza, ale jest też obsługiwana autoryzacja klucza interfejsu API.

Dodaj wymagane biblioteki do aplikacji

Po autoryzowaniu aplikacji do wywoływania interfejsu ARCore API musisz dodać biblioteki do włączyć w aplikacji funkcje geoprzestrzenne.

Zaktualizuj Podfile swojej aplikacji, dodając do niej pakiet ARCore SDK i obsługiwany iOS obsługi wersji. Aby to zrobić:

  1. Dodaj platform i pod do: Podfile projektu:

    platform :ios, '11.0'
    pod 'ARCore/Geospatial', '~> 1.45.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 na urządzeniach z iOS w wersji 11 lub nowszej.

  2. Otwórz okno terminala i uruchom pod install z folderu, w którym Twój projekt Xcode już istnieje.

    Spowoduje to wygenerowanie pliku .xcworkspace, który służy do tworzenia uruchom aplikację.

Upewnij się, że Twoje środowisko programistyczne spełnia wymagania pakietu ARCore SDK: omówiono w krótkim wprowadzeniu.

Włącz funkcje geoprzestrzenne w konfiguracji sesji

Sprawdź zgodność urządzeń

Nie wszystkie urządzenia obsługujące ARCore obsługują również interfejs Geospatial API, opisane w krótkim wprowadzeniu.

Używaj GARSession.isGeospatialModeSupported: aby sprawdzić urządzenie, wykonując te czynności:

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

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

Aplikacja musi prosić o te uprawnienia dostępu do lokalizacji w czasie działania, przed Konfigurowanie sesji:

Sprawdź dostępność 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, na przykład w pomieszczeniach wewnątrz i w gęsto zabudowanych środowiskach miejskich, interfejs API będzie wykorzystywać zasięg VPS do generowania przekształceń 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, które nie mają zasięgu VPS. Na zewnątrz, gdzie jest niewiele przeszkód z góry, lub nie ma ich wcale, do wygenerowania przekształcenia z dużą dokładnością wystarczy GPS.

Co dalej?