Krótkie wprowadzenie do danych geoprzestrzennych na iOS

Z tego krótkiego wprowadzenia do interfejsu ARCore Geospatial API dowiesz się, jak uruchomić w Xcode przykładową aplikację demonstrującą działanie interfejsu Geospatial API.

Wskazówki na temat tworzenia własnej aplikacji przy użyciu interfejsu Geospatial API znajdziesz w przewodniku dla programistów dotyczącym danych geoprzestrzennych na iOS.

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

Jeśli nie masz doświadczenia w programowaniu z ARCore, zobacz 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.
  • zgodne z ARKit urządzenie Apple z systemem iOS 12.0 lub nowszym (wymagane jest wdrożenie w systemie iOS 12.0 lub nowszym).

Konfigurowanie przykładowej aplikacji

Projekt GeospatialExample dołączony do pakietu SDK ARCore na iOS zawiera opis kodu, który wywołuje interfejs Geospatial API.

  1. Skopiuj lub pobierz pakiet SDK ARCore SDK na iOS z GitHuba, aby uzyskać przykładowy kod aplikacji.

  2. Otwórz okno terminala lub programu Finder i przejdź do folderu, w którym sklonowano lub pobrany pakiet SDK.

  3. Otwórz folder arcore-ios-sdk-master/Examples.

  4. Otwórz folder Przykłady, wybierz folder GeospatialExample i kliknij Otwórz.

Konfigurowanie projektu Google Cloud

Aby korzystać z systemu Visual Positioning System (VPS), musisz powiązać aplikację z projektem Google Cloud, który obsługuje interfejs ARCore API.

Musisz włączyć ARCore API w projekcie Google Cloud. Jeśli chcesz utworzyć projekt, wykonaj te czynności:

  1. Odwiedź stronę Tworzenie projektu w Google Cloud Platform.

  2. Wpisz odpowiednią nazwę projektu i wybierz jego lokalizację.

  3. Kliknij Utwórz.

  4. Na pasku bocznym wybierz Interfejsy API i usługi, a następnie Biblioteka.

  5. Wyszukaj interfejs ARCore API, zaznacz go i kliknij Włącz.

Autoryzacja konfiguracji

Aby móc wywoływać interfejs VPS w interfejsie Geospatial API, przykładowa aplikacja wymaga autoryzacji i może używać klucza interfejsu API bez ograniczeń. Jeśli używasz ograniczonego klucza interfejsu API, musisz też podać identyfikator pakietu, który będzie powiązany z kluczem interfejsu API.

  1. W swoim projekcie Google Cloud uzyskaj klucz interfejsu API zgodnie z opisem w sekcji Tworzenie klucza interfejsu API.

  2. Skopiuj klucz interfejsu API, ponieważ wkleisz go w następnym kroku.

  3. W Xcode w przykładowej aplikacji GeospatialExample otwórz plik ViewController.m i wyszukaj your-api-key.

  4. Dodaj klucz interfejsu API do tabeli GARSession: wklej klucz interfejsu API skopiowany z poprzedniego kroku w polu tekstowym your-api-key (pozostaw cudzysłowy), jak pokazano poniżej.

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

Konfigurowanie pakietu SDK ARCore

Aplikacja GeospatialExample ma wstępnie skonfigurowany pakiet Podfile z pakietem SDK ARCore i wymaganymi przez Ciebie wersjami iOS. Aby zainstalować te zależności, otwórz okno terminala i uruchom pod install z folderu, w którym istnieje projekt Xcode.

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

Tworzenie i uruchamianie przykładowej aplikacji

  1. W Xcode wybierz plik obszaru roboczego GeospatialExample i kliknij Signing & Capabilities.

  2. Zaznacz pole Automatycznie zarządzaj podpisywaniem.

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

    Możesz użyć domyślnego identyfikatora pakietu, aby uruchomić aplikację z Xcode, ale musisz go zmienić, jeśli używasz GeospatialExample jako nawiązania do własnej aplikacji w środowisku produkcyjnym.

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

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

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

Zobaczysz widok z kamery i informacje na temat debugowania dotyczące bieżącej transformacji geoprzestrzennej Twojego urządzenia. Skanując otoczenie, zauważysz, że wartości ufności dokładności określania pozycji mogą się zmieniać w miarę poruszania się po okolicy, jeśli znajdujesz się w obszarze obsługiwanym przez VPS.

Jeśli ARCore ma pewność co do lokalizacji i nagłówka urządzenia, możesz umieścić kotwicę w bieżącej lokalizacji za pomocą przekształcenia geoprzestrzennego.

Dokładność pozycjonowania może być zbyt niska, jeśli informacje dotyczące VPS są niedostępne. Aplikacja musi być połączona z internetem, a VPS musi znać lokalizację. Aby uzyskać najlepsze wyniki, uruchom przykładową aplikację na zewnątrz (nie wewnątrz budynku) w ciągu dnia.

Jeśli znajdujesz się w obszarze, który nie obsługuje VPS, lub sygnał GPS jest niewystarczający, być może trzeba będzie skorygować progi ufności w aplikacji, aby umieścić kotwicę.

Aby dostosować progi:

  1. W Xcode otwórz plik ViewController.m i przejdź do tej sekcji:

    // 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 dostosuj te wartości. Im wyższa wartość, tym mniejsza dokładność.

    Niższa dokładność pozwala aplikacji na większą szerokość w miejscu zakotwiczenia. Więcej informacji znajdziesz w artykule Dostosowywanie pod kątem dokładności przekształcenia.

Dalsze kroki

Zapoznaj się z przewodnikiem dla programistów dotyczącym technologii geoprzestrzennej na iOS i zacznij tworzyć interfejs Geospatial API.