Så här skapar och hittar du fästpunkter med grov omlokalisering i Objective-C

Azure Spatial Anchors kan associera sensordata på enheten med de fästpunkter som du skapar. Dessa data kan också användas för att snabbt avgöra om det finns några fästpunkter i närheten av din enhet. Mer information finns i Grov omlokalisering.

Förutsättningar

Kontrollera att du har gjort så här för att slutföra den här guiden:

Konfigurera sensorns fingeravtrycksprovider

Vi börjar med att skapa och konfigurera en sensorprovider för fingeravtryck. Fingeravtrycksprovidern för sensorn tar hand om läsningen av plattformsspecifika sensorer på enheten och konverterar deras avläsningar till en gemensam representation som används av molnsessionen spatial anchor.

Viktigt

Kontrollera här om de sensorer som du aktiverar är tillgängliga på din plattform.

// Create the sensor fingerprint provider
ASAPlatformLocationProvider *sensorProvider;
sensorProvider = [[ASAPlatformLocationProvider alloc] init];

// Allow GPS
ASASensorCapabilities *sensors = locationProvider.sensors;
sensors.geoLocationEnabled = true;

// Allow WiFi scanning
sensors.wifiEnabled = true;

// Populate the set of known BLE beacons' UUIDs
NSArray *uuids = @[@"22e38f1a-c1b3-452b-b5ce-fdb0f39535c1", @"a63819b9-8b7b-436d-88ec-ea5d8db2acb0"];

// Allow a set of known BLE beacons
sensors.bluetoothEnabled = true;
sensors.knownBeaconProximityUuids = uuids;

Konfigurera den rumsliga molnankarsessionen

Vi tar hand om konfigurationen av den rumsliga molnankarsessionen härnäst. På den första raden anger vi sensorprovidern för sessionen. Från och med nu associeras alla fästpunkter som vi skapar under sessionen med en uppsättning sensoravläsningar. Därefter instansierar vi ett sökvillkor nära enheten och initierar det så att det matchar programkraven. Slutligen instruerar vi sessionen att använda sensordata när du lokaliserar fästpunkter genom att skapa en bevakare utifrån våra kriterier för nära enhet.

// Set the session's sensor fingerprint provider
cloudSpatialAnchorSession.locationProvider = sensorProvider;

// Configure the near-device criteria
ASANearDeviceCriteria *nearDeviceCriteria = [[ASANearDeviceCriteria alloc] init];
nearDeviceCriteria.distanceInMeters = 5.0f;
nearDeviceCriteria.maxResultCount = 25;

// Set the session's locate criteria
ASAAnchorLocateCriteria *anchorLocateCriteria = [[ASAAnchorLocateCriteria alloc] init];
anchorLocateCriteria.nearDevice = nearDeviceCriteria;
[cloudSpatialAnchorSession createWatcher:anchorLocateCriteria];

När din bevakare har skapats AnchorLocated utlöses händelsen för varje begärd fästpunkt. Den här händelsen utlöses när en fästpunkt finns eller om fästpunkten inte kan finnas. Om den här situationen inträffar anges orsaken i statusen. När alla fästpunkter för en bevakare har bearbetats, hittats eller inte hittats utlöses LocateAnchorsCompleted händelsen. Det finns en gräns på 35 identifierare per bevakare.

Nästa steg

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