Fonctionnement de la classe AnchorLocateCriteria
Dans cet article, vous allez découvrir les différentes options que vous pouvez utiliser lors de l’interrogation d’une ancre. Nous allons passer en revue la classe AnchorLocateCriteria, ses options et les combinaisons d’options valides.
Critères de localisation d’une ancre
La classe AnchorLocateCriteria vous permet d’interroger le service pour trouver des ancres créées précédemment. Un objet AnchorLocateCriteria peut être utilisé par observateur à tout moment. Chaque objet AnchorLocateCriteria doit inclure exactement une des propriétés suivantes : Identifiers, NearAnchor ou NearDevice. Des propriétés supplémentaires telles que Strategy, BypassCache et RequestedCategories peuvent être définies si vous le souhaitez.
Propriétés
Définissez une seule des propriétés suivantes dans votre observateur :
Identificateurs
Valeur par défaut : tableau de chaînes vide
En utilisant Identifiers, vous pouvez définir une liste d’ID d’ancre pour les ancres que vous souhaitez localiser. Les ID d’ancre vous sont initialement renvoyés après la création réussie d’une ancre. Lorsque la propriété Identifiers est spécifiée, AnchorLocateCriteria restreint l’ensemble des ancres demandées aux ancres dont les ID d’ancre correspondent. Cette propriété est spécifiée à l’aide d’un tableau de chaînes.
NearAnchor
Valeur par défaut : non définie
À l’aide de NearAnchor, vous pouvez spécifier que le paramètre AnchorLocateCriteria restreint l’ensemble des ancres demandées à celles qui se trouvent à une distance donnée par rapport à une ancre choisie. Vous devez fournir cette ancre choisie comme ancre source. Vous pouvez également définir la distance souhaitée par rapport à l’ancre source, ainsi que le nombre maximum d’ancres renvoyées, afin de limiter davantage la recherche. Cette propriété est spécifiée à l’aide d’un objet NearAnchorCriteria.
NearDevice
Valeur par défaut : non définie
À l’aide de NearDevice, vous pouvez spécifier qu’AnchorLocateCriteria restreint l’ensemble des ancres demandées à celles proches de l’emplacement physique de l’appareil. Tout capteur activé sera utilisé pour détecter les ancres autour de votre appareil. Pour obtenir les meilleures chances de trouver des ancres, vous devez configurer SensorCapabilities pour permettre à la session d’accéder à tous les capteurs appropriés. Pour plus d’informations sur la configuration et l’utilisation de cette propriété, consultez Relocalisation grossière – Azure Spatial Anchors | Microsoft Docs et Comment créer et localiser des ancres à l’aide de la relocalisation grossière en C#, Objective-C, Swift, Java, C++/NDK et C++/WinRT. Cette propriété est spécifiée à l’aide d’un objet NearDeviceCriteria.
Propriétés supplémentaires
BypassCache
Valeur par défaut : false
Lorsqu’une ancre a été créée ou trouvée dans une session, elle est également stockée dans le cache. Si cette propriété a la valeur false, toute requête ultérieure dans la même session renverra la valeur mise en cache. Aucune demande au service ASA n’est effectuée.
RequestedCategories
Valeur par défaut : Propriétés | Spatial
Cette propriété est utilisée pour déterminer quelles données sont renvoyées par une requête utilisant AnchorLocateCriteria. La valeur par défaut renvoie à la fois les propriétés et les données spatiales ; elle ne doit pas être modifiée si les propriétés et les données spatiales sont toutes deux souhaitées. Cette propriété peut être spécifiée à l’aide de l’énumération AnchorDataCategory.
Valeur d’énumération AnchorDataCategory | Données renvoyées |
---|---|
Aucun | Aucune donnée n’est renvoyée. |
Propriétés | Les propriétés de l’ancre, y compris AppProperties, sont renvoyées. |
Spatial | Les informations spatiales relatives à une ancre sont renvoyées. |
Stratégie
Valeur par défaut : AnyStrategy
La stratégie définit plus en détail le mode de localisation des ancres. La propriété Strategy peut être spécifiée à l’aide d’une énumération LocateStrategy.
Valeur d’énumération LocateStrategy | Description |
---|---|
AnyStrategy | Cette stratégie permet au système d’utiliser des combinaisons de stratégies VisualInformation et Relationship pour rechercher des ancres. |
VisualInformation | Cette stratégie tente de trouver des ancres en faisant correspondre les informations visuelles de l’environnement actuel à celles de l’empreinte visuelle de l’ancre. L’empreinte visuelle d’une ancre fait référence aux informations visuelles actuellement associées à l’ancre. Ces informations visuelles sont généralement recueillies lors de la création de l’ancre. Actuellement, cette stratégie est autorisée uniquement conjointement avec les propriétés NearDevice ou Identifiers. |
Relation | Cette stratégie tente de trouver des ancres en utilisant les ancres connectées existantes. Actuellement, cette stratégie est autorisée uniquement conjointement avec les propriétés NearAnchor ou Identifiers. Lorsqu’elle est utilisée avec la propriété Identifiers, il faut que, dans la même session, l’utilisateur ait déjà localisé une ou plusieurs ancres ayant des relations de connexion déjà établies avec les ancres dont les ID sont spécifiés dans le tableau Identifiers. |
Combinaisons valides des propriétés LocateStrategy et AnchorLocateCriteria
Toutes les combinaisons des propriétés Strategy et AnchorLocateCriteria ne sont pas actuellement autorisées par le système. Le tableau suivant indique les combinaisons autorisées :
Propriété | AnyStrategy | Relation | VisualInformation |
---|---|---|---|
Identificateurs | ✓ | ✓ | ✓ |
NearAnchor | ✓ (la valeur par défaut sera Relationship) | ✓ | |
NearDevice | ✓ | ✓ |
Étapes suivantes
Pour obtenir d’autres exemples d’utilisation de la classe AnchorLocateCriteria, consultez Guide pratique pour créer et localiser des ancres à l’aide d’Azure Spatial Anchors.