了解 AnchorLocateCriteria 類別

在本文中,您將了解可在查詢錨點時使用的不同選項。 我們會瀏覽一遍 AnchorLocateCriteria 類別、其選項和有效的選項組合。

錨點尋找準則

AnchorLocateCriteria 類別可協助您查詢服務中先前建立的錨點。 每個監看員隨時可以使用一個 AnchorLocateCriteria 物件。 每個 AnchorLocateCriteria 物件都必須包含不多不少一個下列屬性:IdentifiersNearAnchorNearDevice。 如有需要,也可以設定其他屬性,例如 StrategyBypassCacheRequestedCategories

屬性

在監看員中定義不多不少一個下列屬性:

Identifiers

預設值:空字串陣列

使用 Identifiers,您可以為想要尋找的錨點定義錨點識別碼清單。 在成功建立錨點後,錨點識別碼一開始會傳回給您。 指定了 Identifiers 時,AnchorLocateCriteria 會將要求的錨點集合限制為具有相符錨點識別碼的錨點。 這個屬性需要使用字串陣列來指定。

NearAnchor

預設值:未設定

使用 NearAnchor,您可以指定 AnchorLocateCriteria 會將要求的錨點集合限制在與所選錨點的距離在所需範圍內的錨點。 您必須提供這個所選錨點以作為來源錨點。 您也可以設定要與來源錨點相距多遠,以及所傳回的錨點數目上限,以進一步限制搜尋範圍。 這個屬性需要使用 NearAnchorCriteria 物件來指定。

NearDevice

預設值:未設定

使用 NearDevice,您可以指定 AnchorLocateCriteria 會將要求的錨點集合限制在接近裝置實體位置的錨點。 此時會使用任何已啟用的感應器來協助探索裝置周圍的錨點。 為了獲得最佳機會來尋找錨點,請設定 SensorCapabilities 以便讓工作階段存取所有合適的感應器。 如需如何設定和使用此屬性的詳細資訊,請參閱粗略重新定位 - Azure Spatial Anchors | Microsoft Docs以及如何在 C#Objective-CSwiftJavaC++/NDKC++/WinRT 中使用粗略重新定位來建立和尋找錨點。 這個屬性需要使用 NearDeviceCriteria 物件來指定。

其他屬性

BypassCache

預設值:false

如果已在工作階段中建立或找到錨點,則該錨點也會儲存在快取中。 此屬性設定為 false 時,相同工作階段中的任何後續查詢都會傳回快取的值。 不會對 ASA 服務提出任何要求。

RequestedCategories

預設值:屬性 | 空間

這個屬性可用來決定使用 AnchorLocateCriteria 時會從查詢傳回的資料。 預設值會同時傳回屬性和空間資料,如果同時需要屬性和空間資料,則請勿變更此設定。 這個屬性可以使用 AnchorDataCategory 列舉來指定。

AnchorDataCategory 列舉值 傳回的資料
不會傳回任何資料
屬性 會傳回包含 AppProperties 的錨點屬性。
空間 會傳回錨點的空間資訊。

策略

預設值:AnyStrategy

策略會進一步定義要用來尋找錨點的方式。 Strategy 屬性可以使用 LocateStrategy 列舉來指定。

LocateStrategy 列舉值 描述
AnyStrategy 此策略可讓系統使用 VisualInformation 和 Relationship 策略的組合來尋找錨點。
VisualInformation 此策略會嘗試藉由比對目前周圍的視覺資訊與錨點視覺使用量的視覺資訊來尋找錨點。 錨點的視覺使用量是指目前與錨點相關聯的視覺資訊。 此視覺資訊通常會在錨點建立期間進行收集,但不會只在這個時候收集。 目前,此策略只允許與 NearDevice 或 Identifiers 屬性搭配使用。
關聯 此策略會嘗試使用現有的連線錨點來尋找錨點。 目前,此策略只允許與 NearAnchor 或 Identifiers 屬性搭配使用。 與 Identifiers 屬性搭配使用時,會要求在相同的工作階段中,使用者先前應該已找到錨點,且這些錨點與具有 Identifiers 陣列中所指定識別碼的錨點有已建立連線的關係。

LocateStrategy 和 AnchorLocateCriteria 屬性的有效組合

Strategy 和 AnchorLocateCriteria 屬性的組合並非全都為系統所允許。 下表顯示允許的組合:

屬性 AnyStrategy 關聯 VisualInformation
Identifiers
NearAnchor ✓ (會預設為關聯性)
NearDevice

下一步

如需更多使用 AnchorLocateCriteria 類別的範例,請參閱如何使用 Azure Spatial Anchors 建立和尋找錨點