Krótkie wprowadzenie do danych geoprzestrzennych na iOS

Ten krótki przewodnik po interfejsie ARCore Geospatial API pokazuje, jak uruchomić w Xcode aplikację demonstrującą Geospatial API.

Przewodnik po tworzeniu własnej aplikacji z użyciem interfejsu Geospatial API znajdziesz w Przewodniku dla programistów korzystających z interfejsu Geospatial API na iOS.

Więcej informacji o Geospatial API znajdziesz w artykule Wprowadzenie do Geospatial API ARCore.

Jeśli dopiero zaczynasz tworzyć aplikacje z wykorzystaniem ARCore, zapoznaj się z artykułem Pierwsze kroki.

Wymagania wstępne

  • Xcode w wersji 13.0 lub nowszej
  • Cocoapods w wersji 1.4.0 lub nowszej (jeśli używasz Cocoapods).
  • Urządzenie Apple z ARKit w wersji 12.0 lub nowszej (wymagany jest cel wdrożenia w wersji iOS 12.0 lub nowszej)

Konfigurowanie przykładowej aplikacji

Projekt GeospatialExample zawarty w pakiecie ARCore SDK na iOSa opisuje kod wywołujący interfejs Geospatial API.

  1. Aby uzyskać przykładowy kod aplikacji, sklonuj lub pobierz ARCore SDK na iOS z GitHuba.

  2. Otwórz okno terminala lub Findera i otwórz folder, w którym skopiowano lub pobierano pakiet SDK.

  3. Przejdź do folderu arcore-ios-sdk-master/Examples.

  4. Otwórz folder Przykłady, wybierz folder Przykład danych geoprzestrzennych i kliknij Otwórz.

Konfigurowanie projektu Google Cloud

Zanim użyjesz w aplikacji systemu pozycjonowania wizualnego (VPS), musisz najpierw włączyć interfejs ARCore API w nowym lub istniejącym projekcie Google Cloud. Mimo że interfejs Geospatial API obsługuje zarówno autoryzację bez klucza, jak i autoryzację za pomocą klucza interfejsu API, w tym przewodniku użyj metody autoryzacji za pomocą klucza interfejsu API.

Autoryzacja konfiguracji

Aby wywoływać interfejs Geospatial API w usłudze VPS, aplikacja przykładowa musi zostać autoryzowana i może używać klucza interfejsu API bez ograniczeń. Jeśli używasz klucza API z ograniczeniami, musisz też podać identyfikator pakietu, który chcesz powiązać z kluczem API.

  1. W XCode w przykładowej aplikacji GeospatialExample otwórz plik ViewController.m i znajdź parametr your-api-key.

  2. Dodaj klucz interfejsu API do pola GARSession: wklej skopiowany w poprzednim kroku klucz interfejsu API w polu twój-klucz-api (pozostaw cudzysłowe), jak pokazano na rysunku:

    self.garSession = [GARSession sessionWithAPIKey:@"your-api-key"
                                   bundleIdentifier:nil
                                              error:&error];
    

Konfigurowanie pakietu SDK ARCore

Aplikacja GeospatialExample jest dostarczana z Podfile skonfigurowanymi z wymaganymi wersjami pakietów SDK ARCore i iOS. Aby zainstalować te zależności, otwórz okno terminala i uruchom pod install z folderu, w którym znajduje się projekt Xcode.

Spowoduje to wygenerowanie pliku .xcworkspace, którego użyjesz później do kompilacji i uruchomienia aplikacji.

Tworzenie i uruchamianie przykładowej aplikacji

  1. W Xcode wybierz plik obszaru roboczego GeospatialExample i kliknij Podpisywanie i możliwości.

  2. Zaznacz pole Automatycznie zarządzaj podpisywaniem.

  3. W polu Zespół wpisz nazwę zespołu.

    Do uruchamiania aplikacji z Xcode możesz użyć domyślnego identyfikatora pakietu, ale musisz go zmienić, jeśli używasz przykładu GeospatialExample jako zastępnika w produkcyjnej wersji aplikacji.

  4. Podłącz urządzenie, aby uruchomić przykładową aplikację.

  5. Utwórz i uruchom aplikację GeospatialExample z pliku .xcworkspace, aby ją uruchomić na urządzeniu.

    Aby uniknąć błędów kompilacji, upewnij się, że kompilujesz na podstawie pliku .xcworkspace, a nie pliku .xcodeproj.

Powinieneś zobaczyć widok z kamery wraz z informacjami debugowania opisującymi bieżącą transformację geoprzestrzenną urządzenia. Podczas skanowania otoczenia zwróć uwagę, że wartości dokładności pozycjonowania mogą się zmieniać w miarę poruszania się, jeśli znajdujesz się w obszarze obsługiwanym przez lokalizację VPS.

Gdy ARCore będzie mieć pewność co do lokalizacji i kierunku urządzenia, możesz umieścić kotwicę w swojej bieżącej lokalizacji, korzystając z transformacji geoprzestrzennej.

Dokładność pozycjonowania może być zbyt niska, jeśli informacje VPS są niedostępne. Aplikacja musi być połączona z internetem, a lokalizacja musi być znana VPS. Aby uzyskać najlepsze wyniki, uruchom przykładową aplikację na zewnątrz (nie w pomieszczeniu) w godzinach dziennych.

Jeśli znajdujesz się w miejscu, w którym nie można korzystać z VPS, lub jeśli sygnały GPS są niewystarczające, konieczne może być dostosowanie progów pewności w aplikacji, aby umieścić kotwicę.

Aby dostosować progi:

  1. W Xcode otwórz plik ViewController.m i otwórz ten dział:

    // Thresholds for 'good enough' accuracy. These can be tuned for the
    // application. We use both 'low'
    // and 'high' values here to avoid flickering state changes.
    static const CLLocationAccuracy kHorizontalAccuracyLowThreshold = 10;
    static const CLLocationAccuracy kHorizontalAccuracyHighThreshold = 20;
    static const CLLocationDirectionAccuracy kHeadingAccuracyLowThreshold = 15;
    static const CLLocationDirectionAccuracy kHeadingAccuracyHighThreshold = 25;
    
  2. W razie potrzeby zmień te wartości. Im wyższa wartość, tym niższa dokładność.

    Zmniejszenie dokładności pozwala aplikacji na większą elastyczność w umieszczaniu kotwicy. Więcej informacji znajdziesz w artykule Dostosowywanie dokładności przekształceń.

Dalsze kroki

Zapoznaj się z przewodnikiem Geospatial API dla deweloperów na iOS i zacznij tworzyć rozwiązania z użyciem interfejsu Geospatial API.