Tutorial: Configurar um limite geográfico usando o Azure MapasTutorial: Set up a geofence by using Azure Maps

Este tutorial ensina as noções básicas de criação e uso dos serviços de Cerca Geográfica do Azure Mapas no contexto do seguinte cenário:This tutorial walks you through the basics of creating and using Azure Maps Geofence services in the context of the following scenario:

Um Gerenciador de Sites de construção precisa acompanhar o equipamento conforme ele entra e sai dos perímetros de uma área de construção. Sempre que uma parte do equipamento sair ou entrar nesses perímetros, uma notificação por email será enviada para o Operations Manager.A construction Site Manager must track equipment as it enters and leaves the perimeters of a construction area. Whenever a piece of equipment exits or enters these perimeters, an email notification will be sent to the Operations Manager.

O Azure Mapas fornece vários serviços para dar suporte ao acompanhamento de equipamentos que entram e saem da área de construção no cenário acima.Azure Maps provides a number of services to support the tracking of equipment entering and exiting the construction area in the above scenario. Neste tutorial, abordaremos como:In this tutorial we cover how to:

  • Carregue os Dados GeoJSON de delimitação geográfica que define as áreas do site de construção que desejamos monitorar.Upload Geoencing GeoJSON data that defines the construction site areas we wish to monitor. Usaremos a API de Carregamento de Dados para carregar cercas geográficas como coordenadas em polígono na sua conta do Azure Mapas.We'll use the Data Upload API to upload geofences as polygon coordinates to your Azure Maps account.
  • Configure dois Aplicativos Lógicos que, quando disparados, enviarão notificações por email para o Operations Manager do site de construção quando o equipamento entrar e sair da área de cerca geográfica.Set up two Logic App that, when triggered, will send email notifications to the construction site Operations Manager when equipment enters and exits the geofence area.
  • Use a Grade de Eventos do Azure para assinar eventos de entrada e saída de cerca geográfica do Azure Mapas.Use the Azure Event Grid to subscribe to Azure Maps geofence enter and exit events. Vamos configurar duas assinaturas de evento do web hook que chamarão os pontos de extremidade HTTP definidos nos dois Aplicativos Lógicos.We'll setup two Web Hook event subscriptions that will call the HTTP endpoints defined in your two Logic Apps. Em seguida, os Aplicativos Lógicos enviarão as notificações por email apropriadas de equipamentos que se movem além da cerca geográfica ou que entram nela.The Logic Apps will then send the appropriate email notifications of equipment moving beyond or entering the geofence.
  • Use a Pesquisa de API de GET de Cerca Geográfica para receber notificações quando uma parte do equipamento sair e entrar em áreas de cerca geográfica.Use Search Geofence Get API to receive notifications when a piece of equipment exits and enters the geofence areas.

Pré-requisitosPrerequisites

  1. Fazer uma conta do Azure MapasMake an Azure Maps account
  2. Obtenha uma chave de assinatura primária, também conhecida como a chave primária ou a chave de assinatura.Obtain a primary subscription key, also known as the primary key or the subscription key.

Este tutorial usa o aplicativo Postman, mas você pode escolher um ambiente de desenvolvimento de API diferente.This tutorial uses the Postman application, but you may choose a different API development environment.

Carregando dados GeoJSON de delimitação geográficaUpload Geofencing GeoJSON data

Neste tutorial, vamos carregar dados GeoJSON de delimitação geográfica que contenham um FeatureCollection.In this tutorial, we'll upload Geofencing GeoJSON data that contains a FeatureCollection. O FeatureCollection contém duas cercas geográficas que definem áreas poligonais no site de construção.The FeatureCollection contains two geofences that define polygonal areas within the construction site. A primeira cerca geográfica não tem restrições ou hora de término.The first geofence has no time expiration or restrictions. A segunda só pode ser consultada durante o horário comercial (9h às 17h PST)The second one can only be queried against during business hours (9-5 P.M. e não será mais válida após 1º de janeiro de 2022.PST), and will no longer be valid after January 1, 2022. Para obter mais informações sobre o formato GeoJSON, confira Dados de GeoJSON de delimitação geográfica.For more information on the GeoJSON format, see Geofencing GeoJSON data.

Dica

Você pode atualizar os dados de Delimitação Geográfica a qualquer momento.You can update your Geofencing data at any time. Para obter mais informações sobre como atualizar os seus dados, confira a API de Carregamento de DadosFor more information on how to update your data, see Data Upload API

  1. Abra o aplicativo Postman.Open the Postman app. Próximo à parte superior do aplicativo Postman, selecione Novo.Near the top of the Postman app, select New. Na janela Criar, selecione Coleção.In the Create New window, select Collection. Nomeie a coleção e selecione o botão Criar.Name the collection and select the Create button.

  2. Para criar a solicitação, selecione Novo outra vez.To create the request, select New again. Na janela Criar, selecione Solicitação.In the Create New window, select Request. Insira um Nome de solicitação para a solicitação.Enter a Request name for the request. Selecione a coleção que você criou na etapa anterior e clique em Salvar.Select the collection you created in the previous step, and then select Save.

  3. Selecione o método HTTP POST na guia do construtor e insira a URL a seguir para carregar os dados de delimitação geográfica no serviço do Azure Mapas.Select the POST HTTP method in the builder tab and enter the following URL to upload the geofencing data to the Azure Maps service. Para essa solicitação e outras solicitações mencionadas neste artigo, substitua {Azure-Maps-Primary-Subscription-key} pela sua chave de assinatura primária.For this request, and other requests mentioned in this article, replace {Azure-Maps-Primary-Subscription-key} with your primary subscription key.

    https://atlas.microsoft.com/mapData/upload?subscription-key={Azure-Maps-Primary-Subscription-key}&api-version=1.0&dataFormat=geojson
    

    O parâmetro geojson no caminho da URL representa o formato dos dados que estão sendo carregados.The geojson parameter in the URL path represents the data format of the data being uploaded.

  4. Clique na guia Corpo. Selecione bruto e escolha JSON como o formato de entrada.Click on the Body tab. Select raw, and then JSON as the input format. Copie e cole os seguintes dados GeoJSON na área de texto Corpo:Copy and paste the following GeoJSON data into the Body text area:

    {
       "type": "FeatureCollection",
       "features": [
         {
           "type": "Feature",
           "geometry": {
             "type": "Polygon",
             "coordinates": [
               [
                 [
                   -122.13393688201903,
                   47.63829579223815
                 ],
                 [
                   -122.13389128446579,
                   47.63782047131512
                 ],
                 [
                   -122.13240802288054,
                   47.63783312249837
                 ],
                 [
                   -122.13238388299942,
                   47.63829037035086
                 ],
                 [
                   -122.13393688201903,
                   47.63829579223815
                 ]
               ]
             ]
           },
           "properties": {
             "geometryId": "1"
           }
         },
         {
           "type": "Feature",
           "geometry": {
             "type": "Polygon",
             "coordinates": [
               [
                 [
                   -122.13374376296996,
                   47.63784758098976
                 ],
                 [
                   -122.13277012109755,
                   47.63784577367854
                 ],
                 [
                   -122.13314831256866,
                   47.6382813338708
                 ],
                 [
                   -122.1334782242775,
                   47.63827591198201
                 ],
                 [
                   -122.13374376296996,
                   47.63784758098976
                 ]
               ]
             ]
           },
           "properties": {
             "geometryId": "2",
             "validityTime": {
             "expiredTime": "2022-01-01T00:00:00",
             "validityPeriod": [
                 {
                   "startTime": "2020-07-15T16:00:00",
                   "endTime": "2020-07-15T24:00:00",
                   "recurrenceType": "Daily",
                   "recurrenceFrequency": 1,
                   "businessDayOnly": true
                 }
               ]
             }
           }
         }
       ]
    }
    
  5. Clique no botão azul Enviar e aguarde a solicitação ser processada.Click the blue Send button and wait for the request to process. Depois que a solicitação for concluída, vá para a guia Cabeçalhos da resposta.Once the request completes, go to the Headers tab of the response. Copie o valor da chave Local, que é status URL.Copy the value of the Location key, which is the status URL.

    https://atlas.microsoft.com/mapData/operations/<operationId>?api-version=1.0
    
  6. Para verificar o status da chamada à API, crie uma solicitação HTTP GET em status URL.To check the status of the API call, create a GET HTTP request on the status URL. Você precisará acrescentar sua chave de assinatura primária à URL para autenticação.You'll need to append your primary subscription key to the URL for authentication. A solicitação GET deve ser semelhante à seguinte URL:The GET request should like the following URL:

    https://atlas.microsoft.com/mapData/<operationId>/status?api-version=1.0&subscription-key={Subscription-key}
    
  7. Quando a solicitação HTTP GET for concluída com êxito, ela retornará um resourceLocation.When the GET HTTP request completes successfully, it will return a resourceLocation. O resourceLocation contém o udid exclusivo para o conteúdo carregado.The resourceLocation contains the unique udid for the uploaded content. Você precisará salvar este udid para consultar a API de GET de Cerca Geográfica na última seção deste tutorial.You'll need to save this udid to query the Get Geofence API in the last section of this tutorial. Opcionalmente, você poderá usar a URL do resourceLocation para recuperar metadados desse recurso na próxima etapa.Optionally, you can use the resourceLocation URL to retrieve metadata from this resource in the next step.

    {
        "status": "Succeeded",
        "resourceLocation": "https://atlas.microsoft.com/mapData/metadata/{udid}?api-version=1.0"
    }
    
  8. Para recuperar metadados de conteúdo, crie uma solicitação HTTP GET na URL do resourceLocation que foi recuperada na etapa 7.To retrieve content metadata, create a GET HTTP request on the resourceLocation URL that was retrieved in step 7. Certifique-se de acrescentar a sua chave de assinatura primária à URL para autenticação.Make sure to append your primary subscription key to the URL for authentication. A solicitação GET deve ser semelhante à seguinte URL:The GET request should like the following URL:

    https://atlas.microsoft.com/mapData/metadata/{udid}?api-version=1.0&subscription-key={Azure-Maps-Primary-Subscription-key}
    
  9. Quando o a solicitação HTTP GET for concluída com êxito, o corpo da resposta conterá o udid especificado no resourceLocation da etapa 7, a localização para acessar/baixar o conteúdo no futuro e outros metadados sobre o conteúdo, como data de criação/atualização, tamanho e assim por diante.When the GET HTTP request completes successfully, the response body will contain the udid specified in the resourceLocation of step 7, the location to access/download the content in the future, and some other metadata about the content like created/updated date, size, and so on. Um exemplo da resposta geral é:An example of the overall response is:

    {
        "udid": "{udid}",
        "location": "https://atlas.microsoft.com/mapData/{udid}?api-version=1.0",
        "created": "7/15/2020 6:11:43 PM +00:00",
        "updated": "7/15/2020 6:11:45 PM +00:00",
        "sizeInBytes": 1962,
        "uploadStatus": "Completed"
    }
    

Criar fluxos de trabalho de Aplicativo LógicoCreate Logic App workflows

Nesta seção, criaremos dois pontos de extremidade de Aplicativo Lógico que dispararão uma notificação por email.In this section, we'll create two Logic App endpoints that will trigger an email notification. Mostraremos como criar o primeiro gatilho que enviará notificações por email sempre que o ponto de extremidade for chamado.We'll show you how to create the first trigger that will send email notifications whenever its endpoint is called.

  1. Entre no Portal do AzureSign in to the Azure portal

  2. No canto superior esquerdo do portal do Azure, clique em Criar um recurso.In the upper left-hand corner of the Azure portal, click Create a resource.

  3. Na caixa Pesquisar no Marketplace, digite Aplicativo Lógico.In the Search the Marketplace box, type Logic App.

  4. Nos Resultados, selecione Aplicativo Lógico.From the Results, select Logic App. Clique no botão Criar.Click Create button.

  5. Na página Aplicativo Lógico, insira os seguintes valores:On the Logic App page, enter the following values:

    • A Assinatura que você deseja usar para esse aplicativo lógico.The Subscription that you want to use for this logic app.
    • O nome do Grupo de recursos para esse aplicativo lógico.The Resource group name for this logic app. Você pode optar por Criar novo ou Usar existente em relação ao grupo de recursos.You may choose to Create new or Use existing resource group.
    • O nome do seu Aplicativo Lógico.The Logic App name of your logic app. Nesse caso, usaremos Equipment-Enter como o nome.In this case, we'll use Equipment-Enter as the name.

    Para este tutorial, mantenha o restante dos valores nas configurações padrão.For the purposes of this tutorial, keep the rest of the values on their default settings.

    Criar um aplicativo lógico

  6. Clique no botão Examinar + Criar.Click the Review + Create button. Examine as configurações e clique em Criar para enviar a implantação.Review your settings and click Create to submit deployment. Quando a implantação for concluída com êxito, clique em Acessar o recurso.When the deployment successfully completes, click on Go to resource. Você será levado para o Designer de Aplicativo LógicoYou'll be taken to the Logic App Designer

  7. Agora, selecionaremos um tipo de gatilho.Now, we'll select a trigger type. Role um pouco para baixo até a seção *Iniciar com um gatilho comum**.Scroll down a bit to the Start with a common trigger* section. Clique em Quando uma solicitação HTTP for recebida.Click on When an HTTP request is received.

    Criar um gatilho HTTP do aplicativo lógico

  8. Clique em Salvar no canto superior direito do Designer.Click Save in the upper right-hand corner of the Designer. A URL de HTTP POST será gerada automaticamente.The HTTP POST URL will be automatically generated. Salve a URL, pois você precisará dela na próxima seção para criar um ponto de extremidade de evento.Save the URL, as you'll need it in the next section to create an event endpoint.

    JSON e URL de solicitação HTTP do Aplicativo Lógico

  9. Selecione + Nova Etapa.Select + New Step. Agora, escolha uma ação.Now we'll choose an action. Digite outlook.com email na caixa de pesquisa.Type outlook.com email in the search box. Na lista Ações, role para baixo e clique em Enviar um email (V2) .In the Actions list, scroll down and click on Send an email (V2).

    Criar um designer de aplicativo lógico

  10. Entrar na conta do Outlook.com.Sign in to your Outlook.com account. Certifique-se de clicar em Sim para permitir que o Aplicativo Lógico acesse a conta.Make sure to click Yes to allow the Logic App to access the account. Preencha os campos para enviar um email.Fill in the fields for sending an email.

    Criar uma etapa Enviar email do aplicativo lógico

    Dica

    Você pode recuperar dados de resposta GeoJSON, como geometryId ou deviceId, nas suas notificações por email configurando o Aplicativo Lógico para ler os dados enviados pela Grade de Eventos.You can retrieve GeoJSON response data, such as geometryId or deviceId in your email notifications by configuring Logic App to read the data sent by the Event Grid. Para obter informações sobre como configurar o Aplicativo Lógico para consumir e transmitir dados de evento em notificações por email, confira Tutorial: enviar notificações por email sobre os eventos do Hub IoT do Azure usando os Aplicativos Lógicos e a Grade de Eventos.For information on how to configure Logic App to consume and pass event data into email notifications, see Tutorial: Send email notifications about Azure IoT Hub events using Event Grid and Logic Apps.

  11. Clique em Salvar no canto superior esquerdo do Designer de Aplicativos Lógicos.Click Save on the upper left-hand corner of the Logic Apps Designer.

  12. Repita as etapas 3 a 11 para criar um segundo Aplicativo Lógico para notificar o gerente quando o equipamento sair do site de construção.Repeat steps 3-11 to create a second Logic App to notify the manager when equipment exits the construction site. Nome do Aplicativo Lógico Equipment-Exit.Name the Logic App Equipment-Exit.

Criar assinaturas de Eventos do Azure MapasCreate Azure Maps Events subscriptions

O Azure Mapas dá suporte a três tipos de evento.Azure Maps supports three event types. Você pode dar uma olhada nos tipos de evento compatíveis do Azure Mapas aqui.You can have a look at the Azure Maps supported event types here. Precisaremos criar duas assinaturas de evento diferentes: uma para os eventos de entrada de cerca geográfica e outra para os eventos de saída.We'll need to create two different event subscriptions: one for geofence enter events and one for the geofence exit events.

Siga as etapas abaixo para criar uma assinatura de evento para eventos de entrada no limite geográfico.Follow the steps below to create an event subscription for the geofence enter events. Você pode assinar eventos de saída de cerca geográfica repetindo as etapas de maneira semelhante.You can subscribe to geofence exit events by repeating the steps in a similar manner.

  1. Navegue até a conta dos Azure Mapas.Navigate to your Azure Maps account. No painel, selecione Assinaturas.In the dashboard, select Subscriptions. Clique no nome da sua assinatura e selecione Eventos no menu Configurações.Click on your subscription name and select events from the settings menu.

    Navegue até os Eventos da conta do Azure Mapas

  2. Para criar uma assinatura de evento, selecione + Assinatura de Evento na página de eventos.To create an event subscription, select + Event Subscription from the events page.

    Criar uma assinatura de Eventos do Azure Mapas

  3. Na página Criar Assinatura de Eventos, insira os seguintes valores:On the Create Event Subscription page, enter the following values:

    • O Nome da assinatura de evento.The Name of the event subscription.
    • O Esquema de Evento deve ser Esquema de Grade de Eventos.The Event Schema should be Event Grid Schema.
    • O Nome do Tópico do Sistema dessa assinatura de evento.The System Topic Name for this event subscription. Neste caso, usaremos Contoso-Construction.In this case, we'll use Contoso-Construction.
    • Em Filtrar os Tipos de Evento, escolha Geofence Entered como o tipo de evento.On the Filter to Event Types, choose Geofence Entered as the event type.
    • Para o Tipo de Ponto de Extremidade, escolha Web Hook.For the Endpoint Type, choose Web Hook.
    • Para Ponto de extremidade, copie a URL de HTTP POST para o Aplicativo Lógico. Insira o ponto de extremidade que você criou na seção anterior.For Endpoint, copy the HTTP POST URL for the Logic App Enter endpoint you created in the previous section. Se você esqueceu de salvá-lo, basta voltar ao Designer de Aplicativo Lógico e copiá-lo na etapa do gatilho HTTP.If you forgot to save it, you can just go back into the Logic App Designer and copy it from the HTTP trigger step.

    Detalhes da assinatura de Eventos do Azure Mapas

  4. Clique em Criar.Click Create.

  5. Repita as etapas 1 a 4 para o ponto de extremidade de Saída do Aplicativo Lógico criado na seção anterior.Repeat steps 1-4 for the Logic App Exit endpoint you created in the previous section. Na etapa 3, certifique-se de escolher Geofence Exited como o tipo de evento.On step 3, make sure to choose Geofence Exited as the event type.

Usar a Pesquisa de API de GET de Cerca GeográficaUse Search Geofence Get API

Agora, usaremos a Pesquisa de API de GET de Cerca Geográfica para enviar notificações por email para o Operations Manager quando um equipamento entrar ou sair das cercas geográficas.Now, we'll use the Search Geofence Get API to send email notifications to the Operations Manager, when a piece of equipment enters or exits the geofences.

Cada equipamento tem um deviceId.Each equipment has a deviceId. Neste tutorial, vamos acompanhar um só equipamento, cuja ID exclusiva é device_1.In this tutorial, we'll be tracking a single piece of equipment, whose unique ID is device_1.

Para maior clareza, o diagrama a seguir mostra os cinco localizações do equipamento ao longo do tempo, começando na localização de Início, que está em algum lugar do lado de fora das cercas geográficas.For clarity, the following diagram shows the five locations of the equipment over time, beginning at the Start location, which is somewhere outside the geofences. Neste tutorial, a localização de Início é indefinida, já que não consultamos o dispositivo nessa localização.For the purposes of this tutorial, the Start location is undefined, since we won't query the device at that location.

Se consultarmos a Pesquisa de API de GET de Cerca Geográfica com uma localização de equipamento que indica a entrada ou saída de cerca geográfica inicial, a Grade de Eventos chamará o ponto de extremidade do Aplicativo Lógico apropriado para enviar uma notificação por email para o Operations Manager.When we query the Search Geofence Get API with an equipment location that indicates initial geofence entry or exit, the Event Grid will call the appropriate Logic App endpoint to send an email notification to the Operations Manager.

Cada uma das sessões a seguir fazem as solicitações de API de Delimitação Geográfica de HTTP GET usando as cinco diferentes coordenadas de localização dos equipamentos.Each of the following sections makes HTTP GET Geofencing API requests using the five different location coordinates of the equipment.

Mapa de cerca geográfica no Azure Mapas

Localização do Equipamento 1 (47,638237,-122,132483)Equipment Location 1 (47.638237,-122.132483)

  1. Próximo à parte superior do aplicativo Postman, selecione Novo.Near the top of the Postman app, select New. Na janela Criar, selecione Solicitação.In the Create New window, select Request. Insira um Nome de solicitação para a solicitação.Enter a Request name for the request. Usaremos o nome Localização 1.We'll use the name, Location 1. Selecione a coleção que você criou na seção Carregar dados GeoJSON de delimitação geográfica e escolha Salvar.Select the collection you created in the Upload Geofencing GeoJSON data section, and then select Save.

  2. Selecione o método HTTP GET na guia construtor e insira a URL a seguir. Certifique-se de substituir {Azure-Maps-Primary-Subscription-key} pela chave de assinatura primária e {udid} pelo udid salvo na seção Carregar dados GeoJSON de delimitação geográfica.Select the GET HTTP method in the builder tab and enter the following URL Make sure to replace {Azure-Maps-Primary-Subscription-key} with your primary subscription key and {udid} with the udid you saved in the Upload Geofencing GeoJSON data section.

    https://atlas.microsoft.com/spatial/geofence/json?subscription-key={subscription-key}&api-version=1.0&deviceId=device_01&udid={udid}&lat=47.638237&lon=-122.1324831&searchBuffer=5&isAsync=True&mode=EnterAndExit
    
  3. Clique no botão Enviar.Click the Send button. O GeoJSON a seguir aparecerá na janela de resposta.The following GeoJSON will appear in the response window.

    {
      "geometries": [
        {
          "deviceId": "device_1",
          "udId": "64f71aa5-bbee-942d-e351-651a6679a7da",
          "geometryId": "1",
          "distance": -999.0,
          "nearestLat": 47.638291,
          "nearestLon": -122.132483
        },
        {
          "deviceId": "device_1",
          "udId": "64f71aa5-bbee-942d-e351-651a6679a7da",
          "geometryId": "2",
          "distance": 999.0,
          "nearestLat": 47.638053,
          "nearestLon": -122.13295
        }
      ],
      "expiredGeofenceGeometryId": [],
      "invalidPeriodGeofenceGeometryId": [],
      "isEventPublished": true
    }
    
  4. Na resposta GeoJSON acima, a distância negativa da cerca geográfica principal significa que os equipamentos estão dentro da cerca geográfica.In the GeoJSON response above, the negative distance from the main site geofence means that the equipment is inside the geofence. A distância positiva do limite geográfico do subsite significa que os equipamentos estão fora do limite geográfico do subsite.The positive distance from the subsite geofence means the equipment is outside the subsite geofence. Como esta é a primeira vez que o dispositivo está localizado na cerca geográfica do site principal, o parâmetro isEventPublished é definido como true e o Operations Manager recebe uma notificação por email de que o equipamento entrou na cerca geográfica.Since this is the first time this device has been located inside the main site geofence, the isEventPublished parameter is set to true and the Operations Manager would have received an email notification that equipment has entered the geofence.

Localização 2 (47,63800,-122,132531)Location 2 (47.63800,-122.132531)

  1. Próximo à parte superior do aplicativo Postman, selecione Novo.Near the top of the Postman app, select New. Na janela Criar, selecione Solicitação.In the Create New window, select Request. Insira um Nome de solicitação para a solicitação.Enter a Request name for the request. Usaremos o nome Localização 2.We'll use the name, Location 2. Selecione a coleção que você criou na seção Carregar dados GeoJSON de delimitação geográfica e escolha Salvar.Select the collection you created in the Upload Geofencing GeoJSON data section, and then select Save.

  2. Selecione o método HTTP GET na guia construtor e insira a URL a seguir. Certifique-se de substituir {Azure-Maps-Primary-Subscription-key} pela chave de assinatura primária e {udid} pelo udid salvo na seção Carregar dados GeoJSON de delimitação geográfica.Select the GET HTTP method in the builder tab and enter the following URL Make sure to replace {Azure-Maps-Primary-Subscription-key} with your primary subscription key and {udid} with the udid you saved in the Upload Geofencing GeoJSON data section.

    https://atlas.microsoft.com/spatial/geofence/json?subscription-key={subscription-key}&api-version=1.0&deviceId=device_01&udId={udId}&lat=47.63800&lon=-122.132531&searchBuffer=5&isAsync=True&mode=EnterAndExit
    
  3. Clique no botão Enviar.Click the Send button. O seguinte GeoJSON aparecerá na janela de resposta:The following GeoJSON will appear in the response window:

    {
      "geometries": [
        {
          "deviceId": "device_01",
          "udId": "64f71aa5-bbee-942d-e351-651a6679a7da",
          "geometryId": "1",
          "distance": -999.0,
          "nearestLat": 47.637997,
          "nearestLon": -122.132399
        },
        {
          "deviceId": "device_01",
          "udId": "64f71aa5-bbee-942d-e351-651a6679a7da",
          "geometryId": "2",
          "distance": 999.0,
          "nearestLat": 47.63789,
          "nearestLon": -122.132809
        }
      ],
      "expiredGeofenceGeometryId": [],
      "invalidPeriodGeofenceGeometryId": [],
      "isEventPublished": false
    }
    
  4. Na resposta GeoJSON acima, o equipamento permaneceu na cerca geográfica do site principal e não entrou na cerca geográfica do subsite.In the GeoJSON response above, the equipment has remained in the main site geofence and hasn't entered the subsite geofence. Como resultado, o parâmetro isEventPublished é definido como false e o Operations Manager não receberá notificações por email.As a result, the isEventPublished parameter is set to false and the Operations Manager won't receive any email notifications.

Localização 3 (47,63810783315048,-122,13336020708084)Location 3 (47.63810783315048,-122.13336020708084)

  1. Próximo à parte superior do aplicativo Postman, selecione Novo.Near the top of the Postman app, select New. Na janela Criar, selecione Solicitação.In the Create New window, select Request. Insira um Nome de solicitação para a solicitação.Enter a Request name for the request. Usaremos o nome Localização 3.We'll use the name, Location 3. Selecione a coleção que você criou na seção Carregar dados GeoJSON de delimitação geográfica e escolha Salvar.Select the collection you created in the Upload Geofencing GeoJSON data section, and then select Save.

  2. Selecione o método HTTP GET na guia construtor e insira a URL a seguir. Certifique-se de substituir {Azure-Maps-Primary-Subscription-key} pela chave de assinatura primária e {udid} pelo udid salvo na seção Carregar dados GeoJSON de delimitação geográfica.Select the GET HTTP method in the builder tab and enter the following URL Make sure to replace {Azure-Maps-Primary-Subscription-key} with your primary subscription key and {udid} with the udid you saved in the Upload Geofencing GeoJSON data section.

      https://atlas.microsoft.com/spatial/geofence/json?subscription-key={subscription-key}&api-version=1.0&deviceId=device_01&udid={udid}&lat=47.63810783315048&lon=-122.13336020708084&searchBuffer=5&isAsync=True&mode=EnterAndExit
    
  3. Clique no botão Enviar.Click the Send button. O seguinte GeoJSON aparecerá na janela de resposta:The following GeoJSON will appear in the response window:

    {
      "geometries": [
        {
          "deviceId": "device_01",
          "udId": "64f71aa5-bbee-942d-e351-651a6679a7da",
          "geometryId": "1",
          "distance": -999.0,
          "nearestLat": 47.638294,
          "nearestLon": -122.133359
        },
        {
          "deviceId": "device_01",
          "udId": "64f71aa5-bbee-942d-e351-651a6679a7da",
          "geometryId": "2",
          "distance": -999.0,
          "nearestLat": 47.638161,
          "nearestLon": -122.133549
        }
      ],
      "expiredGeofenceGeometryId": [],
      "invalidPeriodGeofenceGeometryId": [],
      "isEventPublished": true
    }
    
  4. Na resposta GeoJSON acima, o equipamento permaneceu na cerca geográfica do site principal, mas entrou na cerca geográfica do subsite.In the GeoJSON response above, the equipment has remained in the main site geofence, but has entered the subsite geofence. Como resultado, o parâmetro isEventPublished é definido como true e o Operations Manager receberá uma notificação por email indicando que o equipamento entrou em uma cerca geográfica.As a result, the isEventPublished parameter is set to true and the Operations Manager will receive an email notification indicating that the equipment has entered a geofence.

    Observação

    Se o equipamento tivesse sido transferido para o subsite após o horário comercial, nenhum evento seria publicado e o Operations Manager não receberia nenhuma notificação.If the equipment had moved into the subsite after business hours, no event would be published and the Operations Manager would not receive any notifications.

Localização 4 (47,637988,-122,1338344)Location 4 (47.637988,-122.1338344)

  1. Próximo à parte superior do aplicativo Postman, selecione Novo.Near the top of the Postman app, select New. Na janela Criar, selecione Solicitação.In the Create New window, select Request. Insira um Nome de solicitação para a solicitação.Enter a Request name for the request. Usaremos o nome Localização 4.We'll use the name, Location 4. Selecione a coleção que você criou na seção Carregar dados GeoJSON de delimitação geográfica e escolha Salvar.Select the collection you created in the Upload Geofencing GeoJSON data section, and then select Save.

  2. Selecione o método HTTP GET na guia construtor e insira a URL a seguir. Certifique-se de substituir {Azure-Maps-Primary-Subscription-key} pela chave de assinatura primária e {udid} pelo udid salvo na seção Carregar dados GeoJSON de delimitação geográfica.Select the GET HTTP method in the builder tab and enter the following URL Make sure to replace {Azure-Maps-Primary-Subscription-key} with your primary subscription key and {udid} with the udid you saved in the Upload Geofencing GeoJSON data section.

    https://atlas.microsoft.com/spatial/geofence/json?subscription-key={subscription-key}&api-version=1.0&deviceId=device_01&udid={udid}&lat=47.637988&userTime=2023-01-16&lon=-122.1338344&searchBuffer=5&isAsync=True&mode=EnterAndExit
    
  3. Clique no botão Enviar.Click the Send button. O seguinte GeoJSON aparecerá na janela de resposta:The following GeoJSON will appear in the response window:

    {
      "geometries": [
        {
          "deviceId": "device_01",
          "udId": "64f71aa5-bbee-942d-e351-651a6679a7da",
          "geometryId": "1",
          "distance": -999.0,
          "nearestLat": 47.637985,
          "nearestLon": -122.133907
        }
      ],
      "expiredGeofenceGeometryId": [
        "2"
      ],
      "invalidPeriodGeofenceGeometryId": [],
      "isEventPublished": false
    }
    
  4. Na resposta GeoJSON acima, o equipamento permaneceu na cerca geográfica do site principal, mas saiu da cerca geográfica do subsite.In the GeoJSON response above, the equipment has remained in the main site geofence, but has exited the subsite geofence. No entanto, se você observar, o valor de userTime está após o expiredTime, conforme definido nos dados de cerca geográfica.However, if you notice, the userTime value is after the expiredTime as defined in the geofence data. Como resultado, o parâmetro isEventPublished é definido como false e o Operations Manager não receberá uma notificação por email.As a result, the isEventPublished parameter is set to false and the Operations Manager won't receive an email notification.

Localização 5 (47,637988,-122,1338344)Location 5(47.637988,-122.1338344)

  1. Próximo à parte superior do aplicativo Postman, selecione Novo.Near the top of the Postman app, select New. Na janela Criar, selecione Solicitação.In the Create New window, select Request. Insira um Nome de solicitação para a solicitação.Enter a Request name for the request. Usaremos o nome Localização 4.We'll use the name, Location 4. Selecione a coleção que você criou na seção Carregar dados GeoJSON de delimitação geográfica e escolha Salvar.Select the collection you created in the Upload Geofencing GeoJSON data section, and then select Save.

  2. Selecione o método HTTP GET na guia construtor e insira a URL a seguir. Certifique-se de substituir {Azure-Maps-Primary-Subscription-key} pela chave de assinatura primária e {udid} pelo udid salvo na seção Carregar dados GeoJSON de delimitação geográfica.Select the GET HTTP method in the builder tab and enter the following URL Make sure to replace {Azure-Maps-Primary-Subscription-key} with your primary subscription key and {udid} with the udid you saved in the Upload Geofencing GeoJSON data section.

    https://atlas.microsoft.com/spatial/geofence/json?subscription-key={subscription-key}&api-version=1.0&deviceId=device_01&udid={udid}&lat=47.637988&lon=-122.1338344&searchBuffer=5&isAsync=True&mode=EnterAndExit
    
  3. Clique no botão Enviar.Click the Send button. O seguinte GeoJSON aparecerá na janela de resposta:The following GeoJSON will appear in the response window:

    {
      "geometries": [
      {
        "deviceId": "device_01",
        "udId": "64f71aa5-bbee-942d-e351-651a6679a7da",
        "geometryId": "1",
        "distance": -999.0,
        "nearestLat": 47.637985,
        "nearestLon": -122.133907
      },
      {
        "deviceId": "device_01",
        "udId": "64f71aa5-bbee-942d-e351-651a6679a7da",
        "geometryId": "2",
        "distance": 999.0,
        "nearestLat": 47.637945,
        "nearestLon": -122.133683
      }
      ],
      "expiredGeofenceGeometryId": [],
      "invalidPeriodGeofenceGeometryId": [],
      "isEventPublished": true
    }
    
  4. Na resposta GeoJSON acima, o equipamento saiu da cerca geográfica do site principal.In the GeoJSON response above, the equipment has exited the main site geofence. Como resultado, o parâmetro isEventPublished é definido como true e o Operations Manager receberá uma notificação por email indicando que o equipamento saiu de uma cerca geográfica.As a result, the isEventPublished parameter is set to true and the Operations Manager will receive an email notification indicating that the equipment has exited a geofence.

Próximas etapasNext steps