Share via


Spatial - Post Geofence

Utilisez pour obtenir la proximité d’une coordonnée à une limite géographique.

L’API Post Geofence est une requête HTTP POST qui récupère la proximité d’une coordonnée à une limite géographique ou à un ensemble de clôtures fourni. Avec POST les requêtes, vous n’avez pas besoin de charger les données de clôture à l’avance. Au lieu de cela, vous fournissez l’emplacement de l’objet que vous effectuez le suivi dans les paramètres de requête, ainsi que la clôture ou l’ensemble de données de clôtures dans le corps de la demande. Pour plus d’informations sur le format de données de limite géographique, consultez Données GeoJSON de geofencing. La réponse contient des informations sur la distance à partir du 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 qui incluent 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).

POST https://{geography}.atlas.microsoft.com/spatial/geofence/json?api-version=2022-08-01&deviceId={deviceId}&lat={lat}&lon={lon}
POST https://{geography}.atlas.microsoft.com/spatial/geofence/json?api-version=2022-08-01&deviceId={deviceId}&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.

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

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é, le géofencing d’extrusion 2D est appliqué. Exemple : 200.

En-tête de la demande

Nom Obligatoire Type Description
x-ms-client-id

string

Spécifie le compte destiné à être utilisé conjointement avec le modèle de sécurité Microsoft Entra ID. 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 Microsoft Entra ID sécurité dans Azure Maps consultez les articles suivants pour obtenir des conseils.

Corps de la demande

Nom Obligatoire Type Description
features True

GeoJsonFeature[]

Contient une liste d’objets valides GeoJSON Feature .

type True string:

FeatureCollection

Spécifie le type GeoJSON. Doit être l’un des neuf types d’objets GeoJSON valides : Point, MultiPoint, LineString, MultiLineString, Polygon, MultiPolygon, GeometryCollection, Feature et FeatureCollection.

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.

Headers

X-Correlation-id: string

Other Status Codes

ErrorResponse

Une erreur inattendue s’est produite.

Sécurité

AADToken

Il s’agit des flux Microsoft Entra OAuth 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 à Azure Maps API REST. Les contrôles d’accès en fonction du rôle Azure sont utilisés pour désigner l’accès à un ou plusieurs Azure Maps compte de ressource ou sous-ressources. 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 pour Azure Maps API REST.

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.

est Authorization URL spécifique au cloud public Azure instance. Les clouds souverains ont des URL d’autorisation et des configurations Microsoft Entra ID uniques. * Le contrôle d’accès en fonction du rôle Azure est configuré à partir du plan de gestion Azure via Portail Azure, PowerShell, CLI, kits SDK Azure ou 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
Flow: implicit
Authorization URL: https://login.microsoftonline.com/common/oauth2/authorize

Scopes

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 Portail Azure, PowerShell, CLI, kits SDK Azure ou 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 master du compte pour lequel elles sont émises.

Pour les applications exposées publiquement, nous vous recommandons d’utiliser l’accès serveur à serveur de Azure Maps API REST où cette clé peut être stockée en toute sécurité.

Type: apiKey
In: header

SAS Token

Il s’agit d’un jeton de signature d’accès partagé créé à partir de l’opération Répertorier les SAP sur la ressource Azure Maps via le plan de gestion Azure via Portail Azure, PowerShell, CLI, kits SDK Azure ou 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 précis à l’expiration, au taux et à la ou les régions d’utilisation du 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, nous vous recommandons 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 SAS.

Type: apiKey
In: header

Exemples

PostGeofence

Sample Request

POST https://us.atlas.microsoft.com/spatial/geofence/json?api-version=2022-08-01&deviceId=unique_device_name_under_account&lat=48.36&lon=-124.63&userTime={userTime}&searchBuffer=50&isAsync=True&mode=EnterAndExit

{
  "type": "FeatureCollection",
  "features": [
    {
      "type": "Feature",
      "geometry": {
        "type": "Polygon",
        "coordinates": [
          [
            [
              -122.13241226662022,
              47.61701140091722
            ],
            [
              -122.12810106940353,
              47.6169969269402
            ],
            [
              -122.12824948956276,
              47.61907683751349
            ],
            [
              -122.12833297981392,
              47.621929787055336
            ],
            [
              -122.12971398040168,
              47.62184100705295
            ],
            [
              -122.1318413862121,
              47.62195364373008
            ],
            [
              -122.13231034769727,
              47.61716332618121
            ],
            [
              -122.13241226662022,
              47.61701140091722
            ]
          ]
        ]
      },
      "properties": {
        "geometryId": "2",
        "name": "Crossroad Mall"
      }
    },
    {
      "type": "Feature",
      "geometry": {
        "type": "Polygon",
        "coordinates": [
          [
            [
              -122.1534220563239,
              47.60981818546625
            ],
            [
              -122.153451623509,
              47.60628733146004
            ],
            [
              -122.14971782206638,
              47.606250040787046
            ],
            [
              -122.14817354810637,
              47.606391046012305
            ],
            [
              -122.1482735128807,
              47.60983316796356
            ],
            [
              -122.15225500989803,
              47.60982613678752
            ],
            [
              -122.1534220563239,
              47.60981818546625
            ]
          ]
        ]
      },
      "properties": {
        "geometryId": "1",
        "name": "Sammamish High school"
      }
    }
  ]
}

Sample Response

{
  "geometries": [
    {
      "deviceId": "unique_device_name_under_account",
      "geometryId": "2",
      "distance": -999,
      "nearestLat": 47.621954,
      "nearestLon": -122.131841
    },
    {
      "deviceId": "unique_device_name_under_account",
      "geometryId": "1",
      "distance": 999,
      "nearestLat": 47.609833,
      "nearestLon": -122.148274
    }
  ],
  "expiredGeofenceGeometryId": [],
  "invalidPeriodGeofenceGeometryId": [],
  "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éofencing.

GeofenceMode

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

GeoJsonFeature

Type d’objet valide GeoJSON Feature . Pour plus d’informations, consultez RFC 7946 .

GeoJsonFeatureCollection

Type d’objet valide GeoJSON FeatureCollection . Pour plus d’informations, consultez RFC 7946 .

GeoJsonGeometry

Objet geometry valide GeoJSON . Le type doit être l’un des sept types géométriques GeoJSON valides : Point, MultiPoint, LineString, MultiLineString, Polygon, MultiPolygon et GeometryCollection. Pour plus d’informations, consultez RFC 7946 .

GeoJsonGeometryCollection

Type d’objet valide GeoJSON GeometryCollection . Pour plus d’informations, consultez RFC 7946 .

GeoJsonLineString

Type geometry valide GeoJSON LineString . Pour plus d’informations, consultez RFC 7946 .

GeoJsonMultiLineString

Type geometry valide GeoJSON MultiLineString . Pour plus d’informations, consultez RFC 7946 .

GeoJsonMultiPoint

Type geometry valide GeoJSON MultiPoint . Pour plus d’informations, consultez RFC 7946 .

GeoJsonMultiPolygon

Type d’objet valide GeoJSON MultiPolygon . Pour plus d’informations, consultez RFC 7946 .

GeoJsonPoint

Type geometry valide GeoJSON Point . Pour plus d’informations, consultez RFC 7946 .

GeoJsonPolygon

Type geometry valide GeoJSON Polygon . Pour plus d’informations, consultez RFC 7946 .

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

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 requête.

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[]

Listes de l’ID géométrique de la limite géographique, qui est dans une période non valide par rapport à l’heure 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 » a la valeur true.

GeofenceGeometry

Géométrie de géofencing.

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

GeofenceMode

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

Nom Type Description
All

string

Publiez tous les résultats de la requête sur Azure Maps abonnement aux événements de compte.

EnterAndExit

string

Publier le résultat uniquement lorsque l’emplacement de l’utilisateur est considéré comme un panneau de géofencing croisé.

GeoJsonFeature

Type d’objet valide GeoJSON Feature . Pour plus d’informations, consultez RFC 7946 .

Nom Type Description
featureType

string

Type de la fonctionnalité. La valeur dépend du modèle de données dont fait partie la fonctionnalité actuelle. Certains modèles de données peuvent avoir une valeur vide.

geometry GeoJsonGeometry:

Objet geometry valide GeoJSON . Le type doit être l’un des sept types géométriques GeoJSON valides : Point, MultiPoint, LineString, MultiLineString, Polygon, MultiPolygon et GeometryCollection. Pour plus d’informations, consultez RFC 7946 .

id

string

Identificateur de la fonctionnalité.

type string:

Feature

Spécifie le type GeoJSON. Doit être l’un des neuf types d’objets GeoJSON valides : Point, MultiPoint, LineString, MultiLineString, Polygon, MultiPolygon, GeometryCollection, Feature et FeatureCollection.

GeoJsonFeatureCollection

Type d’objet valide GeoJSON FeatureCollection . Pour plus d’informations, consultez RFC 7946 .

Nom Type Description
features

GeoJsonFeature[]

Contient une liste d’objets valides GeoJSON Feature .

type string:

FeatureCollection

Spécifie le type GeoJSON. Doit être l’un des neuf types d’objets GeoJSON valides : Point, MultiPoint, LineString, MultiLineString, Polygon, MultiPolygon, GeometryCollection, Feature et FeatureCollection.

GeoJsonGeometry

Objet geometry valide GeoJSON . Le type doit être l’un des sept types géométriques GeoJSON valides : Point, MultiPoint, LineString, MultiLineString, Polygon, MultiPolygon et GeometryCollection. Pour plus d’informations, consultez RFC 7946 .

Nom Type Description
type

GeoJsonObjectType

Spécifie le type GeoJSON. Doit être l’un des neuf types d’objets GeoJSON valides : Point, MultiPoint, LineString, MultiLineString, Polygon, MultiPolygon, GeometryCollection, Feature et FeatureCollection.

GeoJsonGeometryCollection

Type d’objet valide GeoJSON GeometryCollection . Pour plus d’informations, consultez RFC 7946 .

Nom Type Description
geometries GeoJsonGeometry[]:

Contient une liste d’objets géométriques valides GeoJSON . Notez que les coordonnées dans GeoJSON sont dans l’ordre x, y (longitude, latitude).

type string:

GeometryCollection

Spécifie le type GeoJSON. Doit être l’un des neuf types d’objets GeoJSON valides : Point, MultiPoint, LineString, MultiLineString, Polygon, MultiPolygon, GeometryCollection, Feature et FeatureCollection.

GeoJsonLineString

Type geometry valide GeoJSON LineString . Pour plus d’informations, consultez RFC 7946 .

Nom Type Description
coordinates

number[]

Coordonnées de la GeoJson LineString géométrie.

type string:

LineString

Spécifie le type GeoJSON. Doit être l’un des neuf types d’objets GeoJSON valides : Point, MultiPoint, LineString, MultiLineString, Polygon, MultiPolygon, GeometryCollection, Feature et FeatureCollection.

GeoJsonMultiLineString

Type geometry valide GeoJSON MultiLineString . Pour plus d’informations, consultez RFC 7946 .

Nom Type Description
coordinates

number[]

Coordonnées de la GeoJson MultiLineString géométrie.

type string:

MultiLineString

Spécifie le type GeoJSON. Doit être l’un des neuf types d’objets GeoJSON valides : Point, MultiPoint, LineString, MultiLineString, Polygon, MultiPolygon, GeometryCollection, Feature et FeatureCollection.

GeoJsonMultiPoint

Type geometry valide GeoJSON MultiPoint . Pour plus d’informations, consultez RFC 7946 .

Nom Type Description
coordinates

number[]

Coordonnées de la GeoJson MultiPoint géométrie.

type string:

MultiPoint

Spécifie le type GeoJSON. Doit être l’un des neuf types d’objets GeoJSON valides : Point, MultiPoint, LineString, MultiLineString, Polygon, MultiPolygon, GeometryCollection, Feature et FeatureCollection.

GeoJsonMultiPolygon

Type d’objet valide GeoJSON MultiPolygon . Pour plus d’informations, consultez RFC 7946 .

Nom Type Description
coordinates

number[]

Contient une liste d’objets valides GeoJSON Polygon . Notez que les coordonnées dans GeoJSON sont dans l’ordre x, y (longitude, latitude).

type string:

MultiPolygon

Spécifie le type GeoJSON. Doit être l’un des neuf types d’objets GeoJSON valides : Point, MultiPoint, LineString, MultiLineString, Polygon, MultiPolygon, GeometryCollection, Feature et FeatureCollection.

GeoJsonPoint

Type geometry valide GeoJSON Point . Pour plus d’informations, consultez RFC 7946 .

Nom Type Description
coordinates

number[]

Un Position est un tableau de nombres avec deux éléments ou plus. Les deux premiers éléments sont la longitude et la latitude, précisément dans cet ordre. Altitude/Elevation est un troisième élément facultatif. Pour plus d’informations, consultez RFC 7946 .

type string:

Point

Spécifie le type GeoJSON. Doit être l’un des neuf types d’objets GeoJSON valides : Point, MultiPoint, LineString, MultiLineString, Polygon, MultiPolygon, GeometryCollection, Feature et FeatureCollection.

GeoJsonPolygon

Type geometry valide GeoJSON Polygon . Pour plus d’informations, consultez RFC 7946 .

Nom Type Description
coordinates

number[]

Coordonnées du GeoJson Polygon type geometry.

type string:

Polygon

Spécifie le type GeoJSON. Doit être l’un des neuf types d’objets GeoJSON valides : Point, MultiPoint, LineString, MultiLineString, Polygon, MultiPolygon, GeometryCollection, Feature et FeatureCollection.

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