如何在 C# 中使用粗略重新定位建立和尋找錨點
Azure 空間錨點可以將裝置上、定位感應器資料與您建立的錨點建立關聯。 此資料也可以用來快速判斷您的裝置附近是否有任何錨點。 如需詳細資訊,請參閱粗略重新定位。
必要條件
若要完成本指南,請確定您:
- C# 的基本知識。
- 已完整閱讀 Azure Spatial Anchors 概觀。
- 已完成其中一個 5 分鐘快速入門。
- 請參閱建立並尋找錨點操作說明。
設定感應器指紋提供者
首先,我們會建立及設定感應器指紋提供者。 感應器指紋提供者會負責讀取您裝置上的平台特定感應器,並將其讀數轉換為雲端空間錨點工作階段所取用的常見表示法。
重要
請務必在這裡檢查 您啟用的感應器是否可在您的平臺上使用。
// 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",
. . .
};
設定雲端空間錨點工作階段
接下來,我們將會負責設定雲端空間錨點工作階段。 在第一行中,我們會在工作階段上設定感應器提供者。 從現在開始,我們在工作階段期間建立的任何錨點都會與一組感應器讀數相關聯。 接下來,我們會將接近裝置的尋找準則具現化,並將其初始化以符合應用程式需求。 最後,我們會藉由從接近裝置的準則建立監看員,指示工作階段在尋找錨點時使用感應器資料。
// 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);
監看員建立後,系統會針對每個要求的錨點引發 AnchorLocated
事件。 在找到錨點時,或找不到錨點時,都會引發此事件。 如果發生這種情況,將會在狀態中指出原因。 在處理完監看員的所有錨點後 (包括找到和找不到的),就會引發 LocateAnchorsCompleted
事件。 每個監看員有 35 個識別碼的限制。
下一步
在本指南中,您已了解如何使用裝置上感應器來建立和尋找錨點。 若要深入了解粗略重新定位,請繼續進行下一個指南。