Jak tworzyć i lokalizować kotwice przy użyciu coarse relocalization w usłudze Swift

Usługa Azure Spatial Anchors może skojarzyć dane czujnika na urządzeniu z utworzonymi kotwicami. Te dane mogą również służyć do szybkiego określania, czy w pobliżu urządzenia znajdują się jakieś kotwice. Aby uzyskać więcej informacji, zobacz Coarse relocalization(Coarse relocalization).

Wymagania wstępne

Aby ukończyć ten przewodnik, upewnij się, że masz następujące elementy:

Konfigurowanie dostawcy odcisków palców czujnika

Zaczniemy od utworzenia i skonfigurowania dostawcy odcisków palców czujnika. Dostawca odcisków palców czujnika zajmie się odczytywaniem czujników specyficznych dla platformy na urządzeniu i konwertowaniem ich odczytów na wspólną reprezentację używaną przez sesję zakotwiczenia przestrzennego chmury.

Ważne

Sprawdź tutaj , czy włączone czujniki są dostępne na twojej platformie.

// Create the sensor fingerprint provider
var sensorProvider: ASAPlatformLocationProvider?
sensorProvider = ASAPlatformLocationProvider()

// Allow GPS
let sensors = locationProvider?.sensors
sensors.geoLocationEnabled = true

// Allow WiFi scanning
sensors.wifiEnabled = true

// Populate the set of known BLE beacons' UUIDs
let uuids = [String]()
uuids.append("22e38f1a-c1b3-452b-b5ce-fdb0f39535c1")
uuids.append("a63819b9-8b7b-436d-88ec-ea5d8db2acb0")

// Allow the set of known BLE beacons
sensors.bluetoothEnabled = true
sensors.knownBeaconProximityUuids = uuids

Konfigurowanie sesji zakotwiczenia przestrzennego chmury

Następnie zajmiemy się skonfigurowaniem sesji zakotwiczenia przestrzennego chmury. W pierwszym wierszu ustawimy dostawcę czujnika w sesji. Od teraz każda kotwica tworzona podczas sesji będzie skojarzona z zestawem odczytów czujników. Następnie utworzymy wystąpienie kryteriów lokalizowania niemal urządzenia i zainicjujemy je w celu dopasowania do wymagań aplikacji. Na koniec poinstruujemy sesję, aby korzystała z danych czujnika podczas lokalizowania kotwic, tworząc obserwatora na podstawie naszych kryteriów niemal urządzenia.

// Set the session's sensor fingerprint provider
cloudSpatialAnchorSession!.locationProvider = sensorProvider

// Configure the near-device criteria
let nearDeviceCriteria = ASANearDeviceCriteria()!
nearDeviceCriteria.distanceInMeters = 5.0
nearDeviceCriteria.maxResultCount = 25

// Set the session's locate criteria
let anchorLocateCriteria = ASAAnchorLocateCriteria()!
anchorLocateCriteria.nearDevice = nearDeviceCriteria
cloudSpatialAnchorSession!.createWatcher(anchorLocateCriteria)

Po utworzeniu obserwatora AnchorLocated zdarzenie zostanie wyzwolone dla każdej żądanej kotwicy. To zdarzenie jest uruchamiane, gdy znajduje się kotwica lub jeśli kotwica nie może być zlokalizowana. Jeśli taka sytuacja się stanie, przyczyna zostanie określona w stanie. Po przetworzeniu wszystkich kotwic dla obserwatora, znalezieniu LocateAnchorsCompleted lub nie można go odnaleźć, zdarzenie zostanie wyzwolony. Istnieje limit 35 identyfikatorów na obserwatora.

Następne kroki

W tym przewodniku przedstawiono sposób tworzenia i lokalizowania kotwic przy użyciu czujników urządzeń. Aby dowiedzieć się więcej na temat ponownej lokalizacji, przejdź do następnego przewodnika.