Öğretici: Azure Haritalar’ı kullanarak bölge sınırı ayarlama
bu öğreticide, Azure Haritalar bölge hizmetleri oluşturma ve kullanma hakkında temel bilgiler verilmektedir.
Şu senaryoyu göz önünde bulundurun:
Bir oluşturma Site Yöneticisi, bir yapı alanının perimetrelerini girip terk ettiğinde ekipmanları izmelidir. Her bir ekipman her çıktığında veya bu perimeters 'a girdiğinde, Operations Manager 'a bir e-posta bildirimi gönderilir.
Azure Haritalar, üretim alanını girip çıkarken ekipmanların izlenmesini desteklemeye yönelik çeşitli hizmetler sunar. Bu öğreticide şunları yapacaksınız:
- izlemek istediğiniz yapı alanı alanları ' nı tanımlayan bölge sınırlaması olan coğrafi json verilerini Upload. bölge Upload apı 'sini Azure Haritalar hesabınıza çokgen koordinatları olarak yüklemek için kullanacaksınız.
- Tetiklendiğinde bölge bölgesine girdiğinde ve bu alandan çıkılırken yapım site Operations Manager 'a e-posta bildirimleri gönderen iki mantıksal uygulama ayarlayın.
- Azure Haritalar geofence 'larınızın giriş ve çıkış olaylarına abone olmak için Azure Event Grid kullanın. İki mantıksal uygulamalarınızda tanımlanan HTTP uç noktalarını çağıran iki Web kancası olay aboneliği ayarlarsınız. Logic Apps bundan sonra, mantığın ötesinde veya girilme gibi donanımların uygun e-posta bildirimlerini gönderir.
- Bir ekipman parçası çıktığında ve bölge alanları girdiğinde bildirim almak için Arama bölge kümesi API 'sini kullanın.
Önkoşullar
- Azure Haritalar hesabı oluşturun.
- Birincil anahtar veya abonelik anahtarı olarak da bilinen birincil bir abonelik anahtarı alın.
Bu öğretici Postman uygulamasını kullanır, ancak farklı bir API geliştirme ortamı kullanabilirsiniz.
bölge sınırlama coğrafi json verilerini Upload
Bu öğreticide, ' ı içeren bölge sınırlaması coğrafi JSON verilerini karşıya yüklersiniz FeatureCollection . , FeatureCollection Oluşturma sitesi içinde Çokgen alanları tanımlayan iki bölge içerir. İlk bölge için zaman aşımı süresi veya kısıtlama yoktur. İkincisi yalnızca iş saatleri boyunca (Pasifik saati diliminde 9:00 ÖÖ-5:00 PM) sorgulanabilir ve 1 Ocak 2022 ' den sonra geçerli olmayacaktır. GeoJSON biçimi hakkında daha fazla bilgi için bkz. bölge sınırlama coğrafi JSON verileri.
İpucu
Bölge sınırlaması verilerinizi dilediğiniz zaman güncelleştirebilirsiniz. daha fazla bilgi için bkz. Data Upload apı.
Bölge sınırlaması coğrafi JSON verilerini karşıya yüklemek için:
Postman uygulamasında Yeni' yi seçin.
Yeni oluştur penceresinde http isteği' ni seçin.
İstek için GeoJSON verileri sonrası upload gibi bir istek adı girin.
HTTP Post yöntemini seçin.
Aşağıdaki URL 'YI girin. İstek aşağıdaki URL gibi görünmelidir (
{Azure-Maps-Primary-Subscription-key}birincil abonelik anahtarınızla değiştirin):https://us.atlas.microsoft.com/mapData?subscription-key={Your-Azure-Maps-Primary-Subscription-key}&api-version=2.0&dataFormat=geojsongeojsonURL yolundaki parametre, karşıya yüklenen verilerin veri biçimini temsil eder.Gövde sekmesini seçin.
Açılan listelerde, RAW ve JSON' ı seçin.
Aşağıdaki GeoJSON verilerini kopyalayın ve gövde penceresine yapıştırın:
{ "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 } ] } } } ] }Gönder’i seçin.
Yanıt penceresinde üstbilgiler sekmesini seçin.
İşlem-konum anahtarı değerini kopyalayın
status URL.status URLCoğrafi JSON verilerini karşıya yükleme durumunu denetlemek için kullanacağız.https://us.atlas.microsoft.com/mapData/operations/{operationId}?api-version=2.0
GeoJSON verileri karşıya yükleme durumunu kontrol edin
GeoJSON verilerinin durumunu denetlemek ve benzersiz KIMLIĞINI () almak için udid :
Yeni'yi seçin.
Yeni oluştur penceresinde http isteği' ni seçin.
istek için veri al Upload durumu gibi bir istek adı girin.
Get http yöntemini seçin.
status URLUpload bölge sınırlaması olan coğrafi json verilerinikopyalamak için kopyaladığınız numarayı girin. İstek aşağıdaki URL gibi görünmelidir ({Azure-Maps-Primary-Subscription-key}birincil abonelik anahtarınızla değiştirin):https://us.atlas.microsoft.com/mapData/{operationId}?api-version=2.0&subscription-key={Your-Azure-Maps-Primary-Subscription-key}Gönder’i seçin.
Yanıt penceresinde üstbilgiler sekmesini seçin.
Olan Resource-location anahtarının değerini kopyalayın
resource location URL. ,resource location URLudidKarşıya yüklenen verilerin benzersiz tanımlayıcısını () içerir.udidBu öğreticinin son bölümünde bölge bölge Al API 'sini sorgulamak için öğesini kaydedin.
Seçim GeoJSON veri meta verilerini al
Karşıya yüklenen verilerden meta verileri alabilirsiniz. Meta veriler kaynak konumu URL 'SI, oluşturma tarihi, güncelleştirilmiş Tarih, boyut ve karşıya yükleme durumu gibi bilgileri içerir.
İçerik meta verilerini almak için:
Yeni'yi seçin.
Yeni oluştur penceresinde http isteği' ni seçin.
istek için veri al Upload meta verileri gibi bir istek adı girin.
Get http yöntemini seçin.
resource Location URLCoğrafi JSON verilerini karşıya yükleme durumunu kontroletmek için kopyaladığınız konumu girin. İstek aşağıdaki URL gibi görünmelidir ({Azure-Maps-Primary-Subscription-key}birincil abonelik anahtarınızla değiştirin):https://us.atlas.microsoft.com/mapData/metadata/{udid}?api-version=2.0&subscription-key={Your-Azure-Maps-Primary-Subscription-key}Yanıt penceresinde gövde sekmesini seçin. Meta veriler aşağıdaki JSON parçasını beğenmelidir:
{ "udid": "{udid}", "location": "https://us.atlas.microsoft.com/mapData/6ebf1ae1-2a66-760b-e28c-b9381fcff335?api-version=2.0", "created": "5/18/2021 8:10:32 PM +00:00", "updated": "5/18/2021 8:10:37 PM +00:00", "sizeInBytes": 946901, "uploadStatus": "Completed" }
Azure Logic Apps iş akışları oluşturma
Daha sonra, bir e-posta bildirimi tetikleyen iki mantıksal uygulama uç noktası oluşturacağız.
Mantıksal uygulamalar oluşturmak için:
Azure portalında oturum açın.
Azure portal kaynak oluştur' u seçin.
Market 'te Ara kutusuna Logic App yazın.
Sonuçlardan Logic App' i seçin. Ardından Oluştur’u seçin.
Mantıksal uygulama sayfasında, aşağıdaki değerleri girin:
- Bu mantıksal uygulama için kullanmak istediğiniz abonelik .
- Bu mantıksal uygulamanın kaynak grubu adı. Yeni oluştur veya var olan kaynak grubunu kullan seçeneğini belirleyebilirsiniz.
- Mantıksal uygulamanızın mantıksal uygulama adı . Bu durumda,
Equipment-Enterad olarak kullanın.
Bu öğreticinin amaçları doğrultusunda, diğer tüm değerleri varsayılan ayarlarında saklayın.
Gözden geçir + Oluştur’u seçin. Ayarlarınızı gözden geçirin ve Oluştur' u seçin.
Dağıtım başarıyla tamamlandığında Kaynağa Git' i seçin.
Mantıksal uygulama Tasarımcısı' nda, bir ortak tetikleyici ile başlayın bölümüne gidin. BIR http isteği alındığında öğesini seçin.
Mantıksal uygulama Tasarımcısı 'nın sağ üst köşesinde Kaydet' i seçin. Http post URL 'si otomatik olarak oluşturulur. URL 'YI kaydedin. Bir sonraki bölümde bir olay uç noktası oluşturmak için bu gereklidir.
+ Yeni adım' ı seçin.
Arama kutusuna
outlook.com emailyazın. Eylemler listesinde aşağı kaydırın ve e-posta gönder (v2) seçeneğini belirleyin.
Outlook hesabınızda oturum açın. Mantıksal uygulamanın hesaba erişmesine izin vermek için Evet ' i seçtiğinizden emin olun. E-posta göndermek için alanları girin.
İpucu
geometryIddeviceIdE-posta bildirimlerinde, veya gibi coğrafi JSON yanıt verilerini alabilirsiniz. Event Grid tarafından gönderilen verileri okumak için Logic Apps yapılandırabilirsiniz. Logic Apps yapılandırma hakkında daha fazla bilgi için bkz. öğretici: Azure IoT Hub olaylar hakkında Event Grid ve Logic Apps kullanarak e-posta bildirimleri gönderme.Mantıksal uygulama Tasarımcısı'nın sol üst köşesinde Kaydet' i seçin.
Ekipman yapım sitesinden çıktığında yöneticiye bildirmek üzere ikinci bir mantıksal uygulama oluşturmak için aynı işlemi tekrarlayın. Mantıksal uygulamayı adlandırın
Equipment-Exit.
Azure Haritalar olay abonelikleri oluşturma
Azure Haritalar üç olay türünüdestekler. Bu öğreticide, aşağıdaki iki olaya yönelik abonelikler oluşturacağız:
- Geofence olayları girme
- Geofence çıkış olayları
Bir bölge için çıkış oluşturmak ve olay aboneliğini girmek için:
Azure Haritalar hesabınızda abonelikler' i seçin.
Abonelik adınızı seçin.
Ayarlar menüsünde Olaylar' ı seçin.
Olaylar sayfasında + olay aboneliği' ni seçin.
Olay aboneliği oluştur sayfasında, aşağıdaki değerleri girin:
- Olay aboneliğinin adı .
- Olay şeması Event Grid şema olmalıdır.
- Bu olay aboneliği için Sistem konu adı , bu durumda
Contoso-Construction. - Olay türlerine filtre için
Geofence Enteredolay türü olarak öğesini seçin. - Uç nokta türü için öğesini seçin
Web Hook. - Uç nokta için, önceki bölümde oluşturduğunuz uç nokta girin mantıksal uygulama IÇIN http post URL 'sini kopyalayın. Kaydetmeyi unuttuysanız, mantıksal uygulama tasarımcısına geri dönüp HTTP tetikleyici adımından kopyalamanız yeterlidir.
Oluştur’u seçin.
Bölge sınırı çıkış olayı için aynı işlemi tekrarlayın.
Geofence ExitedOlay türü olarak seçtiğinizden emin olun.
Uzamsal bölge Get API 'sini kullanma
Daha sonra, bir ekipman parçası, bölge dilimleri girdiğinde veya oradan çıktığında Operations Manager 'a e-posta bildirimleri göndermek için uzamsal bölge edınme API 'sini kullanacağız.
Her bir ekipman parçası bir deviceId . Bu öğreticide, benzersiz bir KIMLIĞIYLE tek bir ekipman parçasını izliyorsunuz device_1 .
Aşağıdaki diyagramda, zaman içindeki donanımların, bölge sayısı dışında bir yerde olan Başlangıç konumundan başlayan beş konumu gösterilmektedir. Bu öğreticinin amaçları doğrultusunda, bu konumda cihazı sorgulamayacağından Başlangıç konumu tanımsızdır.
Uzamsal bölge edınme API 'sini ilk bölge girişi veya çıkışı gösteren bir ekipman konumuyla sorgulayıp, Event Grid Operations Manager 'a bir e-posta bildirimi göndermek için uygun mantıksal uygulama uç noktasını çağırır.
Aşağıdaki bölümlerin her biri, donanımların beş farklı konum koordinatlarını kullanarak API istekleri yapar.

Ekipman konumu 1 (47.638237,-122,132483)
Postman uygulamasında Yeni' yi seçin.
Yeni oluştur penceresinde http isteği' ni seçin.
İstek için, konum 1 gibi bir istek adı girin.
Get http yöntemini seçin.
Aşağıdaki URL 'YI girin. istek aşağıdaki URL gibi görünmelidir (
{Azure-Maps-Primary-Subscription-key}birincil abonelik anahtarınızla değiştirin ve{udid}udidUpload bölge sınırlaması olan coğrafi json verileri bölümünekaydettiniz).https://atlas.microsoft.com/spatial/geofence/json?subscription-key={Your-Azure-Maps-Primary-Subscription-key}&api-version=1.0&deviceId=device_01&udid={udid}&lat=47.638237&lon=-122.1324831&searchBuffer=5&isAsync=True&mode=EnterAndExitGönder’i seçin.
Yanıt aşağıdaki GeoJSON parçasını beğenmelidir:
{ "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 }
Önceki GeoJSON yanıtında, ana site bölge listesinden olumsuz mesafe, ekipmanın bölge bölgesi içinde olduğu anlamına gelir. Alt siteden gelen pozitif mesafe, ekipmanın alt site bölge sınırı dışında olduğu anlamına gelir. Bu cihaz, ana site bölge sınırı içinde ilk kez bulunduğu isEventPublished için parametresi olarak ayarlanır true . Operations Manager, ekipmanın bölge sınırlaması girdiği bir e-posta bildirimi alır.
Konum 2 (47.63800,-122,132531)
Postman uygulamasında Yeni' yi seçin.
Yeni oluştur penceresinde http isteği' ni seçin.
İstek için Konum 2 gibi bir istek adı girin.
Get http yöntemini seçin.
Aşağıdaki URL 'YI girin. istek aşağıdaki URL gibi görünmelidir (
{Azure-Maps-Primary-Subscription-key}birincil abonelik anahtarınızla değiştirin ve{udid}udidUpload bölge sınırlaması olan coğrafi json verileri bölümünekaydettiniz).https://atlas.microsoft.com/spatial/geofence/json?subscription-key={Your-Azure-Maps-Primary-Subscription-key}&api-version=1.0&deviceId=device_01&udId={udId}&lat=47.63800&lon=-122.132531&searchBuffer=5&isAsync=True&mode=EnterAndExitGönder’i seçin.
Yanıt aşağıdaki GeoJSON parçasını beğenmelidir:
{ "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 }
Önceki GeoJSON yanıtında, ekipman ana site bölge bölgesine kaldı ve alt site bölge bölge bölge 'sini girmemiştir. Sonuç olarak, parametresi olarak isEventPublished ayarlanır false ve Operations Manager herhangi bir e-posta bildirimi almaz.
Konum 3 (47.63810783315048,-122.13336020708084)
Postman uygulamasında Yeni' yi seçin.
Yeni oluştur penceresinde http isteği' ni seçin.
İstek için, Konum 3 gibi bir istek adı girin.
Get http yöntemini seçin.
Aşağıdaki URL 'YI girin. istek aşağıdaki URL gibi görünmelidir (
{Azure-Maps-Primary-Subscription-key}birincil abonelik anahtarınızla değiştirin ve{udid}udidUpload bölge sınırlaması olan coğrafi json verileri bölümünekaydettiniz).https://atlas.microsoft.com/spatial/geofence/json?subscription-key={Your-Azure-Maps-Primary-Subscription-key}&api-version=1.0&deviceId=device_01&udid={udid}&lat=47.63810783315048&lon=-122.13336020708084&searchBuffer=5&isAsync=True&mode=EnterAndExitGönder’i seçin.
Yanıt aşağıdaki GeoJSON parçasını beğenmelidir:
{ "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 }
Önceki GeoJSON yanıtında, ekipman ana site bölge bölgesine kaldı, ancak alt site bölge bölge bölgesine girdi. Sonuç olarak, parametresi olarak isEventPublished ayarlanır true . Operations Manager, ekipmanın bölge olarak girildiğini belirten bir e-posta bildirimi alır.
Not
Ekipman iş saatlerinden sonra alt siteye taşınmışsa, hiçbir olay yayımlanmaz ve Operations Manager hiçbir bildirim almaz.
Konum 4 (47.637988,-122,1338344)
Postman uygulamasında Yeni' yi seçin.
Yeni oluştur penceresinde http isteği' ni seçin.
İstek için konum 4 gibi bir istek adı girin.
Get http yöntemini seçin.
Aşağıdaki URL 'YI girin. istek aşağıdaki URL gibi görünmelidir (
{Azure-Maps-Primary-Subscription-key}birincil abonelik anahtarınızla değiştirin ve{udid}udidUpload bölge sınırlaması olan coğrafi json verileri bölümünekaydettiniz).https://atlas.microsoft.com/spatial/geofence/json?subscription-key={Your-Azure-Maps-Primary-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=EnterAndExitGönder’i seçin.
Yanıt aşağıdaki GeoJSON parçasını beğenmelidir:
{ "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 }
Önceki GeoJSON yanıtında, ekipman ana site bölge bölgesine çıkımıştır, ancak alt site bölge bölge değerinden çıkıldı. Bununla birlikte, userTime değerin expiredTime bölge verilerinde tanımlandığına göre olduğuna dikkat edin. Sonuç olarak, parametresi olarak isEventPublished ayarlanır false ve Operations Manager bir e-posta bildirimi almaz.
Konum 5 (47,63799,-122,134505)
Postman uygulamasında Yeni' yi seçin.
Yeni oluştur penceresinde http isteği' ni seçin.
İstek için, konum 5 gibi bir istek adı girin.
Get http yöntemini seçin.
Aşağıdaki URL 'YI girin. istek aşağıdaki URL gibi görünmelidir (
{Azure-Maps-Primary-Subscription-key}birincil abonelik anahtarınızla değiştirin ve{udid}udidUpload bölge sınırlaması olan coğrafi json verileri bölümünekaydettiniz).https://atlas.microsoft.com/spatial/geofence/json?subscription-key={Your-Azure-Maps-Primary-Subscription-key}&api-version=1.0&deviceId=device_01&udid={udid}&lat=47.63799&lon=-122.134505&searchBuffer=5&isAsync=True&mode=EnterAndExitGönder’i seçin.
Yanıt aşağıdaki GeoJSON parçasını beğenmelidir:
{ "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 }
Önceki GeoJSON yanıtta, ekipman ana sitenin coğrafi penceresinden çıkıldı. Sonuç olarak, parametresi olarak ayarlanır ve operations manager, ekipmanın bir coğrafi bölgeden çıkış aldığını belirten bir isEventPublished true e-posta bildirimi alır.
Ayrıca Event Grid ve Logic Apps kullanarak e-Event Grid gönderebilirsiniz ve azure Haritalar.
Kaynakları temizleme
Temizleme gerektiren bir kaynak yoktur.