Jak vytvořit a najít kotvy pomocí hrubého přemísťování ve Swiftu

Azure Spatial Anchors může přidružit data snímačů na zařízení a umísťovat je k ukotvením, které vytvoříte. Tato data můžete také použít k rychlému určení, jestli jsou v blízkosti vašeho zařízení nějaké kotvy. Další informace najdete v tématu Hrubá relokalizace.

Požadavky

Pokud chcete tuto příručku dokončit, ujistěte se, že máte:

Konfigurace poskytovatele otisků prstů senzoru

Začneme vytvořením a konfigurací poskytovatele otisků prstů senzoru. Poskytovatel otisků prstů se postará o čtení senzorů specifických pro konkrétní platformu na vašem zařízení a o převod jejich čtení na běžnou reprezentaci, kterou využívá relace cloudové prostorové ukotvení.

Důležité

Nezapomeňte zkontrolovat , jestli jsou senzory, které povolíte, dostupné na vaší platformě.

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

Konfigurace relace cloudového prostorového ukotvení

O konfiguraci relace cloudové prostorové ukotvení se postaráme příště. Na prvním řádku nastavíme poskytovatele senzoru na relaci. Od této chvíle bude každá kotva, která během relace vytvoříme, přidružena k sadě hodnot senzorů. Dále vytvoříme instanci kritéria umístění blízko zařízení a inicializujeme je tak, aby odpovídala požadavkům aplikace. Nakonec dáváme relaci pokyn, aby při hledání ukotvení používala data snímačů tím, že vytvoříme sledovací proces z našich kritérií blízkých zařízení.

// 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 vytvoření sledovacího AnchorLocated procesu se událost aktivuje pro každou požadovanou kotvu. Tato událost se aktivuje, když je umístěna kotva nebo pokud kotvu nelze najít. Pokud k této situaci dojde, bude důvod uveden ve stavu. Po zpracování, nalezení nebo nenalezení všech ukotvení sledovacího LocateAnchorsCompleted procesu se událost aktivuje. Existuje limit 35 identifikátorů na sledovací proces.

Další kroky

V této příručce jste se dozvěděli, jak vytvořit a najít kotvy pomocí senzorů na zařízení. Další informace o hrubé relokalizaci najdete v dalším průvodci.