Spatial - Get Geofence
Utilisez pour obtenir la proximité d’une coordonnée d’une limite géographique.
L’API Get Geofence
est une requête HTTP GET
qui récupère la proximité d’une coordonnée avec une limite géographique qui a été chargée dans le Registre de données. Vous chargez une limite géographique ou un ensemble de clôtures dans un compte de stockage Azure, puis vous l’inscrivez auprès de votre compte Azure Maps à l’aide du registre de données. Pour plus d’informations, consultez Comment créer un registre de données. Pour plus d’informations sur le format de données geofence, consultez Geofencing GeoJSON data. Pour interroger la proximité d’une coordonnée, vous fournissez l’emplacement de l’objet que vous suivez, ainsi que l’ID de la clôture ou de l’ensemble de clôtures, et la réponse contiendra des informations sur la distance par rapport au bord externe de la limite géographique. Une valeur négative signifie que la coordonnée se trouve à l’intérieur de la clôture, tandis qu’une valeur positive signifie qu’elle se trouve à l’extérieur de la clôture.
Cette API peut être utilisée pour divers scénarios, notamment le suivi des ressources, la gestion de la flotte ou la configuration d’alertes pour le déplacement d’objets.
L’API prend en charge l’intégration à Event Grid. Le paramètre isAsync est utilisé pour activer l’intégration à Event Grid (désactivé par défaut). Pour tester cette API, vous pouvez charger les exemples de données à partir d’exemples d’API Post Geofence (Corps de la requête) à l’aide du service Registre de données et remplacer le {udid}
de l’exemple de requête ci-dessous par le udid
utilisé pour créer le registre de données. Pour plus d’informations sur le service de registre de données, consultez Comment créer un registre de données.
Geofencing InnerError code
Dans le contrat d’erreur de réponse de géorefencing, innererror
est un objet contenant des informations spécifiques au service sur l’erreur.
code
est une propriété dans innererror
laquelle peut mapper à un type d’erreur de geofencing spécifique. Le tableau ci-dessous montre le mappage de code entre tout le type d’erreur client connu et l’erreur message
de géofencing correspondante.
innererror.code | error.message |
---|---|
NullDeviceId | L’ID d’appareil ne doit pas être null. |
NullUdid | Udid ne doit pas être null. |
UdidWrongFormat | Udid doit être acquis à partir de l’API d’ingestion de données utilisateur. |
InvalidUserTime | Usertime n’est pas valide. |
InvalidSearchBuffer | Searchbuffer n’est pas valide. |
InvalidSearchRange | La plage de valeurs de searchbuffer doit être comprise entre 0 et 500 mètres. |
InvalidLatLon | Les paramètres lat et/ou lon ne sont pas valides. |
InvalidIsAsyncValue | Le paramètre IsAsync n’est pas valide. |
InvalidModeValue | Paramètre de mode non valide. |
InvalidJson | Les données de géofencing ne sont pas un fichier json valide. |
NotSupportedGeoJson | Les données de géofendage ne peuvent pas être lues en tant que Feature ou FeatureCollections. |
InvalidGeoJson | Les données de géofencing ne sont pas valides. |
NoUserDataWithAccountOrSubscription | Impossible de trouver les données de géofencing utilisateur avec l’id de compte et/ou l’id d’abonnement fournis. |
NoUserDataWithUdid | Impossible de trouver les données de géofencing utilisateur avec l’udid fourni. |
GET https://{geography}.atlas.microsoft.com/spatial/geofence/json?api-version=2022-08-01&deviceId={deviceId}&udid={udid}&lat={lat}&lon={lon}
GET https://{geography}.atlas.microsoft.com/spatial/geofence/json?api-version=2022-08-01&deviceId={deviceId}&udid={udid}&lat={lat}&lon={lon}&z={z}&userTime={userTime}&searchBuffer={searchBuffer}&isAsync={isAsync}&mode={mode}
Paramètres URI
Nom | Dans | Obligatoire | Type | Description |
---|---|---|---|---|
format
|
path | True |
Format souhaité de la réponse. Seul le format |
|
geography
|
path | True |
string |
Emplacement du compte Azure Maps. Les valeurs valides sont nous (USA Est, USA Centre-Ouest, USA Ouest 2) et eu (Europe Nord, Europe Ouest). Ce paramètre est obligatoire lorsqu’un |
api-version
|
query | True |
string |
Numéro de version de l’API Azure Maps. |
device
|
query | True |
string |
ID de l’appareil |
lat
|
query | True |
number |
Latitude de l’emplacement passé. Exemple : 48.36. |
lon
|
query | True |
number |
Longitude de l’emplacement passé. Exemple : -124.63. |
udid
|
query | True |
string |
ID unique utilisé lors de la création d’un registre de données pour charger un objet FeatureCollection GeoJSON valide. Pour plus d’informations, consultez RFC 7946 . Toutes les propriétés de la fonctionnalité doivent contenir |
is
|
query |
boolean |
Si la valeur est true, la requête utilise le mécanisme d’événement asynchrone ; si la valeur est false, la requête est synchronisée et ne déclenche aucun événement. La valeur par défaut est false. |
|
mode
|
query |
Mode du mécanisme d’événement asynchrone de géofencing. |
||
search
|
query |
number |
Rayon de la mémoire tampon autour de la limite géographique en mètres qui définit la distance à rechercher à l’intérieur et à l’extérieur de la bordure de la clôture par rapport à la coordonnée fournie lors du calcul du résultat. La valeur minimale est 0 et la valeur maximale est 500. La valeur par défaut est 50. |
|
user
|
query |
string date-time |
Heure de la demande de l’utilisateur. S’il n’est pas présenté dans la demande, la valeur par défaut est DateTime.Now. |
|
z
|
query |
number |
Le niveau de la mer en mètre de l’emplacement en cours de passage. Si ce paramètre est présenté, l’extrusion 2D est utilisée. Exemple : 200. |
En-tête de la demande
Nom | Obligatoire | Type | Description |
---|---|---|---|
x-ms-client-id |
string |
Spécifie quel compte est destiné à être utilisé conjointement avec le modèle de sécurité de l’ID Microsoft Entra. Il représente un ID unique pour le compte Azure Maps et peut être récupéré à partir de l’API Compte du plan de gestion Azure Maps. Pour utiliser la sécurité des ID Microsoft Entra dans Azure Maps, consultez les articles suivants pour obtenir des conseils. |
Réponses
Nom | Type | Description |
---|---|---|
200 OK |
OK La valeur d’en-tête X-Correlation-id est présente dans la réponse d’un appel asynchrone et dans les données d’événement Event Grid. Il permet de mettre en corrélation la réponse de l’appel asynchrone avec l’événement Event Grid correspondant. En-têtes X-Correlation-id: string |
|
Other Status Codes |
Une erreur inattendue s’est produite. |
Sécurité
AADToken
Il s’agit des flux OAuth Microsoft Entra 2.0 . Lorsqu’il est associé au contrôle d’accès en fonction du rôle Azure , il peut être utilisé pour contrôler l’accès aux API REST Azure Maps. Les contrôles d’accès en fonction du rôle Azure sont utilisés pour désigner l’accès à un ou plusieurs comptes de ressources Ou sous-ressources Azure Maps. Tout utilisateur, groupe ou principal de service peut se voir accorder l’accès via un rôle intégré ou un rôle personnalisé composé d’une ou plusieurs autorisations aux API REST Azure Maps.
Pour implémenter des scénarios, nous vous recommandons d’afficher les concepts d’authentification. En résumé, cette définition de sécurité fournit une solution pour modéliser des applications via des objets capables de contrôler l’accès sur des API et des étendues spécifiques.
Notes
- Cette définition de sécurité nécessite l’utilisation de l’en-tête
x-ms-client-id
pour indiquer à quelle ressource Azure Maps l’application demande l’accès. Vous pouvez l’acquérir à partir de l’API de gestion Maps.
Authorization URL
est spécifique à l’instance de cloud public Azure. Les clouds souverains ont des URL d’autorisation uniques et des configurations d’ID Microsoft Entra.
* Le contrôle d’accès en fonction du rôle Azure est configuré à partir du plan de gestion Azure via le portail Azure, PowerShell, l’interface CLI, les SDK Azure ou les API REST.
* L’utilisation du KIT de développement logiciel (SDK) web Azure Maps permet une configuration basée sur la configuration d’une application pour plusieurs cas d’usage.
- Pour plus d’informations sur la plateforme d’identités Microsoft, consultez Vue d’ensemble de la plateforme d’identités Microsoft.
Type:
oauth2
Flux:
implicit
URL d’autorisation:
https://login.microsoftonline.com/common/oauth2/authorize
Étendues
Nom | Description |
---|---|
https://atlas.microsoft.com/.default | https://atlas.microsoft.com/.default |
subscription-key
Il s’agit d’une clé partagée qui est provisionnée lors de la création d’une ressource Azure Maps via le plan de gestion Azure via le portail Azure, PowerShell, l’interface CLI, les SDK Azure ou les API REST.
Avec cette clé, toute application est autorisée à accéder à toutes les API REST. En d’autres termes, celles-ci peuvent actuellement être traitées comme des clés principales du compte pour lequel elles sont émises.
Pour les applications exposées publiquement, nous vous recommandons d’utiliser l’accès de serveur à serveur des API REST Azure Maps, où cette clé peut être stockée en toute sécurité.
Type:
apiKey
Dans:
header
SAS Token
Il s’agit d’un jeton de signature d’accès partagé créé à partir de l’opération List SAS sur la ressource Azure Maps via le plan de gestion Azure via le portail Azure, PowerShell, l’interface CLI, les SDK Azure ou les API REST.
Avec ce jeton, toute application est autorisée à accéder avec des contrôles d’accès en fonction du rôle Azure et un contrôle de grain précis à l’expiration, au taux et aux régions d’utilisation pour le jeton particulier. En d’autres termes, le jeton SAP peut être utilisé pour permettre aux applications de contrôler l’accès de manière plus sécurisée que la clé partagée.
Pour les applications exposées publiquement, notre recommandation est de configurer une liste spécifique d’origines autorisées sur la ressource de compte Map afin de limiter les abus de rendu et de renouveler régulièrement le jeton SAP.
Type:
apiKey
Dans:
header
Exemples
GetGeofence
Exemple de requête
GET https://us.atlas.microsoft.com/spatial/geofence/json?api-version=2022-08-01&deviceId=unique_device_name_under_account&udid=f6495f62-94f8-0ec2-c252-45626f82fcb2&lat=48.36&lon=-124.63&userTime=2022-08-21T17:32:28Z&searchBuffer=50&isAsync=True&mode=EnterAndExit
Exemple de réponse
{
"geometries": [
{
"deviceId": "unique_device_name_under_account",
"udId": "f6495f62-94f8-0ec2-c252-45626f82fcb2",
"geometryId": "2",
"distance": 999,
"nearestLat": 47.621954,
"nearestLon": -122.131841
},
{
"deviceId": "unique_device_name_under_account",
"udId": "f6495f62-94f8-0ec2-c252-45626f82fcb2",
"geometryId": "1",
"distance": -999,
"nearestLat": 47.609833,
"nearestLon": -122.148274
}
],
"expiredGeofenceGeometryId": [
"5"
],
"invalidPeriodGeofenceGeometryId": [
"3",
"4"
],
"isEventPublished": true
}
Définitions
Nom | Description |
---|---|
Error |
Informations supplémentaires sur l’erreur de gestion des ressources. |
Error |
Détail de l’erreur. |
Error |
Réponse d’erreur |
Geofence |
Cet objet est retourné à partir d’un appel de proximité de limite géographique. |
Geofence |
Géométrie de géorefencing. |
Geofence |
Mode du mécanisme d’événement asynchrone de geofencing. |
Json |
Format souhaité de la réponse. Seul le format |
ErrorAdditionalInfo
Informations supplémentaires sur l’erreur de gestion des ressources.
Nom | Type | Description |
---|---|---|
info |
object |
Informations supplémentaires |
type |
string |
Type d’informations supplémentaires. |
ErrorDetail
Détail de l’erreur.
Nom | Type | Description |
---|---|---|
additionalInfo |
Informations supplémentaires sur l’erreur. |
|
code |
string |
Code d'erreur. |
details |
Détails de l’erreur. |
|
message |
string |
Message d’erreur. |
target |
string |
Cible d’erreur. |
ErrorResponse
Réponse d’erreur
Nom | Type | Description |
---|---|---|
error |
Objet d’erreur. |
Geofence
Cet objet est retourné à partir d’un appel de proximité de limite géographique.
Nom | Type | Description |
---|---|---|
expiredGeofenceGeometryId |
string[] |
Listes de l’ID de géométrie de la limite géographique qui a expiré par rapport à l’heure de l’utilisateur dans la demande. |
geometries |
Répertorie les géométries de la limite qui contiennent la position des coordonnées ou chevauchent le searchBuffer autour de la position. |
|
invalidPeriodGeofenceGeometryId |
string[] |
Répertorie l’ID géométrique de la limite géographique qui est dans une période non valide par rapport à l’heure de l’utilisateur dans la demande. |
isEventPublished |
boolean |
Vrai si au moins un événement est publié à l’abonné de l’événement Azure Maps, faux si aucun événement n’est publié à l’abonné de l’événement Azure Maps Cela ne sera présenté en réponse que lorsque le paramètre de requête « isAsync » est défini sur true. |
GeofenceGeometry
Géométrie de géorefencing.
Nom | Type | Description |
---|---|---|
deviceId |
string |
ID de l’appareil. |
distance |
number |
Distance entre la coordonnée et la bordure la plus proche de la limite géographique (en mètres sauf lorsque des valeurs spéciales -999/999 sont utilisées). Une valeur positive signifie que la coordonnée se situe à l’extérieur de la limite géographique. Si la coordonnée se situe à l’extérieur de la limite géographique mais que la valeur de searchBuffer est en dehors de la bordure de limite géographique la plus proche, la valeur est égale à 999. Une valeur négative signifie que la coordonnée se situe à l’intérieur de la limite géographique. Si la coordonnée se situe à l’intérieur du polygone mais que la valeur de searchBuffer est en dehors de la bordure de limite géographique la plus proche, la valeur est égale à -999. Une valeur égale à 999 signifie qu’il y a une grande probabilité que la coordonnée se trouve en dehors de la limite géographique. Une valeur égale à 999 signifie qu’il y a une grande probabilité que la coordonnée se trouve en deçà de la limite géographique. |
geometryId |
string |
L’ID unique identifie une géométrie. |
nearestLat |
number |
Latitude du point plus proche de la géométrie. |
nearestLon |
number |
Longitude du point plus proche de la géométrie. |
nearestZ |
number |
Niveau de la mer en mètre du point le plus proche sur la géométrie d’extrusion 2D. Cela ne sera présenté en réponse que lorsque la valeur est fournie pour « zInMeter » dans la demande. |
udId |
string |
ID unique utilisé lors de la création d’un registre de données pour charger un objet GeoJSON FeatureCollection valide. Pour plus d’informations, consultez RFC 7946 . Toutes les propriétés de la fonctionnalité doivent contenir |
GeofenceMode
Mode du mécanisme d’événement asynchrone de geofencing.
Nom | Type | Description |
---|---|---|
All |
string |
Publiez tous les résultats de la requête dans l’abonnement aux événements de compte Azure Maps. |
EnterAndExit |
string |
Publiez uniquement le résultat lorsque l’emplacement de l’utilisateur est considéré comme un boarder de géorefencing croisé. |
JsonFormat
Format souhaité de la réponse. Seul le format json
est pris en charge.
Nom | Type | Description |
---|---|---|
json |
string |