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:
- Grundläggande kunskaper om Objective-C.
- Läs igenom översikten över Azure Spatial Anchors.
- Slutfört en av snabbstarterna på 5 minuter.
- Läs igenom instruktioner för att skapa och hitta fästpunkter.
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.