AnchorLocateCriteria クラスについて

この記事では、アンカーを照会する場合に使用できるさまざまなオプションについて説明します。 AnchorLocateCriteria クラス、そのオプション、およびオプションの有効な組み合わせについて見ていきます。

アンカーの検索条件

AnchorLocateCriteria クラスは、以前に作成したアンカーをサービスに照会する場合に役立ちます。 ウォッチャーごとに 1 つの AnchorLocateCriteria オブジェクトをいつでも使用できます。 各 AnchorLocateCriteria オブジェクトには、次のプロパティのうち 1 つだけ含める必要があります: IdentifiersNearAnchorNearDevice。 必要に応じて、StrategyBypassCacheRequestedCategories などの追加のプロパティを設定することもできます。

プロパティ

ご利用のウォッチャーでは、次のプロパティのうち 1 つだけを定義します。

識別子

既定値: 空の文字列配列

Identifiers を使用すると、検索するアンカーについてアンカー ID のリストを定義できます。 アンカー ID は、アンカーの作成が正常に完了すると、最初に返されます。 Identifiers を指定した場合、AnchorLocateCriteria では、要求されたアンカーのセットをアンカー ID と一致するアンカーに制限します。 このプロパティは、文字列配列を使用して指定されます。

NearAnchor

既定値: 設定されていません

NearAnchor を使用すると、AnchorLocateCriteria で、要求されたアンカーのセットを選択されたアンカーから必要な距離内にあるアンカーに制限するように指定することができます。 この選択したアンカーを、ソース アンカーとして指定する必要があります。 また、ソース アンカーからの必要な距離を設定し、返されるアンカーの最大数を設定して、検索にさらに制限をかけることもできます。 このプロパティは、NearAnchorCriteria オブジェクトを使用して指定します。

NearDevice

既定値: 設定されていません

NearDevice を使用すると、AnchorLocateCriteria で、要求されたアンカーのセットをデバイスの物理的な場所の近くにあるものに制限するように指定することができます。 有効になっているセンサーを使用すれば、デバイス周辺のアンカーを容易に検出することができます。 アンカーを検出できる可能性を最大限に高めるには、該当するすべてのセンサーへのセッション アクセスを許可するように SensorCapabilities を構成する必要があります。 このプロパティの設定方法および使用方法の詳細については、「粗い再局在化 - Azure Spatial Anchors | Microsoft Docs」ならびにC#Objective-CSwiftJavaC++/NDKC++/WinRT で "粗い再局在化を使用してアンカーを作成および検索する方法" を参照してください。 このプロパティは、NearDeviceCriteria オブジェクトを使用して指定します。

追加のプロパティ

BypassCache

既定値: false

セッション内でアンカーが作成または検索された場合、それはキャッシュにも格納されます。 このプロパティを false に設定すると、同じセッション内の後続のクエリからは、キャッシュされた値が返されます。 ASA サービスへの要求は行われません。

RequestedCategories

既定値: Properties | Spatial

このプロパティは、AnchorLocateCriteria を使用してクエリから返されるデータを特定する場合に使用されます。 既定値を使用するとプロパティと空間データの両方が返されます。プロパティと空間データの両方が必要な場合は、この値を変更しないでください。 このプロパティは、AnchorDataCategory 列挙型を使用して指定できます。

AnchorDataCategory 列挙値 返されるデータ
なし データは返されません。
プロパティ AppProperties などのアンカー プロパティが返されます。
Spatial アンカーに関する空間情報が返されます。

戦略

既定値: AnyStrategy

Strategy を使用すると、アンカーの検索方法をさらに定義できます。 Strategy プロパティは、LocateStrategy 列挙型を使用して指定できます。

LocateStrategy 列挙値 説明
AnyStrategy この戦略を使用すると、システムによって VisualInformation と Relationship 戦略の組み合わを使用して、アンカーを検索することができます。
VisualInformation この方法を指定すると、現在の環境からのビジュアル情報をアンカーのビジュアル占有領域のものと照合することによってアンカーを検索することが試みられます。 アンカーのビジュアル占有領域とは、アンカーに現在関連付けられているビジュアル情報を指します。 このビジュアル情報は、通常、アンカーの作成中に収集されますが、これに限定されるものではありません。 現在、この方法は NearDevice または Identifier プロパティとの組み合わせでのみ使用できます。
関係 この方法を指定すると、既存の接続されたアンカーを使用してアンカーの検索が試みられます。 現在、この方法は NearAnchor または Identifiers プロパティとの組み合わせでのみ使用できます。 Identifiers プロパティと組み合わせて使用する場合、同じセッション内でユーザーは、Identifiers 配列で ID が指定されているアンカーへの接続関係が既に確立されているアンカーを事前に検索している必要があります。

LocateStrategy と AnchorLocateCriteria プロパティの有効な組み合わせ

現在、Strategy と AnchorLocateCriteria プロパティのすべての組み合わせがシステムで許可されているわけではありません。 次の表に利用可能な組み合わせを示します。

プロパティ AnyStrategy 関係 VisualInformation
識別子
NearAnchor ✓ (既定では Relationship)
NearDevice

次のステップ

AnchorLocateCriteria クラスを使用したその他の例については、「Azure Spatial Anchors を使用してアンカーを作成および探知する方法」を参照してください。