Azure haritalar 'ı kullanarak bölge kümesi oluşturmaSet up a geofence by using Azure Maps

Bu öğretici, Azure haritalar 'ı kullanarak bölge sınırlaması ayarlama konusunda size kılavuzluk eder.This tutorial walks you through the basics steps to set up geofence by using Azure Maps. Bu öğreticide adresdığımız senaryo, site yöneticilerinin, belirlenen oluşturma alanlarının ötesine geçen potansiyel tehlikeli donanımları izlemesine yardımcı olur.The scenario we address in this tutorial is help construction site managers monitor potential hazardous equipment moving beyond the designated construction areas. Bir inşaat sitesi pahalı ekipman ve düzenlemeler içerir.A construction site involves expensive equipment and regulations. Genellikle, ekipmanın yapım sitesinin içinde kalmasını ve izin olmadan ayrılmamaya gerek yoktur.It typically requires that the equipment stays inside the construction site and does not leave without permission.

Bölge listesini depolamak için Azure Maps veri yükleme API 'sini kullanacağız ve bölge konumunu, bölge alanına göre denetlemek için Azure Maps geofence API 'sini kullanacağız.We will use Azure Maps Data Upload API to store a geofence, and use Azure maps Geofence API to check the equipment location relative to the geofence. Bölge sonuçlarının akışını yapmak ve bölge sonuçlarına dayalı bir bildirim ayarlamak için Azure Event Grid kullanacağız.We will use Azure Event Grid to stream the geofence results and set up a notification based on the geofence results. Event Grid hakkında daha fazla bilgi için bkz. Azure Event Grid.To learn more about Event Grid, see Azure Event Grid. Bu öğreticide şunları öğreneceksiniz:In this tutorial you will learn, how to:

  • Veri yükleme API 'sini kullanarak Azure Maps, Data Service içindeki bölge bölge alanını karşıya yükleyin.Upload geofence area in the Azure Maps, Data service using the Data Upload API.
  • Bölge olaylarını işlemek için bir Event Grid ayarlayın.Set up an Event Grid to handle geofence events.
  • Bölge olayları işleyicisini ayarlayın.Setup geofence events handler.
  • Logic Apps kullanarak bölge sınırı olaylarına yanıt olarak uyarıları ayarlayın.Set up alerts in response to geofence events using Logic Apps.
  • Bir oluşturma varlığının yapım sitesi içinde olup olmadığını izlemek için Azure haritalar bölge hizmeti API 'Lerini kullanın.Use Azure Maps geofence service APIs to track whether a construction asset is within the construction site or not.

ÖnkoşullarPrerequisites

Azure Haritalar hesabı oluşturmaCreate an Azure Maps account

Bu öğreticideki adımları tamamlayabilmeniz için, S1 fiyatlandırma katmanıyla bir Azure Maps hesap aboneliği oluşturmak üzere Hesabı Yönet ' deki yönergeleri izleyin ve hesabınıza ilişkin birincil abonelik anahtarını almak için birincil anahtar al bölümündeki adımları izleyin.To complete the steps in this tutorial, follow instructions in manage account to create an Azure Maps account subscription with S1 pricing tier and follow the steps in get primary key to get the primary subscription key for your account.

Bölge dilimleri karşıya yükleUpload geofences

Veri yükleme API 'sini kullanarak inşaat sitesinin bölge bölge 'sini karşıya yüklemek için Postman uygulamasını kullanacağız.To upload the geofence for the construction site using the Data Upload API, we will use the postman application. Bu öğreticinin bir bölümü olarak, yapı donanımının ihlal etmemelidir bir sabit parametre olan genel bir oluşturma site alanı olduğunu varsayalım.For the sake of this tutorial, we assume there is an overall construction site area, which is a hard parameter that the construction equipment should not violate. Bu çit ihlalleri ciddi bir OFFENSE ve Operations Manager bildirilir.Violations of this fence are a serious offense and are reported to the Operations Manager. En iyi duruma getirilmiş ek bir küme, genel yapım alanı içindeki farklı oluşturma alanlarının zamanlamaya göre izlenmesi için kullanılabilir.An optimized set of additional fences can be used that track different construction areas within the overall construction area as per schedule. Ana geofalanın, zaman aşımı süresi geçen ve bu süreden sonra sona ereceği bir subsite1 olduğunu varsayabiliriz.We can assume that the main geofence has a subsite1, which has a set expiration time and will expire after that time. Gereksinimlerinize göre daha fazla iç içe bölge oluşturabilirsiniz.You can create more nested geofences as per your requirements. Örneğin, subsite1, zamanlamanın 1 ila 4 ' e kadar iş gerçekleştiği ve alt site 2 ' nin hafta 5 ' e kadar iş gerçekleştiği yerdir.For example, subsite1 could be where work is taking place during week 1 to 4 of the schedule and subsite 2 is where work takes place during week 5 to 7. Bu tür balıkların hepsi projenin başlangıcında tek bir veri kümesi olarak yüklenebilir ve kuralları saat ve alana göre izlemek için kullanılabilir.All such fences can be loaded as a single dataset at the beginning of the project and used to track rules based on time and space. Bölge verileri biçimi hakkında daha fazla bilgi için bkz. bölge bölge coğrafi JSON verileri.For more information on geofence data format, see Geofence GeoJSON data. Verileri Azure Maps hizmetine yükleme hakkında daha fazla bilgi için bkz. veri yükleme API 'si belgeleri .For more information on uploading data to the Azure Maps service, see Data Upload API documentation .

Postman uygulamasını açın ve Azure Maps, veri yükleme API 'sini kullanarak inşaat sitesini karşıya yüklemek için aşağıdaki adımları izleyin.Open the Postman app and follow the following steps to upload the construction site geofence using the Azure Maps, Data Upload API.

  1. Postman uygulamasını açın ve yeni ' ye tıklayın | Yeni oluştur ve Istek seç.Open the Postman app and click new | Create new, and select Request. Bölge bölge verilerini karşıya yükleme için bir Istek adı girin, kaydedilecek bir koleksiyon veya klasör seçin ve Kaydet ' e tıklayın.Enter a Request name for Upload geofence data, select a collection or folder to save it to, and click Save.

    Postman kullanarak bölge dilimleri yükleme

  2. Oluşturucu sekmesinde HTTP SONRASı yöntemi ' ni seçin ve POST isteği oluşturmak için aşağıdaki URL 'YI girin.Select POST HTTP method on the builder tab and enter the following URL to make a POST request.

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

    URL yolundaki GEOJSON parametresi, karşıya yüklenen verilerin veri biçimini temsil eder.The GEOJSON parameter in the URL path represents the data format of the data being uploaded.

  3. Parametreler' e tıklayın ve post isteği URL 'si için kullanılacak aşağıdaki anahtar/değer çiftlerini girin.Click Params, and enter the following Key/Value pairs to be used for the POST request URL. Abonelik anahtarı değerini Azure Maps birincil abonelik anahtarınızla değiştirin.Replace subscription-key value with your Azure Maps primary subscription key.

    Anahtar-değer params Postman

  4. Gövde ' ye tıklayın, ham giriş biçimi ' ni seçin ve açılan listeden giriş BIÇIMI olarak JSON ' ı seçin.Click Body then select raw input format and choose JSON as the input format from the dropdown list. Karşıya yüklenecek veri olarak aşağıdaki JSON 'ı sağlayın:Provide the following JSON as data to be uploaded:

    {
       "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": "2019-01-15T00:00:00",
               "validityPeriod": [
                 {
                   "startTime": "2019-01-08T01:00:00",
                   "endTime": "2019-01-08T17:00:00",
                   "recurrenceType": "Daily",
                   "recurrenceFrequency": 1,
                   "businessDayOnly": true
                 }
               ]
             }
           }
         }
       ]
    }
    
  5. Gönder ' e tıklayın ve yanıt üst bilgisini gözden geçirin.Click send and review the response header. Konum üstbilgisi, daha sonra kullanılmak üzere verilere erişmek veya verileri indirmek için URI 'yi içerir.The location header contains the URI to access or download the data for future use. Ayrıca, karşıya yüklenen veriler udId için benzersiz bir de içerir.It also contains a unique udId for the uploaded data.

    https://atlas.microsoft.com/mapData/{udId}/status?api-version=1.0&subscription-key={Subscription-key}
    

Olay işleyicisi ayarlamaSet up an event handler

Operations Manager giriş ve çıkış olaylarıyla ilgili bilgilendirmek için bildirimleri alan bir olay işleyicisi oluşturacağız.To notify the Operations Manager regarding enter and exit events, we should create an event handler that receives the notifications.

Olayları işlemek, girmek ve çıkmak için iki Logic Apps hizmeti oluşturacağız.We will create two Logic Apps services to handle, enter, and exit events. Ayrıca, bu olaylar tarafından tetiklenen Logic Apps içindeki olay tetikleyicileri de oluşturacağız.We will also create event triggers within the Logic Apps that get triggered by these events. Bu durumda, ekipman her seferinde veya çıkış sitesinden çıktığında, bu e-postalara Operations Manager uyarı gönderilmesi önerilir.The idea is to send alerts, in this case emails to the Operations Manager whenever equipment enters or exits the construction site. Aşağıdaki şekilde, bölge sınırı Enter olayı için bir mantıksal uygulama oluşturma gösterilmektedir.The following figure illustrates creation of a Logic App for geofence enter event. Benzer şekilde, çıkış olayı için başka bir tane de oluşturabilirsiniz.Similarly, you can create another one for exit event. Daha fazla bilgi için desteklenen tüm olay işleyicilerini görebilirsiniz.You can see all supported event handlers for more info.

  1. Azure portal bir mantıksal uygulama oluşturmaCreate a Logic App in Azure portal

    Logic Apps oluştur

  2. Bir HTTP isteği tetikleyicisi seçin ve Outlook Bağlayıcısı 'nda "e-posta gönder" eylemini seçinSelect an HTTP request trigger and then select "send an email" as an action in the outlook connector

    Logic Apps şeması

  3. HTTP URL uç noktasını oluşturmak için mantıksal uygulamayı kaydedin ve HTTP URL 'sini kopyalayın.Save the logic app to generate the HTTP URL endpoint and copy the HTTP URL.

    Logic Apps uç noktası

Azure haritalar olayları aboneliği oluşturmaCreate an Azure Maps Events subscription

Azure haritalar üç olay türünü destekler.Azure Maps supports three event types. Azure haritalar desteklenen olay türlerine buradangöz atabilirsiniz.You can have a look at the Azure Maps supported event types here. Biri, diğeri de çıkış olayları için olmak üzere iki farklı abonelik oluşturacağız.We will create two different subscriptions, one for enter and the other for exit events.

Bölge giriş olayları için bir olay aboneliği oluşturmak üzere aşağıdaki adımları izleyin.Follow the steps below to create an event subscription for the geofence enter events. Bölge sınırı çıkış olaylarına benzer bir şekilde abone olabilirsiniz.You can subscribe to geofence exit events in a similar manner.

  1. Bu portal bağlantısı aracılığıyla Azure haritalar hesabınıza gidin ve olaylar sekmesini seçin.Navigate to your Azure Maps account via this portal link and select the events Tab.

    Azure haritalar olayları

  2. Bir olay aboneliği oluşturmak için olaylar sayfasından olay aboneliği ' ni seçin.To create an event subscription, select Event Subscription from the events page.

    Azure haritalar olayları aboneliği

  3. Olayların aboneliğini adlandırın ve ENTER olay türüne abone olun.Name the events subscription, and subscribe to the Enter event type. Şimdi "uç nokta türü" olarak Web kancası ' yi seçin ve mantıksal uygulamanızın HTTP URL uç noktasını "uç noktaya" kopyalayınNow, select Web Hook as "Endpoint Type" and copy your Logic App HTTP URL endpoint into "Endpoint"

    Olay aboneliği

Geofence API kullanmaUse Geofence API

Bir cihazın (donanımların durumun parçası olduğunu) bir bölge 'nin içinde mi yoksa dışında mı olduğunu denetlemek Için GEOFENCE API 'sini kullanabilirsiniz.You can use the Geofence API to check whether a device (equipment is part of status) is inside or outside a geofence. Bölge sınırı Get API 'sini daha iyi anlamak için.To better understand the geofence GET API. Belirli bir ekipmanın zaman içinde taşındığı farklı konumlara karşı sorgu yaptık.We query it against different locations where a particular equipment has moved over time. Aşağıdaki şekilde, belirli bir yapım donanımının, kronolojik sırada gözlemlendiği şekilde benzersiz bir cihaz kimliğiyle birlikte beş konumu gösterilmektedir.The following figure illustrates five locations of a particular construction equipment with a unique device id as observed in chronological order. Bu beş konumların her biri, dilimçine karşı bölge girme ve çıkış durumu değişikliğini değerlendirmek için kullanılır.Each of these five locations is used to assess the geofence enter and exit status change against the fence. Bir durum değişikliği gerçekleşirse, bölge sınırı hizmeti, mantıksal uygulamaya Event Grid tarafından gönderilen bir olayı tetikler.If a state change occurs, the geofence service triggers an event, which is sent to the Logic App by the Event Grid. Sonuç olarak, işlem yöneticisi bir e-posta yoluyla ilgili ENTER veya çıkış bildirimini alır.As a result the operation's manager will receive the corresponding enter or exit notification via an email.

Not

Yukarıdaki senaryo ve davranış, aşağıdaki şekilde beş farklı konumu yansıtacak şekilde aynı cihaz kimliğini temel alır.The above scenario and behavior is based on the same device id so that it reflects the five different locations as in the figure below.

Bölge Haritası

Postman uygulamasında, yukarıda oluşturduğunuz koleksiyonda yeni bir sekme açın.In the Postman app, open a new tab in the same collection you created above. Oluşturucu sekmesinde HTTP yöntemini Al ' ı seçin:Select GET HTTP method on the builder tab:

Aşağıda, donanımların kronolojik sırada gözlemlendiği gibi farklı ilgili konum koordinatları bulunan beş HTTP GET Geofsel API isteği bulunur.Following are five HTTP GET Geofencing API requests, with different corresponding location coordinates of the equipment as observed in chronological order. Her isteğin ardından yanıt gövdesi gelir.Each request is followed by the response body.

  1. Konum 1:Location 1:

    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
    

    Geofence sorgu 1

    Yukarıdaki yanıta baktığınızda, ana bölge değerinden olumsuz mesafe, ekipmanın bölge bölge içinde olduğu ve alt siteden gelen pozitif bölge, alt site bölge ilişkisinin dışında olduğu anlamına gelir.If you look at the response above, the negative distance from the main geofence means that the equipment is inside the geofence and the positive from the subsite geofence means that it is outside the subsite geofence.

  2. Konum 2:Location 2:

    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
    

    Geofence sorgu 2

    Yukarıdaki JSON yanıtına dikkatlice bakarsanız, ekipman alt sitenin dışındadır, ancak ana çit içindedir.If you look at the preceding JSON response carefully the equipment is outside the subsite, but is inside the main fence. Bir olayı tetiklemez ve e-posta gönderilmez.It does not trigger an event and no email is sent.

  3. Konum 3:Location 3:

    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
    

    Geofence sorgu 3

    Bir durum değişikliği gerçekleşti ve artık ekipman hem ana hem de alt site bölge içindedir.A state change has occurred and now the equipment is within both the main and subsite geofences. Bu, bir olay yayımlar ve Operations Manager bir bildirim e-postası gönderilir.This publishes an event and a notification email will be sent to the Operations Manager.

  4. Konum 4:Location 4:

    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
    

    Geofence sorgu 4

    Karşılık gelen yanıtı dikkatle gözlemleyerek, ekipman alt site bölge değerinden çıksa bile burada hiçbir olay yayımlanmadığını unutmayın.By observing the corresponding response carefully, you can note that no event gets published here even though the equipment has exited the subsite geofence. Kullanıcının GET isteğinde belirtilen zamanına bakarsanız, alt site bölge kullanım süresinin bu saate göre dolduğunu ve ekipmanın hala ana bölge yolunda olduğunu görebilirsiniz.If you look at the user's specified time in the GET request, you can see that the subsite geofence has expired relative to this time and the equipment is still in the main geofence. Yanıt gövdesinde alt sitenin bölge bölge bölge expiredGeofenceGeometryId numarasını da görebilirsiniz.You can also see the geometry ID of the subsite geofence under expiredGeofenceGeometryId in the response body.

  5. Konum 5:Location 5:

    https://atlas.microsoft.com/spatial/geofence/json?subscription-key={subscription-key}&api-version=1.0&deviceId=device_01&udId={udId}&lat=47.63799&lon=-122.134505&userTime=2019-01-16&searchBuffer=5&isAsync=True&mode=EnterAndExit
    

    Geofence sorgu 5

    Ekipmanın ana yapım site bölge bölgesine ayrıldığı hakkında bilgi alabilirsiniz.You can see that the equipment has left the main construction site geofence. Bir olay yayımlar, ciddi bir ihlal değildir ve Operations Manager kritik bir uyarı e-postası gönderilir.It publishes an event, it is a serious violation, and a critical alert email is sent to the Operations Manager.

Sonraki adımlarNext steps

Bu öğreticide, verileri karşıya yükleme API 'sini kullanarak Azure Maps, veri hizmeti ' ne karşıya yükleyerek bölge sayısını nasıl ayarlayacaınız.In this tutorial you learned, how to set up geofence by uploading it in the Azure Maps, Data service using the Data Upload API. Ayrıca bölge olaylarına abone olmak ve bunları işlemek için Azure Maps olayları kılavuzunu nasıl kullanacağınızı öğrendiniz.You also learned how to use Azure Maps Events Grid to subscribe to and handle geofence events.