Spatial - Post Geofence
Use para obter a proximidade de uma coordenada para uma cerca geográfica.
A Post Geofence
API é uma solicitação HTTP POST
que recupera a proximidade de uma coordenada para uma cerca geográfica fornecida ou um conjunto de cercas. Com POST
as solicitações, você não precisa carregar os dados de cerca com antecedência, em vez disso, fornece o local do objeto que está rastreando em parâmetros de consulta, bem como a cerca ou conjunto de dados de cercas no corpo da solicitação pós-solicitação. Para obter mais informações sobre o formato de dados de cerca geográfica, consulte Geofencing GeoJSON data. A resposta conterá informações sobre a distância da borda externa da cerca geográfica. Um valor negativo significa que a coordenada está dentro da cerca, enquanto um valor positivo significa que ela está fora da cerca.
Essa API pode ser usada para uma variedade de cenários que incluem itens como acompanhamento de ativos, gerenciamento de frota ou configuração de alertas para mover objetos.
A API dá suporte à integração com a Grade de Eventos. O parâmetro isAsync é usado para habilitar a integração com a Grade de Eventos (desabilitada por padrão).
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}
Parâmetros de URI
Nome | Em | Obrigatório | Tipo | Description |
---|---|---|---|---|
format
|
path | True |
Formato desejado da resposta. Há suporte apenas para o formato |
|
geography
|
path | True |
string |
Local da Conta do Azure Mapas. Os valores válidos são nós (Leste dos EUA, Centro-Oeste dos EUA, Oeste dos EUA 2) e EU (Norte da Europa, Europa Ocidental). Esse parâmetro é necessário quando um |
api-version
|
query | True |
string |
Número de versão da API de Mapas Azure. |
device
|
query | True |
string |
ID do dispositivo |
lat
|
query | True |
number |
A latitude do local que está sendo passado. Exemplo: 48.36. |
lon
|
query | True |
number |
A longitude do local que está sendo passado. Exemplo: -124.63. |
is
|
query |
boolean |
Se for true, a solicitação usará o mecanismo de evento assíncrono; se false, a solicitação será sincronizada e não disparará nenhum evento. O valor padrão é false. |
|
mode
|
query |
Modo do mecanismo de evento assíncrono de cerca geográfica. |
||
search
|
query |
number |
O raio do buffer ao redor da cerca geográfica em metros que define até onde pesquisar dentro e fora da borda da cerca contra a coordenada fornecida ao calcular o resultado. O valor mínimo é 0 e o máximo é 500. O valor padrão é 50. |
|
user
|
query |
string date-time |
O tempo de solicitação do usuário. Se não for apresentado na solicitação, o valor padrão será DateTime.UtcNow. |
|
z
|
query |
number |
O nível do mar no medidor do local que está sendo passado. Se esse parâmetro for apresentado, o geofencing de extrusão 2D será aplicado. Exemplo: 200. |
Cabeçalho da solicitação
Nome | Obrigatório | Tipo | Description |
---|---|---|---|
x-ms-client-id |
string |
Especifica qual conta destina-se ao uso em conjunto com o modelo de segurança da ID do Microsoft Entra. Ele representa uma ID exclusiva para a conta do Azure Mapas e pode ser recuperado da API de Conta do plano de gerenciamento do Azure Mapas. Para usar a segurança do Microsoft Entra ID no Azure Mapas, confira os artigos a seguir para obter diretrizes . |
Corpo da solicitação
Nome | Obrigatório | Tipo | Description |
---|---|---|---|
features | True |
Contém uma lista de objetos válidos |
|
type | True |
string:
Feature |
Especifica o tipo de |
Respostas
Nome | Tipo | Description |
---|---|---|
200 OK |
OK O valor do cabeçalho X-Correlation-id está presente na resposta de uma chamada assíncrona e nos dados de evento da Grade de Eventos. Ele ajuda a correlacionar a resposta da chamada assíncrona com o evento correspondente da Grade de Eventos. Cabeçalhos X-Correlation-id: string |
|
Other Status Codes |
Erro inesperado. |
Segurança
AADToken
Estes são os Fluxos do Microsoft Entra OAuth 2.0 . Quando emparelhado com o controle de acesso baseado em função do Azure , ele pode ser usado para controlar o acesso às APIs REST do Azure Mapas. Os controles de acesso baseados em função do Azure são usados para designar o acesso a uma ou mais sub-recursos ou conta de recurso do Azure Mapas. Qualquer usuário, grupo ou entidade de serviço pode receber acesso por meio de uma função interna ou uma função personalizada composta por uma ou mais permissões para APIs REST do Azure Mapas.
Para implementar cenários, recomendamos exibir conceitos de autenticação. Em resumo, essa definição de segurança fornece uma solução para modelar aplicativos por meio de objetos capazes de acessar o controle em APIs e escopos específicos.
Observações
- Essa definição de segurança requer o uso do
x-ms-client-id
cabeçalho para indicar a qual recurso do Azure Mapas o aplicativo está solicitando acesso. Isso pode ser adquirido da API de gerenciamento de Mapas.
O Authorization URL
é específico para a instância de nuvem pública do Azure. As nuvens soberanas têm URLs de autorização exclusivas e configurações de ID do Microsoft Entra.
* O controle de acesso baseado em função do Azure é configurado no plano de gerenciamento do Azure por meio do portal do Azure, do PowerShell, da CLI, dos SDKs do Azure ou das APIs REST.
* O uso do SDK da Web do Azure Mapas permite a configuração baseada em configuração de um aplicativo para vários casos de uso.
- Para obter mais informações sobre a plataforma de identidade da Microsoft, consulte Visão geral da plataforma de identidade da Microsoft.
Tipo:
oauth2
Flow:
implicit
URL de Autorização:
https://login.microsoftonline.com/common/oauth2/authorize
Escopos
Nome | Description |
---|---|
https://atlas.microsoft.com/.default | https://atlas.microsoft.com/.default |
subscription-key
Essa é uma chave compartilhada provisionada ao criar um recurso do Azure Mapas por meio do plano de gerenciamento do Azure por meio do portal do Azure, do PowerShell, da CLI, dos SDKs do Azure ou das APIs REST.
Com essa chave, qualquer aplicativo está autorizado a acessar todas as APIs REST. Em outras palavras, elas podem atualmente ser tratadas como chaves mestras para a conta para a qual são emitidas.
Para aplicativos expostos publicamente, nossa recomendação é usar o acesso de servidor a servidor de APIs REST do Azure Mapas em que essa chave pode ser armazenada com segurança.
Tipo:
apiKey
Em:
header
SAS Token
Esse é um token de assinatura de acesso compartilhado criado a partir da operação Listar SAS no recurso do Azure Mapas por meio do plano de gerenciamento do Azure por meio do portal do Azure, do PowerShell, da CLI, dos SDKs do Azure ou das APIs REST.
Com esse token, qualquer aplicativo está autorizado a acessar com controles de acesso baseados em função do Azure e controle refinado à expiração, taxa e regiões de uso para o token específico. Em outras palavras, o Token SAS pode ser usado para permitir que os aplicativos controlem o acesso de maneira mais segura do que a chave compartilhada.
Para aplicativos expostos publicamente, nossa recomendação é configurar uma lista específica de origens permitidas no recurso de conta do Mapa para limitar o abuso de renderização e renovar regularmente o Token SAS.
Tipo:
apiKey
Em:
header
Exemplos
PostGeofence
Solicitação de exemplo
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"
}
}
]
}
Resposta de exemplo
{
"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
}
Definições
Nome | Description |
---|---|
Error |
As informações adicionais do erro de gerenciamento de recursos. |
Error |
Os detalhes do erro. |
Error |
Resposta de erro |
Geofence |
Esse objeto é retornado de uma chamada de proximidade de cerca geográfica. |
Geofence |
A geometria de cerca geográfica. |
Geofence |
Modo do mecanismo de evento assíncrono de cerca geográfica. |
Geo |
Um tipo de objeto válido |
Geo |
Um tipo de objeto válido |
Geo |
Um objeto de geometria válido |
Geo |
Um tipo de objeto válido |
Geo |
Um tipo de geometria válido |
Geo |
Um tipo de geometria válido |
Geo |
Um tipo de geometria válido |
Geo |
Um tipo de objeto válido |
Geo |
Um tipo de geometria válido |
Geo |
Um tipo de geometria válido |
Json |
Formato desejado da resposta. Há suporte apenas para o formato |
ErrorAdditionalInfo
As informações adicionais do erro de gerenciamento de recursos.
Nome | Tipo | Description |
---|---|---|
info |
object |
As informações adicionais. |
type |
string |
O tipo de informação adicional. |
ErrorDetail
Os detalhes do erro.
Nome | Tipo | Description |
---|---|---|
additionalInfo |
As informações adicionais do erro. |
|
code |
string |
O código de erro. |
details |
Os detalhes do erro. |
|
message |
string |
A mensagem de erro. |
target |
string |
O destino do erro. |
ErrorResponse
Resposta de erro
Nome | Tipo | Description |
---|---|---|
error |
O objeto de erro. |
Geofence
Esse objeto é retornado de uma chamada de proximidade de cerca geográfica.
Nome | Tipo | Description |
---|---|---|
expiredGeofenceGeometryId |
string[] |
Listas da ID de geometria da cerca geográfica que expirou em relação ao tempo do usuário na solicitação. |
geometries |
Lista as geometrias de delimitação que contêm a posição da coordenada ou sobrepõem o searchBuffer em torno da posição. |
|
invalidPeriodGeofenceGeometryId |
string[] |
Listas da ID de geometria da cerca geográfica que está em um período inválido em relação ao tempo do usuário na solicitação. |
isEventPublished |
boolean |
True se pelo menos um evento for publicado no assinante de evento do Azure Mapas e false se nenhum evento for publicado no assinante de evento do Azure Mapas. Isso só será apresentado em resposta quando o parâmetro de consulta 'isAsync' for definido como true. |
GeofenceGeometry
A geometria de cerca geográfica.
Nome | Tipo | Description |
---|---|---|
deviceId |
string |
ID do dispositivo. |
distance |
number |
Distância da coordenada até a borda mais próxima da cerca geográfica (em metros, exceto quando valores especiais -999/999 são usados). Positivo significa que a coordenada está fora da cerca geográfica. Se a coordenada estiver fora da cerca geográfica, mas for maior que o valor de searchBuffer distante da borda da cerca geográfica mais próxima, o valor será 999. Negativo significa que a coordenada está dentro da cerca geográfica. Se a coordenada estiver dentro do polígono, mas for maior que o valor de searchBuffer distante da borda de delimitação geográfica mais próxima, o valor será -999. Um valor de 999 significa que há grande confiança de que a coordenada esteja bem fora da cerca geográfica. Um valor de -999 significa que há uma grande confiança de que a coordenada esteja bem dentro da cerca geográfica. |
geometryId |
string |
A ID exclusiva 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 na geometria de extrusão 2D. Isso só será apresentado em resposta quando o valor for fornecido para 'zInMeter' na solicitação. |
udId |
string |
A ID exclusiva usada ao criar um Registro de dados para carregar um objeto FeatureCollection GeoJSON válido. Consulte RFC 7946 para obter detalhes. Todas as propriedades do recurso devem conter |
GeofenceMode
Modo do mecanismo de evento assíncrono de cerca geográfica.
Nome | Tipo | Description |
---|---|---|
All |
string |
Publique todos os resultados da consulta na assinatura de evento da conta do Azure Mapas. |
EnterAndExit |
string |
Resultado de publicação somente quando a localização do usuário é considerada como cruzando o boarder de cerca geográfica. |
GeoJsonFeature
Um tipo de objeto válido GeoJSON Feature
. Consulte RFC 7946 para obter detalhes.
Nome | Tipo | Description |
---|---|---|
featureType |
string |
O tipo do recurso. O valor depende do modelo de dados do qual o recurso atual faz parte. Alguns modelos de dados podem ter um valor vazio. |
geometry | GeoJsonGeometry: |
Um objeto de geometria válido |
id |
string |
Identificador do recurso. |
type |
string:
Feature |
Especifica o tipo de |
GeoJsonFeatureCollection
Um tipo de objeto válido GeoJSON FeatureCollection
. Consulte RFC 7946 para obter detalhes.
Nome | Tipo | Description |
---|---|---|
features |
Contém uma lista de objetos válidos |
|
type |
string:
Feature |
Especifica o tipo de |
GeoJsonGeometry
Um objeto de geometria válido GeoJSON
. O tipo deve ser um dos sete tipos de geometria GeoJSON válidos : Point, MultiPoint, LineString, MultiLineString, Polygon, MultiPolygon e GeometryCollection. Consulte RFC 7946 para obter detalhes.
Nome | Tipo | Description |
---|---|---|
type |
Geo |
Especifica o tipo de |
GeoJsonGeometryCollection
Um tipo de objeto válido GeoJSON GeometryCollection
. Consulte RFC 7946 para obter detalhes.
Nome | Tipo | Description |
---|---|---|
geometries | GeoJsonGeometry[]: |
Contém uma lista de objetos de geometria válidos |
type |
string:
Geometry |
Especifica o tipo de |
GeoJsonLineString
Um tipo de geometria válido GeoJSON LineString
. Consulte RFC 7946 para obter detalhes.
Nome | Tipo | Description |
---|---|---|
coordinates |
number[] |
Coordenadas para a |
type |
string:
Line |
Especifica o tipo de |
GeoJsonMultiLineString
Um tipo de geometria válido GeoJSON MultiLineString
. Consulte RFC 7946 para obter detalhes.
Nome | Tipo | Description |
---|---|---|
coordinates |
number[] |
Coordenadas para a |
type |
string:
Multi |
Especifica o tipo de |
GeoJsonMultiPoint
Um tipo de geometria válido GeoJSON MultiPoint
. Consulte RFC 7946 para obter detalhes.
Nome | Tipo | Description |
---|---|---|
coordinates |
number[] |
Coordenadas para a |
type |
string:
Multi |
Especifica o tipo de |
GeoJsonMultiPolygon
Um tipo de objeto válido GeoJSON MultiPolygon
. Consulte RFC 7946 para obter detalhes.
Nome | Tipo | Description |
---|---|---|
coordinates |
number[] |
Contém uma lista de objetos válidos |
type |
string:
Multi |
Especifica o tipo de |
GeoJsonPoint
Um tipo de geometria válido GeoJSON Point
. Consulte RFC 7946 para obter detalhes.
Nome | Tipo | Description |
---|---|---|
coordinates |
number[] |
Um |
type |
string:
Point |
Especifica o tipo de |
GeoJsonPolygon
Um tipo de geometria válido GeoJSON Polygon
. Consulte RFC 7946 para obter detalhes.
Nome | Tipo | Description |
---|---|---|
coordinates |
number[] |
Coordenadas para o |
type |
string:
Polygon |
Especifica o tipo de |
JsonFormat
Formato desejado da resposta. Há suporte apenas para o formato json
.
Nome | Tipo | Description |
---|---|---|
json |
string |
O formato de intercâmbio de dados de notação de objeto JavaScript |