Udostępnij za pośrednictwem


Jak tworzyć i lokalizować kotwice przy użyciu grubej ponownej lokalizacji w języku Java

Usługa Azure Spatial Anchors może skojarzyć dane czujnika położenia na urządzeniu z utworzonymi kotwicami. Te dane mogą również służyć do szybkiego określenia, 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 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 = new PlatformLocationProvider();

// Allow GPS
SensorCapabilities sensors = sensorProvider.getSensors();
sensors.setGeoLocationEnabled(true);

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

// Populate the set of known BLE beacons' UUIDs
String uuids[] = new String[2];
uuids[0] = "22e38f1a-c1b3-452b-b5ce-fdb0f39535c1";
uuids[1] = "a63819b9-8b7b-436d-88ec-ea5d8db2acb0";

// Allow the set of known BLE beacons
sensors.setBluetoothEnabled(true);
sensors.setKnownBeaconProximityUuids(uuids);

Konfigurowanie sesji zakotwiczenia przestrzennego chmury

Następnie zajmiemy się skonfigurowaniem sesji zakotwiczenia przestrzennego chmury. W pierwszym wierszu ustawimy dostawcę czujnika w sesji. Od tej pory każda kotwica tworzona podczas sesji zostanie skojarzona z zestawem odczytów czujników. Następnie utworzymy wystąpienie kryteriów lokalizowania urządzenia bliskiego urządzenia i zainicjujemy je, aby spełniały wymagania aplikacji. Na koniec poinstruujemy sesję, aby korzystała z danych z czujników podczas lokalizowania kotwic, tworząc obserwatora na podstawie naszych kryteriów zbliżenia urządzenia.

// Set the session's sensor fingerprint provider
cloudSpatialAnchorSession.setLocationProvider(sensorProvider);

// Configure the near-device criteria
NearDeviceCriteria nearDeviceCriteria = new NearDeviceCriteria();
nearDeviceCriteria.setDistanceInMeters(5.0f);
nearDeviceCriteria.setMaxResultCount(25);

// Set the session's locate criteria
AnchorLocateCriteria anchorLocateCriteria = new AnchorLocateCriteria();
anchorLocateCriteria.setNearDevice(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 nie można znaleźć kotwicy. Jeśli taka sytuacja wystąpi, przyczyna zostanie podana w stanie . Gdy wszystkie kotwice obserwatora zostaną przetworzone, znalezione lub nie odnalezione, LocateAnchorsCompleted 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 na urządzeniu. Aby dowiedzieć się więcej na temat grubej ponownej lokalizacji, przejdź do następnego przewodnika.