Partager via


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 messagede 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

JsonFormat

Format souhaité de la réponse. Seul le format json est pris en charge.

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 udid est fourni dans la demande. Par exemple, si le compte Azure Maps se trouve dans la région USA Est, seules les demandes qui nous sont adressées à la zone géographique sont acceptées.

api-version
query True

string

Numéro de version de l’API Azure Maps.

deviceId
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 geometryId, qui est utilisé pour identifier la géométrie et respecte la casse. Pour plus d’informations sur le service de registre de données, consultez Création d’un registre de données.

isAsync
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

GeofenceMode

Mode du mécanisme d’événement asynchrone de géofencing.

searchBuffer
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.

userTime
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

Geofence

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

ErrorResponse

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.

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
ErrorAdditionalInfo

Informations supplémentaires sur l’erreur de gestion des ressources.

ErrorDetail

Détail de l’erreur.

ErrorResponse

Réponse d’erreur

Geofence

Cet objet est retourné à partir d’un appel de proximité de limite géographique.

GeofenceGeometry

Géométrie de géorefencing.

GeofenceMode

Mode du mécanisme d’événement asynchrone de geofencing.

JsonFormat

Format souhaité de la réponse. Seul le format json est pris en charge.

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

ErrorAdditionalInfo[]

Informations supplémentaires sur l’erreur.

code

string

Code d'erreur.

details

ErrorDetail[]

Détails de l’erreur.

message

string

Message d’erreur.

target

string

Cible d’erreur.

ErrorResponse

Réponse d’erreur

Nom Type Description
error

ErrorDetail

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

GeofenceGeometry[]

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 geometryId, qui est utilisé pour identifier la géométrie et respecte la casse. Pour plus d’informations sur le service de registre de données, consultez Comment créer un registre de données.

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

Format d’échange de données de notation d’objet JavaScript