Come creare e individuare ancoraggi usando la rilocalizzazione grossolana in C++/WinRT
Gli ancoraggi nello spazio di Azure possono associare i dati dei sensori di posizionamento su dispositivo agli ancoraggi creati. Questi dati possono anche essere usati per determinare rapidamente se sono presenti ancoraggi vicini al dispositivo. Per altre informazioni, vedere Rilocalizzazione grossolana.
Prerequisiti
Per completare le procedure contenute in questa guida, verificare che siano soddisfatti i requisti seguenti:
- Conoscenze di base di C# e le API di Windows Runtime.
- Letto la Panoramica di ancoraggi nello spazio di Azure.
- Completato uno degli argomenti di avvio rapido di 5 minuti.
- Lette le procedure per creare e individuare ancoraggi.
Configurare il provider di impronte digitali dei sensori
Per iniziare, creare e configurare un provider di impronte digitali di sensori. Il provider di impronte digitali dei sensori leggerà i sensori specifici della piattaforma nel dispositivo e convertirà queste letture in una rappresentazione comune utilizzata dalla sessione di ancoraggi nello spazio nel cloud.
Importante
Assicurarsi di verificare qui se i sensori che si abilitano sono disponibili nella piattaforma.
// 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);
Configurare la sessione di ancoraggi nello spazio nel cloud
Verrà ora configurata la sessione di ancoraggi nello spazio nel cloud. Nella prima riga viene impostato il provider di sensori nella sessione. Da questo momento in poi, qualsiasi ancoraggio creato durante la sessione verrà associato a un set di letture del sensore. Viene quindi creata un'istanza dei criteri di localizzazione di dispositivi nelle vicinanze, che verrà inizializzata in base ai requisiti dell'applicazione. Infine, viene indicato alla sessione di usare i dati del sensore quando si individuano gli ancoraggi creando un watcher dai criteri di localizzazione dei dispositivi nelle vicinanze.
// 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);
Dopo la creazione del Watcher, l'evento AnchorLocated
viene attivato per ogni ancoraggio richiesto. Questo evento viene generato quando viene individuato un ancoraggio o se non è possibile individuarlo. Se si verifica questa situazione, il motivo verrà indicato nello stato. Dopo che tutti gli ancoraggi per un Watcher vengono elaborati, che siano stati trovati o no, viene generato l'evento LocateAnchorsCompleted
. È previsto un limite di 35 identificatori per Watcher.
Passaggi successivi
In questa guida si è appreso come creare e individuare ancoraggi usando sensori su dispositivo. Per altre informazioni sulla rilocalizzazione grossolana, passare alla guida successiva.