Skapa och hitta ankare med hjälp av grov omlokalisering i Swift

Molnbaserade ankare kan associeras på enheten, placera sensor data med de ankare som du skapar. Den här informationen kan också användas för att snabbt avgöra om det finns några fäst punkter i närheten av enheten. Mer information finns i grov omlokalisering.

Förutsättningar

Se till att du har följande för att slutföra den här guiden:

Konfigurera sensorns finger avtrycks leverantör

Vi börjar med att skapa och konfigurera en sensor finger avtrycks leverantör. Sensorns finger avtrycks leverantör tar hand om att läsa de plattformsspecifika sensorer på enheten och konvertera sina läsningar till en gemensam åter givning som används av sessionen för moln rums ankare.

Viktigt

Se till att kontrol lera detta om sensorer som du aktiverar är tillgängliga på din plattform.

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

Konfigurera sessionen för moln rums ankare

Vi tar hand om konfigureringen av molnets spatiala Anchor-session härnäst. På den första raden ställer vi in sensor leverantören i sessionen. Från och med nu kommer alla ankare som vi skapar under sessionen att associeras med en uppsättning sensor avläsningar. Härnäst instansierar vi en nära enhet som letar efter kriterier och initierar den för att matcha program kraven. Slutligen instruerar vi sessionen att använda sensor data när du söker efter ankare genom att skapa en bevakare från vårt nära enhets kriterium.

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

När din bevakare har skapats AnchorLocated utlöses händelsen för varje fäst punkt som begärs. Den här händelsen utlöses när ett ankare finns eller om ankaret inte kan hittas. Om den här situationen inträffar anges orsaken i status. När alla ankare för en bevakare har bearbetats, hittats eller inte hittas, LocateAnchorsCompleted kommer händelsen att utlösas. Det finns en gräns på 35 identifierare per övervakare.

Nästa steg

I den här guiden har du lärt dig hur du skapar och lokaliserar ankare med hjälp av sensorer på enhet. Om du vill veta mer om grov omlokalisering fortsätter du till nästa guide.