Partager via


Guide pratique pour créer et localiser des ancres avec la relocalisation approximative en Swift

Azure Spatial Anchors peut associer des données de capteur de positionnement intégré aux ancres que vous créez. Ces données permettent également de déterminer rapidement s’il existe des ancres à proximité de votre appareil. Pour plus d’informations, consultez Relocalisation grossière.

Prérequis

Pour suivre ce guide, vous devez avoir :

Configurer le fournisseur de lecteur d’empreintes digitales

Nous allons commencer par créer et configurer un fournisseur de lecteur d’empreintes digitales. Le fournisseur de lecture d’empreintes digitales se charge de lire les informations des capteurs spécifiques à la plateforme sur votre appareil, et de les convertir en une représentation commune consommée par la session d’ancre spatiale cloud.

Important

Vérifiez dans cette page si les capteurs que vous activez sont disponibles sur votre plateforme.

// 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

Configurer la session d’ancre spatiale cloud

Nous nous occuperons ensuite de la configuration de la session d’ancre spatiale cloud. Sur la première ligne, nous définissons le fournisseur de lecteur de la session. À partir de maintenant, toutes les ancres créées pendant la session seront associées à un ensemble de relevés de lecteur. Ensuite, nous instancions des critères de proximité de l’appareil et nous les initialisons en fonction des spécifications de l’application. Enfin, nous indiquons à la session d’utiliser les données du lecteur lors de la localisation des ancres en créant un observateur à partir de nos critères de proximité de l’appareil.

// 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)

Une fois votre ressource Watcher créée, l’événement AnchorLocated se déclenche pour chaque ancre demandée. Cet événement se déclenche lorsqu’une ancre est localisée, ou si l’ancre ne peut pas être localisée. Si cette situation se produit, la raison est indiquée dans l’état. Après le traitement de toutes les ancres d’une ressource Watcher, trouvées ou non, l’événement LocateAnchorsCompleted se déclenche. Il y a une limite de 35 identificateurs par ressource Watcher.

Étapes suivantes

Dans ce guide, vous avez vu comment créer et localiser des ancres à l’aide de lecteurs présents sur l’appareil. Pour plus d’informations sur la relocalisation grossière, passez au guide suivant.