Jak vytvořit a najít kotvy pomocí hrubé relokalizace v jazyce C #

Azure Spatial Anchors může přidružit data snímačů na zařízení a jejich umístění 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 Přibližná relokalizace.

Požadavky

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

Konfigurace poskytovatele otisků prstů ze senzoru

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

Důležité

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

// 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",
    . . .
};

Konfigurace relace prostorového ukotvení cloudu

V dalším kroku se postaráme o konfiguraci relace prostorového ukotvení cloudu. Na prvním řádku nastavíme poskytovatele senzoru v relaci. Od této chvíle bude každá kotva, která během relace vytvoříme, přidružená k sadě hodnot ze snímačů. Dále vytvoříme instanci kritéria hledání blízko zařízení a inicializujeme ji 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čů, a to vytvořením sledovacího procesu na základě našich kritérií blízkých zařízením.

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

Po vytvoření AnchorLocated sledovacího procesu se událost aktivuje pro každé požadované ukotvení. Tato událost se aktivuje, když je umístěna kotva nebo pokud ukotvení 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 vytvářet a umísťovat kotvy pomocí senzorů na zařízeních. Další informace o hrubé relokalizaci najdete v dalším průvodci.