Spatial - Get Geofence

Utilizado para obter a proximidade de uma coordenada a um perímetro geográfico.

A Get Geofence API é um pedido HTTP GET que obtém a proximidade de uma coordenada para um perímetro geográfico que foi carregado para o Registo de dados. Carregue um perímetro geográfico ou um conjunto de cercas para uma Conta de Armazenamento do Azure e, em seguida, registe-o na sua Conta de Azure Maps com o Registo de dados. Para obter mais informações, consulte Como criar um registo de dados. Para obter mais informações sobre o formato de dados georreplicação, veja Geofencing GeoJSON data (Dados GeoJSON de Perímetro Geográfico). Para consultar a proximidade de uma coordenada, forneça a localização do objeto que está a controlar, bem como o ID da vedação ou conjunto de vedações e a resposta irá conter informações sobre a distância da margem externa do perímetro geográfico. Um valor negativo significa que a coordenada está dentro da vedação, enquanto um valor positivo significa que está fora da vedação.

Esta API pode ser utilizada para uma variedade de cenários que incluem elementos como o controlo de recursos, a gestão de frotas ou a configuração de alertas para mover objetos.

A API suporta a integração com o Event Grid. O parâmetro isAsync é utilizado para ativar a integração com o Event Grid (desativado por predefinição). Para testar esta API, pode carregar os dados de exemplo dos exemplos da API Post Geofence (Corpo do Pedido) com o serviço Registo de dados e substituir o {udid} do pedido de exemplo abaixo pelo udid utilizado para criar o Registo de dados. Para obter mais informações sobre o serviço de registo de dados, veja Como criar um registo de dados.

Geofencing InnerError code (Código InnerError de perímetro geográfico)

No contrato de erro de resposta de perímetro geográfico, innererror é um objeto que contém informações específicas do serviço sobre o erro. code é uma propriedade na innererror qual pode mapear para um tipo de erro de perímetro geográfico específico. A tabela abaixo mostra o mapeamento de código entre todo o tipo de erro de cliente conhecido para o erro messagede perímetro geográfico correspondente.

innererror.code error.message
NullDeviceId O ID do dispositivo não deve ser nulo.
NullUdid A Udid não deve ser nula.
UdidWrongFormat A Udid deve ser adquirida a partir da API de ingestão de dados do utilizador.
InvalidUserTime O tempo de utilizador é inválido.
InvalidSearchBuffer Searchbuffer é inválido.
InvalidSearchRange O intervalo de valores de searchbuffer deve ser de 0 a 500 metros.
InvalidLatLon Os parâmetros lat e/ou lon são inválidos.
InvalidIsAsyncValue O parâmetro IsAsync é inválido.
InvalidModeValue O parâmetro de modo é inválido.
InvalidJson Os dados geográficos não são um ficheiro json válido.
NotSupportedGeoJson Os dados geográficos não podem ser lidos como uma Funcionalidade ou FeatureCollections.
InvalidGeoJson Os dados geográficos são inválidos.
NoUserDataWithAccountOrSubscription Não é possível localizar dados geográficos do utilizador com id de conta fornecido e/ou id de subscrição.
NoUserDataWithUdid Não é possível localizar dados geofencing de utilizadores com udid fornecido.
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 do URI

Name Em Necessário Tipo Description
format
path True

JsonFormat

Formato pretendido da resposta. Apenas json o formato é suportado.

geography
path True

string

Localização da Conta Azure Maps. Os valores válidos são nós (E.U.A. Leste, E.U.A. Centro-Oeste, E.U.A. Oeste 2) e eu (Europa do Norte, Europa Ocidental). Este parâmetro é necessário quando um udid é fornecido no pedido. Por exemplo, se a Conta de Azure Maps estiver localizada nos E.U.A. Leste, apenas serão aceites pedidos para a nossa geografia.

api-version
query True

string

Número da versão da API Azure Maps.

deviceId
query True

string

ID do dispositivo

lat
query True

number

A latitude da localização que está a ser transmitida. Exemplo: 48.36.

lon
query True

number

A longitude da localização que está a ser transmitida. Exemplo: -124.63.

udid
query True

string

O ID exclusivo utilizado ao criar um Registo de dados para carregar um objeto GeoJSON FeatureCollection válido. Consulte RFC 7946 para obter detalhes. Todas as propriedades da funcionalidade devem conter geometryId, que é utilizada para identificar a geometria e é sensível às maiúsculas e minúsculas. Para obter mais informações sobre o serviço de registo de dados, veja Como criar o registo de dados.

isAsync
query

boolean

Se for verdadeiro, o pedido utilizará o mecanismo de eventos assíncrono; se for falso, o pedido será sincronizado e não acionará nenhum evento. O valor predefinido é false.

mode
query

GeofenceMode

Modo do mecanismo de eventos assíncrono geofencing.

searchBuffer
query

number

O raio da memória intermédia em torno da geofência em metros que define até onde procurar dentro e fora do limite da vedação contra a coordenada fornecida ao calcular o resultado. O valor mínimo é 0 e o máximo é 500. O valor predefinido é 50.

userTime
query

string

date-time

O tempo de pedido do utilizador. Se não for apresentado no pedido, o valor predefinido é DateTime.Now.

z
query

number

O nível do mar no medidor da localização que está a ser passada. Se este parâmetro for apresentado, é utilizada a extrusão 2D. Exemplo: 200.

Cabeçalho do Pedido

Name Necessário Tipo Description
x-ms-client-id

string

Especifica a conta que se destina à utilização em conjunto com o modelo de segurança Microsoft Entra ID. Representa um ID exclusivo para a conta Azure Maps e pode ser obtido a partir da API de Conta do plano de gestão Azure Maps. Para utilizar Microsoft Entra ID segurança no Azure Maps consulte os seguintes artigos para obter orientações.

Respostas

Name Tipo Description
200 OK

Geofence

OK O valor do cabeçalho X-Correlation-id está presente na resposta de uma chamada assíncrona e nos dados do evento do Event Grid. Ajuda a correlacionar a resposta da chamada assíncrona com o evento do Event Grid correspondente.

Headers

X-Correlation-id: string

Other Status Codes

ErrorResponse

Ocorreu um erro inesperado.

Segurança

AADToken

Estes são os fluxos Microsoft Entra OAuth 2.0. Quando emparelhado com o controlo de acesso baseado em funções do Azure, pode ser utilizado para controlar o acesso às APIs REST Azure Maps. Os controlos de acesso baseados em funções do Azure são utilizados para designar o acesso a uma ou mais Azure Maps conta de recursos ou sub-recursos. Qualquer utilizador, grupo ou principal de serviço pode ter acesso através de uma função incorporada ou de uma função personalizada composta por uma ou mais permissões para Azure Maps APIs REST.

Para implementar cenários, recomendamos que veja os conceitos de autenticação. Em resumo, esta definição de segurança fornece uma solução para modelar aplicações através de objetos com capacidade de controlo de acesso em APIs e âmbitos específicos.

Notas

  • Esta definição de segurança requer a utilização do x-ms-client-id cabeçalho para indicar a que recurso Azure Maps a aplicação está a pedir acesso. Isto pode ser adquirido a partir da API de gestão do Maps.

O Authorization URL é específico da instância da cloud pública do Azure. As clouds soberanas têm URLs de Autorização exclusivos e configurações de Microsoft Entra ID. * O controlo de acesso baseado em funções do Azure está configurado a partir do plano de gestão do Azure através de portal do Azure, PowerShell, CLI, SDKs do Azure ou APIs REST. * A utilização do SDK Web Azure Maps permite a configuração baseada na configuração de uma aplicação para vários casos de utilização.

Type: oauth2
Flow: implicit
Authorization URL: https://login.microsoftonline.com/common/oauth2/authorize

Scopes

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

subscription-key

Esta é uma chave partilhada que é aprovisionada ao criar um recurso Azure Maps através do plano de gestão do Azure através de portal do Azure, PowerShell, CLI, SDKs do Azure ou APIs REST.

Com esta chave, qualquer aplicação está autorizada a aceder a todas as APIs REST. Por outras palavras, estas podem atualmente ser tratadas como chaves mestras da conta para a qual são emitidas.

Para aplicações expostas publicamente, a nossa recomendação é utilizar o acesso servidor a servidor das APIs REST Azure Maps onde esta chave pode ser armazenada de forma segura.

Type: apiKey
In: header

SAS Token

Este é um token de assinatura de acesso partilhado criado a partir da operação Listar SAS no recurso Azure Maps através do plano de gestão do Azure através de portal do Azure, PowerShell, CLI, SDKs do Azure ou APIs REST.

Com este token, qualquer aplicação está autorizada a aceder com controlos de acesso baseados em funções do Azure e controlo detalhado para a expiração, taxa e regiões de utilização para o token específico. Por outras palavras, o Token de SAS pode ser utilizado para permitir que as aplicações controlem o acesso de uma forma mais segura do que a chave partilhada.

Para aplicações expostas publicamente, a nossa recomendação é configurar uma lista específica de origens permitidas no recurso da conta de Mapa para limitar o abuso de composição e renovar regularmente o Token de SAS.

Type: apiKey
In: header

Exemplos

GetGeofence

Sample Request

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

Sample Response

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

Definições

Name Description
ErrorAdditionalInfo

Informações adicionais sobre o erro de gestão de recursos.

ErrorDetail

O detalhe do erro.

ErrorResponse

Resposta a erros

Geofence

Este objeto é devolvido de uma chamada de proximidade de geofence.

GeofenceGeometry

A geometria de perímetro geográfico.

GeofenceMode

Modo do mecanismo de eventos assíncrono de perímetro geográfico.

JsonFormat

Formato pretendido da resposta. Apenas json o formato é suportado.

ErrorAdditionalInfo

Informações adicionais sobre o erro de gestão de recursos.

Name Tipo Description
info

object

As informações adicionais.

type

string

O tipo de informações adicionais.

ErrorDetail

O detalhe do erro.

Name Tipo Description
additionalInfo

ErrorAdditionalInfo[]

As informações adicionais do erro.

code

string

O código de erro.

details

ErrorDetail[]

Os detalhes do erro.

message

string

A mensagem de erro.

target

string

O destino do erro.

ErrorResponse

Resposta a erros

Name Tipo Description
error

ErrorDetail

O objeto de erro.

Geofence

Este objeto é devolvido de uma chamada de proximidade de geofence.

Name Tipo Description
expiredGeofenceGeometryId

string[]

Listas do ID de geometria da georreplicação que expirou em relação à hora do utilizador no pedido.

geometries

GeofenceGeometry[]

Listas as geometrias da vedação que contêm a posição da coordenada ou sobrepõem-se ao searchBuffer em torno da posição.

invalidPeriodGeofenceGeometryId

string[]

Listas do ID de geometria da georreplicação que se encontra num período inválido em relação à hora do utilizador no pedido.

isEventPublished

boolean

Verdadeiro se, pelo menos, um evento for publicado no subscritor de eventos Azure Maps, falso se não for publicado nenhum evento no subscritor do evento Azure Maps. Isto só será apresentado em resposta quando o parâmetro de consulta "isAsync" estiver definido como verdadeiro.

GeofenceGeometry

A geometria de perímetro geográfico.

Name Tipo Description
deviceId

string

ID do dispositivo.

distance

number

Distância da coordenada até ao limite mais próximo do perímetro geográfico (em metros, exceto quando são utilizados valores especiais -999/999). Positivo significa que a coordenada está fora do perímetro geográfico. Se a coordenada estiver fora do perímetro geográfico, mas mais do que o valor de searchBuffer longe do limite geofence mais próximo, o valor é 999. Negativo significa que a coordenada está dentro do perímetro geográfico. Se a coordenada estiver dentro do polígono, mas mais do que o valor de searchBuffer longe do limite de perímetro geográfico mais próximo, o valor é -999. Um valor de 999 significa que há uma grande confiança de que a coordenada está bem fora do perímetro geográfico. Um valor de -999 significa que há uma grande confiança de que a coordenada está dentro do perímetro geográfico.

geometryId

string

O ID exclusivo identifica uma geometria.

nearestLat

number

Latitude do ponto mais próximo da geometria.

nearestLon

number

Longitude do ponto mais próximo da geometria.

nearestZ

number

Nível do mar no medidor do ponto mais próximo da geometria de extrusão 2D. Isto só será apresentado em resposta quando o valor for fornecido para "zInMeter" no pedido.

udId

string

O ID exclusivo utilizado ao criar um Registo de dados para carregar um objeto GeoJSON FeatureCollection válido. Consulte RFC 7946 para obter detalhes. Todas as propriedades da funcionalidade devem conter geometryId, que é utilizada para identificar a geometria e é sensível às maiúsculas e minúsculas. Para obter mais informações sobre o serviço de registo de dados, veja Como criar um registo de dados.

GeofenceMode

Modo do mecanismo de eventos assíncrono de perímetro geográfico.

Name Tipo Description
All

string

Publique todos os resultados da consulta para Azure Maps subscrição de eventos da conta.

EnterAndExit

string

Publicar apenas o resultado quando a localização do utilizador é considerada como cruzando o placador de perímetro geográfico.

JsonFormat

Formato pretendido da resposta. Apenas json o formato é suportado.

Name Tipo Description
json

string

Formato JavaScript Object Notation Data Interchange