Skapa och hitta fästpunkter med hjälp av grov omlokalisering i C #

Azure Spatial Anchors kan associera sensordata på enheten och placera sensordata 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 enheten. Mer information finns i Omlokalisering av grova objekt.

Förutsättningar

För att slutföra den här guiden kontrollerar du att du har:

Konfigurera sensorns fingeravtrycksprovider

Vi börjar med att skapa och konfigurera en sensor fingeravtrycksprovider. Sensorns fingeravtrycksprovider tar hand om avläsningen av plattformsspecifika sensorer på enheten och konverterar deras avläsningar till en gemensam representation som förbrukas av den rumsliga molnankarsessionen.

Viktigt

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

// Create the sensor fingerprint provider
PlatformLocationProvider sensorProvider = new PlatformLocationProvider();

// Allow GPS
sensorProvider.Sensors.GeoLocationEnabled = true;

// Allow WiFi scanning
sensorProvider.Sensors.WifiEnabled = true;

// Allow a set of known BLE beacons
sensorProvider.Sensors.BluetoothEnabled = true;
sensorProvider.Sensors.KnownBeaconProximityUuids = new[]
{
    "22e38f1a-c1b3-452b-b5ce-fdb0f39535c1",
    "a63819b9-8b7b-436d-88ec-ea5d8db2acb0",
    . . .
};

Konfigurera den rumsliga molnankarsessionen

Vi tar hand om konfigurationen av den rumsliga molnankarsessionen nästa. 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 från våra kriterier för nära enhet.

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

// Configure the near-device criteria
NearDeviceCriteria nearDeviceCriteria = new NearDeviceCriteria();
nearDeviceCriteria.DistanceInMeters = 5;
nearDeviceCriteria.MaxResultCount = 25;

// Set the session's locate criteria
AnchorLocateCriteria anchorLocateCriteria = new AnchorLocateCriteria();
anchorLocateCriteria.NearDevice = nearDeviceCriteria;
cloudSpatialAnchorSession.CreateWatcher(anchorLocateCriteria);

När din bevakare har skapats AnchorLocated utlöses händelsen för varje ankarobjekt som begärs. 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 enhetssensorer. Om du vill veta mer om grov omlokalisering fortsätter du till nästa guide.