Jak tworzyć i lokalizować kotwice przy użyciu coarse relocalization w języku C++/WinRT

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
PlatformLocationProvider sensorProvider = PlatformLocationProvider();

// Allow GPS
SensorCapabilities sensors = sensorProvider.Sensors()
sensors.GeoLocationEnabled(true);

// Allow WiFi scanning
sensors.WifiEnabled(true);

// Populate the set of known BLE beacons' UUIDs
std::vector<winrt::hstring> uuids;
uuids.emplace_back("22e38f1a-c1b3-452b-b5ce-fdb0f39535c1");
uuids.emplace_back("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
NearDeviceCriteria nearDeviceCriteria = NearDeviceCriteria();
nearDeviceCriteria.DistanceInMeters(5.0f);
nearDeviceCriteria.MaxResultCount(25);

// Set the session's locate criteria
anchorLocateCriteria = AnchorLocateCriteria();
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.