Compartir a través de


Spatial - Get Geofence

Use para obtener la proximidad de una coordenada a una geovalla.

La Get Geofence API es una solicitud HTTP GET que recupera la proximidad de una coordenada a una geovalla que se ha cargado en el registro de datos. Cargue una geovalla o un conjunto de barreras en una cuenta de Azure Storage y, a continuación, regístrela con su cuenta de Azure Maps mediante el Registro de datos para obtener más información, consulte Creación del registro de datos. Para obtener más información sobre el formato de datos de geovalla, consulte Geofencing GeoJSON data (Datos geoJSON de geovalla). Para consultar la proximidad de una coordenada, proporcione la ubicación del objeto que está realizando el seguimiento, así como el identificador de la valla o el conjunto de vallas, y la respuesta contendrá información sobre la distancia desde el borde exterior de la geovalla. Un valor negativo significa que la coordenada está dentro de la valla, mientras que un valor positivo significa que está fuera de la valla.

Esta API se puede usar para una variedad de escenarios que incluyen elementos como el seguimiento de recursos, la administración de flotas o la configuración de alertas para mover objetos.

La API admite la integración con Event Grid. El parámetro isAsync se usa para habilitar la integración con Event Grid (deshabilitado de forma predeterminada). Para probar esta API, puede cargar los datos de ejemplo de ejemplos de Post Geofence API (Cuerpo de solicitud) mediante el servicio Registro de datos y reemplazar el {udid} de la solicitud de ejemplo siguiente por el udid usado para crear el registro de datos. Para obtener más información sobre el servicio de registro de datos, consulte Creación del registro de datos.

Código InnerError de geovalla

En el contrato de error de respuesta de geovalla, innererror es un objeto que contiene información específica del servicio sobre el error. code es una propiedad en la innererror que se puede asignar a un tipo de error de geovalla específico. En la tabla siguiente se muestra la asignación de código entre todo el tipo de error de cliente conocido al error messagede geovalla correspondiente.

innererror.code error.message
NullDeviceId El id. de dispositivo no debe ser null.
NullUdid Udid no debe ser NULL.
UdidWrongFormat Udid debe adquirirse a partir de la API de ingesta de datos de usuario.
InvalidUserTime Usertime no es válido.
InvalidSearchBuffer Searchbuffer no es válido.
InvalidSearchRange El intervalo de valores de searchbuffer debe ser de 0 a 500 metros.
InvalidLatLon Los parámetros lat o lon no son válidos.
InvalidIsAsyncValue El parámetro IsAsync no es válido.
InvalidModeValue El parámetro mode no es válido.
InvalidJson Los datos de geovalla no son un archivo JSON válido.
NotSupportedGeoJson Los datos de geovalla no se pueden leer como una característica o featureCollections.
InvalidGeoJson Los datos de geovalla no son válidos.
NoUserDataWithAccountOrSubscription No se pueden encontrar datos de geovalla de usuario con el identificador de cuenta o el identificador de suscripción proporcionados.
NoUserDataWithUdid No se pueden encontrar datos de geovallas de usuario con el udid proporcionado.
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}

Parámetros de identificador URI

Nombre En Requerido Tipo Description
format
path True

JsonFormat

Formato deseado de la respuesta. Solo se admite el formato json.

geography
path True

string

Ubicación de la cuenta de Azure Maps. Los valores válidos son nosotros (Este de EE. UU., Centro-oeste de EE. UU., Oeste de EE. UU. 2) y eu (Norte de Europa, Oeste de Europa). Este parámetro es necesario cuando se proporciona un udid elemento en la solicitud. Por ejemplo, si la cuenta de Azure Maps se encuentra en este de EE. UU., solo se aceptarán las solicitudes a nosotros geography.

api-version
query True

string

Número de versión de la API de Azure Maps.

deviceId
query True

string

Id. del dispositivo

lat
query True

number

Latitud de la ubicación que se pasa. Ejemplo: 48.36.

lon
query True

number

Longitud de la ubicación que se pasa. Ejemplo: -124.63.

udid
query True

string

Identificador único que se usa al crear un registro de datos para cargar un objeto FeatureCollection de GeoJSON válido. Consulte RFC 7946 para obtener más información. Todas las propiedades de la característica deben contener geometryId, que se usa para identificar la geometría y distingue mayúsculas de minúsculas. Para obtener más información sobre el servicio de registro de datos, consulte Creación del registro de datos.

isAsync
query

boolean

Si es true, la solicitud usará un mecanismo de eventos asincrónico; si es false, la solicitud se sincronizará y no desencadenará ningún evento. El valor predeterminado es false.

mode
query

GeofenceMode

Modo del mecanismo de eventos asincrónicos de geovalla.

searchBuffer
query

number

Radio del búfer alrededor de la geovalla en metros que define la distancia a buscar dentro y fuera del borde de la valla contra la coordenada que se proporcionó al calcular el resultado. El valor mínimo es 0 y el máximo es 500. El valor predeterminado es 50.

userTime
query

string

date-time

Hora de solicitud del usuario. Si no se presenta en la solicitud, el valor predeterminado es DateTime.Now.

z
query

number

Nivel del mar en el medidor de la ubicación que se pasa. Si se presenta este parámetro, se usa la extrusión 2D. Ejemplo: 200.

Encabezado de la solicitud

Nombre Requerido Tipo Description
x-ms-client-id

string

Especifica qué cuenta está pensada para su uso junto con el modelo de seguridad de Id. de Entra de Microsoft. Representa un identificador único para la cuenta de Azure Maps y se puede recuperar de la API de cuenta del plano de administración de Azure Maps. Para usar la seguridad de id. de Entra de Microsoft en Azure Maps, consulte los siguientes artículos para obtener instrucciones.

Respuestas

Nombre Tipo Description
200 OK

Geofence

Ok El valor del encabezado X-Correlation-id está presente en la respuesta de una llamada asincrónica y en los datos de eventos de Event Grid. Ayuda a correlacionar la respuesta de la llamada asincrónica con el evento de Event Grid correspondiente.

Encabezados

X-Correlation-id: string

Other Status Codes

ErrorResponse

Se ha producido un error inesperado.

Seguridad

AADToken

Estos son los flujos de Microsoft Entra OAuth 2.0 . Cuando se empareja con el control de acceso basado en rol de Azure , se puede usar para controlar el acceso a las API REST de Azure Maps. Los controles de acceso basados en roles de Azure se usan para designar el acceso a una o varias cuentas de recursos o subrecursos de Azure Maps. Se puede conceder acceso a cualquier usuario, grupo o entidad de servicio mediante un rol integrado o un rol personalizado compuesto por uno o varios permisos para las API REST de Azure Maps.

Para implementar escenarios, se recomienda ver los conceptos de autenticación. En resumen, esta definición de seguridad proporciona una solución para modelar aplicaciones a través de objetos capaces de controlar el acceso en determinadas API y ámbitos.

Notas

  • Esta definición de seguridad requiere el uso del x-ms-client-id encabezado para indicar a qué recurso de Azure Maps solicita acceso la aplicación. Esto se puede adquirir desde la API de administración de Maps.

Authorization URL es específico de la instancia de nube pública de Azure. Las nubes soberanas tienen direcciones URL de autorización únicas y configuraciones de id. de Microsoft Entra. * El control de acceso basado en rol de Azure se configura desde el plano de administración de Azure mediante Azure Portal, PowerShell, la CLI, los SDK de Azure o las API REST. * El uso del SDK web de Azure Maps permite la configuración basada en la configuración de una aplicación para varios casos de uso.

Tipo: oauth2
Flujo: implicit
Dirección URL de autorización: https://login.microsoftonline.com/common/oauth2/authorize

Ámbitos

Nombre Description
https://atlas.microsoft.com/.default https://atlas.microsoft.com/.default

subscription-key

Se trata de una clave compartida que se aprovisiona al crear un recurso de Azure Maps a través del plano de administración de Azure mediante Azure Portal, PowerShell, la CLI, los SDK de Azure o las API REST.

Con esta clave, cualquier aplicación está autorizada para acceder a todas las API REST. En otras palabras, estos se pueden tratar actualmente como claves maestras para la cuenta para la que se emiten.

En el caso de las aplicaciones expuestas públicamente, nuestra recomendación es usar el acceso de servidor a servidor de las API REST de Azure Maps donde esta clave se puede almacenar de forma segura.

Tipo: apiKey
En: header

SAS Token

Se trata de un token de firma de acceso compartido que se crea a partir de la operación List SAS en el recurso de Azure Maps a través de Azure Portal, PowerShell, CLI, SDK de Azure o API REST.

Con este token, cualquier aplicación está autorizada para acceder a los controles de acceso basado en rol de Azure y el control específico a la expiración, la tasa y las regiones de uso para el token determinado. En otras palabras, el token de SAS se puede usar para permitir que las aplicaciones controlen el acceso de forma más segura que la clave compartida.

En el caso de las aplicaciones expuestas públicamente, nuestra recomendación es configurar una lista específica de orígenes permitidos en el recurso de la cuenta de asignación para limitar la representación del abuso y renovar periódicamente el token de SAS.

Tipo: apiKey
En: header

Ejemplos

GetGeofence

Solicitud de ejemplo

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

Respuesta de muestra

{
  "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
}

Definiciones

Nombre Description
ErrorAdditionalInfo

Información adicional sobre el error de administración de recursos.

ErrorDetail

Detalle del error.

ErrorResponse

Respuesta de error

Geofence

Este objeto se devuelve desde una llamada de proximidad de geovalla.

GeofenceGeometry

Geometría de geovalla.

GeofenceMode

Modo del mecanismo de eventos asincrónicos de geovalla.

JsonFormat

Formato deseado de la respuesta. Solo se admite el formato json.

ErrorAdditionalInfo

Información adicional sobre el error de administración de recursos.

Nombre Tipo Description
info

object

Información adicional.

type

string

Tipo de información adicional.

ErrorDetail

Detalle del error.

Nombre Tipo Description
additionalInfo

ErrorAdditionalInfo[]

Información adicional del error.

code

string

Código de error.

details

ErrorDetail[]

Los detalles del error.

message

string

El mensaje de error.

target

string

Destino del error.

ErrorResponse

Respuesta de error

Nombre Tipo Description
error

ErrorDetail

Objeto de error.

Geofence

Este objeto se devuelve desde una llamada de proximidad de geovalla.

Nombre Tipo Description
expiredGeofenceGeometryId

string[]

Listas del identificador de geometría de la geovalla que ha expirado en relación con la hora del usuario en la solicitud.

geometries

GeofenceGeometry[]

Muestra las geometrías de valla que contienen la posición de la coordenada o superpone searchBuffer en torno a esa posición.

invalidPeriodGeofenceGeometryId

string[]

Listas del identificador de geometría de la geovalla que está en un período no válido en relación con la hora del usuario en la solicitud.

isEventPublished

boolean

El valor es "true" si se publica al menos un evento en el suscriptor de eventos de Azure Maps y "false" en caso contrario. Esto solo se mostrará en respuesta cuando el parámetro de consulta 'isAsync' esté establecido en true.

GeofenceGeometry

Geometría de geovalla.

Nombre Tipo Description
deviceId

string

Identificador del dispositivo.

distance

number

Distancia desde la coordenada hasta el borde más cercano de la geovalla (en metros excepto cuando se usan valores especiales -999/999). Un número positivo significa que la coordenada está fuera de la geovalla. Si la coordenada está fuera de la geovalla, pero es superior al valor de la distancia de searchBuffer al borde más cercano de la geovalla, el valor es 999. Un número negativo significa que la coordenada está dentro de la geovalla. Si la coordenada está dentro del polígono, pero es superior al valor de la distancia de searchBuffer al borde más cercano de la geovalla, el valor es -999. Un valor de 999 significa que hay una gran confianza en que la coordenada está fuera de la geovalla. Un valor de 999 significa que hay una gran confianza en que la coordenada está dentro de la geovalla.

geometryId

string

El identificador único identifica una geometría.

nearestLat

number

Latitud del punto más cercano de la geometría.

nearestLon

number

Longitud del punto más cercano de la geometría.

nearestZ

number

Nivel del mar en el medidor del punto más cercano en la geometría de extrusión 2D. Esto solo se presentará en respuesta cuando el valor se proporcione para "zInMeter" en la solicitud.

udId

string

Identificador único que se usa al crear un registro de datos para cargar un objeto FeatureCollection de GeoJSON válido. Consulte RFC 7946 para obtener más información. Todas las propiedades de la característica deben contener geometryId, que se usa para identificar la geometría y distingue mayúsculas de minúsculas. Para obtener más información sobre el servicio de registro de datos, consulte Creación del registro de datos.

GeofenceMode

Modo del mecanismo de eventos asincrónicos de geovalla.

Nombre Tipo Description
All

string

Publique todos los resultados de la consulta en la suscripción de eventos de la cuenta de Azure Maps.

EnterAndExit

string

Solo se publica el resultado cuando la ubicación del usuario se considera que cruza el panel de geovalla.

JsonFormat

Formato deseado de la respuesta. Solo se admite el formato json.

Nombre Tipo Description
json

string

Formato de intercambio de datos de notación de objetos JavaScript