Öğretici: İç mekan haritaları oluşturmak için Creator kullanma
Bu öğreticide iç mekan haritalarını nasıl oluşturabilirsiniz? Bu öğreticide aşağıdakilerin nasıl yapılacağını öğreneceksiniz:
- Upload harita Çizim paketinizi seçin.
- Çizim paketinizi eşleme verilerine dönüştürebilirsiniz.
- Harita verilerinizden bir veri kümesi oluşturun.
- Veri kümenizin verilerinden bir kutucuk kümesi oluşturun.
- Harita özellikleriniz hakkında Haritalar Web Feature Service için Azure Haritalar Web Feature Service (WFS) API'sini sorgular.
- Harita özelliklerinizi ve veri kümenizin verilerini kullanarak bir özellik durumları kümesi oluşturun.
- Özellik durumları kümesinizi güncelleştirin.
Önkoşullar
- Azure Haritalar olun.
- Birincil anahtar veya abonelikanahtarı olarak da bilinen birincil abonelik anahtarını alın.
- Oluşturucu kaynağı oluşturun.
- Örnek Çizim paketini indirin.
Bu öğreticide Postman uygulaması kullanılır, ancak farklı bir API geliştirme ortamı kullanabilirsiniz.
Önemli
Bu öğretici coğrafi us.atlas.microsoft.com URL'yi kullanır. Oluşturucu hizmetiniz bu hizmette oluşturulmadı Birleşik Devletler farklı bir coğrafi URL kullansanız gerekir. Daha fazla bilgi için bkz. Creator Services'e Erişim. Bölgenin coğrafi konuma eşlemelerini görüntülemek için bkz. Oluşturucu hizmeti coğrafi kapsamı.
Upload çizim paketi
Çizim paketini Azure Upload kaynaklara yüklemek için Data Haritalar API'sini kullanın.
Data Upload API'si, Creator Long-Running Operation API V2 içinde tanımlanan deseni uygulayan uzun süre çalışan bir işlemdir.
Çizim paketini karşıya yüklemek için:
Postman uygulamasında Yeni'yi seçin.
Yeni Oluştur penceresinde HTTP İsteği'ne tıklayın.
İstek için POST Data Upload gibi bir istek adı girin.
POST HTTP yöntemini seçin.
Data Upload API'sinin şu URL'sini girin: İstek aşağıdaki URL gibi olmalıdır (yerine
{Azure-Maps-Primary-Subscription-key}birincil abonelik anahtarınızı yazın)::https://us.atlas.microsoft.com/mapData?api-version=2.0&dataFormat=dwgzippackage&subscription-key={Your-Azure-Maps-Primary-Subscription-key}Üst Bilgiler sekmesini seçin.
ANAHTAR alanında öğesini
Content-Typeseçin.DEĞER alanında öğesini
application/octet-streamseçin.
Gövde sekmesini seçin.
Açılan listede ikili öğesini seçin.
Dosya Seç'i ve ardından bir Çizim paketi seçin.
Gönder’i seçin.
Yanıt penceresinde Üst Bilgiler sekmesini seçin.
Operation-Location anahtarının değeri olan değerini
status URLkopyalayın. Çizim paketini karşıya yüklemestatus URLdurumunu kontrol etmek için kullanıriz.
Çizim paketinin karşıya yükleme durumunu denetleme
Çizim paketinin durumunu kontrol etmek ve benzersiz kimliğini ( ) almak udid için:
Postman uygulamasında Yeni'yi seçin.
Yeni Oluştur penceresinde HTTP İsteği'ne tıklayın.
İstek için GET Data Upload Status gibi bir istek adı girin.
GET HTTP yöntemini seçin.
Çizim
status URLpaketine kopya Upload girin. İstek aşağıdaki URL'ye benzer olmalıdır (yerine{Azure-Maps-Primary-Subscription-key}birincil abonelik anahtarınızı yazın):https://us.atlas.microsoft.com/mapData/operations/{operationId}?api-version=2.0&subscription-key={Your-Azure-Maps-Primary-Subscription-key}Gönder’i seçin.
Yanıt penceresinde Üst Bilgiler sekmesini seçin.
Resource-Location anahtarının değerini (değeri)
resource location URLkopyalayın. ,resource location URLçizim paketi kaynağının benzersiz tanımlayıcısını (udid) içerir.
(İsteğe bağlı) Çizim paketi meta verilerini alma
Çizim paketi kaynağından meta verileri alın. 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:
Postman uygulamasında Yeni'yi seçin.
Yeni Oluştur penceresinde HTTP İsteği'ne tıklayın.
İstek için GET Data Upload Metadata gibi bir İstek adı girin.
. GET HTTP yöntemini seçin.
Çizim
resource Location URLpaketini karşıya yükleme durumunu denetleme alanına kopyalanan değeri girin. İstek aşağıdaki URL'ye benzer olmalıdır (yerine{Azure-Maps-Primary-Subscription-key}birincil abonelik anahtarınızı yazın):https://us.atlas.microsoft.com/mapData/metadata/{udid}?api-version=2.0&subscription-key={Your-Azure-Maps-Primary-Subscription-key}Gönder’i seçin.
Yanıt penceresinde Gövde sekmesini seçin. Meta veriler aşağıdaki JSON parçasına benzer:
{ "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" }
Çizim paketini dönüştürme
Artık Çizim paketi karşıya yüklendi, paketi harita verilerine dönüştürmek için karşıya udid yüklenen paket için kullanız. Dönüştürme API'si burada tanımlanan deseni uygulayan uzun süre çalışan bir işlem kullanır.
Çizim paketini dönüştürmek için:
Postman uygulamasında Yeni'yi seçin.
Yeni Oluştur penceresinde HTTP İsteği'ne tıklayın.
İstek için bir İstek adı girin, örneğin POST Convert Drawing Package.
POST HTTP yöntemini seçin.
Dönüştürme Hizmeti'nin aşağıdaki URL'sini girin (yerine birincil abonelik anahtarınızı ve yüklenen
{Azure-Maps-Primary-Subscription-key}udidudidpaketin URL'sini yazın):https://us.atlas.microsoft.com/conversions?subscription-key={Your-Azure-Maps-Primary-Subscription-key}&api-version=2.0&udid={udid}&inputType=DWG&outputOntology=facility-2.0Gönder’i seçin.
Yanıt penceresinde Üst Bilgiler sekmesini seçin.
Operation-Location anahtarının değeri olan değerini
status URLkopyalayın. Dönüştürmenin durumunustatus URLkontrol etmek için kullanıriz.
Çizim paketi dönüştürme durumunu denetleme
Dönüştürme işlemi tamamlandıktan sonra bir conversionId döndürür. Çizim paketi conversionId dönüştürme işleminin durumunu kontrol ederek nesnesine erişebiz. Daha conversionId sonra dönüştürülen verilere erişmek için kullanılabilir.
Dönüştürme işleminin durumunu kontrol etmek ve almak conversionId için:
Postman uygulamasında Yeni'yi seçin.
Yeni Oluştur penceresinde HTTP İsteği'ne tıklayın.
İstek için GET Dönüştürme Durumu gibi bir İstek adı girin.
GET HTTP yöntemini seçin:
Çizim
status URLpaketini dönüştür alanına kopyalanan değeri girin. İstek aşağıdaki URL'ye benzer olmalıdır (yerine{Azure-Maps-Primary-Subscription-key}birincil abonelik anahtarınızı yazın):https://us.atlas.microsoft.com/conversions/operations/{operationId}?api-version=2.0&subscription-key={Your-Azure-Maps-Primary-Subscription-key}Gönder’i seçin.
Yanıt penceresinde Üst Bilgiler sekmesini seçin.
Resource-Location anahtarının değerini (değeri)
resource location URLkopyalayın. ,resource location URLdönüştürülen eşlemeconversionIdverilerine erişmek için diğer API'ler tarafından kullanılan benzersiz tanımlayıcıyı () içerir.
Örnek Çizim paketi hata veya uyarı olmadan dönüştürülmesi gerekir. Ancak, kendi çizim paketinizden hata veya uyarı alırsanız, JSON yanıtı Çizim hatası Görselleştiricisinibir bağlantı içerir. Hata ve uyarıların ayrıntılarını incelemek için çizim hatası görselleştiricisi ' i kullanabilirsiniz. Dönüştürme hatalarını ve uyarılarını çözmeye yönelik öneriler almak için bkz. çizim dönüştürme hataları ve uyarıları.
Aşağıdaki JSON parçası bir örnek dönüştürme uyarısı görüntülüyor:
{
"operationId": "{operationId}",
"created": "2021-05-19T18:24:28.7922905+00:00",
"status": "Succeeded",
"warning": {
"code": "dwgConversionProblem",
"details": [
{
"code": "warning",
"details": [
{
"code": "manifestWarning",
"message": "Ignoring unexpected JSON property: unitProperties[0].nonWheelchairAccessible with value False"
}
]
}
]
},
"properties": {
"diagnosticPackageLocation": "https://atlas.microsoft.com/mapData/ce61c3c1-faa8-75b7-349f-d863f6523748?api-version=1.0"
}
}
Veri kümesi oluşturma
Veri kümesi, binalar, düzeyler ve odalar gibi eşleme özelliklerinin koleksiyonudur. Bir veri kümesi oluşturmak için veri kümesi oluşturma API'sini kullanın. Veri kümesi oluşturma API 'SI, conversionId dönüştürülmüş çizim paketini alır ve datasetId oluşturulan veri kümesinin bir öğesini döndürür.
Bir veri kümesi oluşturmak için:
Postman uygulamasında Yeni' yi seçin.
Yeni oluştur penceresinde http isteği' ni seçin.
İstek için veri kümesi oluşturma gibi bir istek adı girin.
HTTP Post yöntemini seçin.
Veri KÜMESI API'sine 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 ve '{conversionIdconversionIdın Çizim paketi dönüştürme durumunu denetle' de alındı):https://us.atlas.microsoft.com/datasets?api-version=2.0&conversionId={conversionId}&subscription-key={Your-Azure-Maps-Primary-Subscription-key}Gönder’i seçin.
Yanıt penceresinde üstbilgiler sekmesini seçin.
İşlem-konum anahtarı değerini kopyalayın
status URL.status URLVeri kümesinin durumunu denetlemek için kullanacağız.
Veri kümesi oluşturma durumunu denetleme
Veri kümesi oluşturma işleminin durumunu denetlemek ve şunu almak için datasetId :
Postman uygulamasında Yeni' yi seçin.
Yeni oluştur penceresinde http isteği' ni seçin.
İstek için veri kümesi durumunu Al gibi bir istek adı girin.
Get http yöntemini seçin.
status URLVeri kümesi oluştur ' akopyaladığınız alanı 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/datasets/operations/{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. Kaynak-konum anahtarının değeri
resource location URL. ,resource location URLVeri kümesinin benzersiz tanımlayıcısını (datasetId) içerir.datasetIdBu öğreticinin sonraki bölümlerinde kullanacaksınız, öğesini kopyalayın.
Bir tileset oluşturma
Bir tileset, haritada işlenen vektör kutucukları kümesidir. Tilesets 'ler var olan veri kümelerinden oluşturulur. Ancak, bir tileset, kaynağı oluşturulan veri kümesinden bağımsızdır. Veri kümesi silinirse, tileset var olmaya devam eder.
Bir tileset oluşturmak için:
Postman uygulamasında Yeni' yi seçin.
Yeni oluştur penceresinde http isteği' ni seçin.
İstek için bir istek adı girin (örneğin, tileset oluşturma).
HTTP Post yöntemini seçin.
Tileset API'sine aşağıdaki URL 'yi girin. İstek aşağıdaki URL 'ye (
{Azure-Maps-Primary-Subscription-key}birincil abonelik anahtarınızla değiştirin) ve{datasetId}datasetIdveri kümesi oluşturma durumununalındığı yer ile} benzer şekilde görünmelidir:https://us.atlas.microsoft.com/tilesets?api-version=2.0&datasetID={datasetId}&subscription-key={Your-Azure-Maps-Primary-Subscription-key}Gönder’i seçin.
Yanıt penceresinde üstbilgiler sekmesini seçin.
İşlem-konum anahtarı değerini kopyalayın
status URL. ' Nı,status URLtileset 'in durumunu denetlemek için kullanacağız.
Tileset oluşturma durumunu denetleme
Veri kümesi oluşturma işleminin durumunu denetlemek ve şunu almak için tilesetId :
Postman uygulamasında Yeni' yi seçin.
Yeni oluştur penceresinde http isteği' ni seçin.
İstek için bir istek adı girin (örneğin, tileset durumunu Al).
Get http yöntemini seçin.
status URLBir tileset oluşturmakiçin kopyaladığınız alanı 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/tilesets/operations/{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. Kaynak-konum anahtarının değeri
resource location URL. ,resource location URLVeri kümesinin benzersiz tanımlayıcısını (tilesetId) içerir.
WFS API ile veri kümelerini sorgulama
Veri kümeleri, WFS APIkullanılarak sorgulanabilir. Tüm özellik koleksiyonlarını veya belirli bir koleksiyonu sorgulamak için WFS API 'sini kullanabilirsiniz. Öğreticinin bu bölümünde her ikisini de yapacağız. İlk olarak tüm koleksiyonları sorgularız ve sonra koleksiyon için sorgu yapacağız unit .
Özellik koleksiyonları için sorgu
Veri kümenizdeki tüm koleksiyonları sorgulamak için:
Postman uygulamasında Yeni' yi seçin.
Yeni oluştur penceresinde http isteği' ni seçin.
İstek için Get DataSet koleksiyonları gibi bir istek adı girin.
Get http yöntemini seçin.
WFS API'sine aşağıdaki URL 'yi girin. İstek aşağıdaki URL 'ye (
{Azure-Maps-Primary-Subscription-key}birincil abonelik anahtarınızla değiştirin) ve{datasetId}datasetIdveri kümesi oluşturma durumununalındığı yer ile} benzer şekilde görünmelidir:https://us.atlas.microsoft.com/wfs/datasets/{datasetId}/collections?subscription-key={Your-Azure-Maps-Primary-Subscription-key}&api-version=2.0Gönder’i seçin.
Yanıt gövdesi GeoJSON biçiminde döndürülür ve veri kümesindeki tüm koleksiyonları içerir. Kolaylık sağlaması için buradaki örnek yalnızca
unitkoleksiyonu gösterir. Tüm koleksiyonları içeren bir örneği görmek için bkz. WFS, koleksiyonları API 'Si açıklaması. Herhangi bir koleksiyon hakkında daha fazla bilgi edinmek için, öğesinin içindeki URL 'Lerden herhangi birini seçebilirsinizlink.{ "collections": [ { "name": "unit", "description": "A physical and non-overlapping area which might be occupied and traversed by a navigating agent. Can be a hallway, a room, a courtyard, etc. It is surrounded by physical obstruction (wall), unless the is_open_area attribute is equal to true, and one must add openings where the obstruction shouldn't be there. If is_open_area attribute is equal to true, all the sides are assumed open to the surroundings and walls are to be added where needed. Walls for open areas are represented as a line_element or area_element with is_obstruction equal to true.", "links": [ { "href": "https://atlas.microsoft.com/wfs/datasets/{datasetId}/collections/unit/definition?api-version=1.0", "rel": "describedBy", "title": "Metadata catalogue for unit" }, { "href": "https://atlas.microsoft.com/wfs/datasets/{datasetId}/collections/unit/items?api-version=1.0", "rel": "data", "title": "unit" } { "href": "https://atlas.microsoft.com/wfs/datasets/{datasetId}/collections/unit?api-version=1.0", "rel": "self", "title": "Metadata catalogue for unit" } ] },
Birim özelliği koleksiyonu sorgusu
Bu bölümde, özellik koleksiyonu için WFS API sorgulaması yapacağız unit .
Veri kümenizdeki birim koleksiyonunu sorgulamak için:
Postman uygulamasında Yeni' yi seçin.
Yeni oluştur penceresinde http isteği' ni seçin.
İstek için bir istek adı girin, örneğin birim koleksiyonu al.
Get http yöntemini seçin.
Aşağıdaki URL 'YI girin (
{Azure-Maps-Primary-Subscription-key}birincil abonelik anahtarınızla değiştirin ve '{datasetIddatasetIdın veri kümesi oluşturma durumunu denetle' de alınır):https://us.atlas.microsoft.com/wfs/datasets/{datasetId}/collections/unit/items?subscription-key={Your-Azure-Maps-Primary-Subscription-key}&api-version=2.0Gönder’i seçin.
Yanıt dönüşdikten sonra özelliği
idözelliklerden birine kopyalayınunit. Aşağıdaki örnekte, özelliğiid"UNIT26" dir. Bu öğreticide, sonraki bölümde "UNIT26" özelliğini kullanacağızid.{ "type": "FeatureCollection", "features": [ { "type": "Feature", "geometry": { "type": "Polygon", "coordinates": ["..."] }, "properties": { "original_id": "b7410920-8cb0-490b-ab23-b489fd35aed0", "category_id": "CTG8", "is_open_area": true, "navigable_by": [ "pedestrian" ], "route_through_behavior": "allowed", "level_id": "LVL14", "occupants": [], "address_id": "DIR1", "name": "157" }, "id": "UNIT26", "featureType": "" }, {"..."} ] }
Özellik stateset oluşturma
Özellik statesets 'ler, dinamik özellikleri ve bunları destekleyen belirli özelliklerde değerleri tanımlar. Bu bölümde, bool özelliği için Boole değerleri ve karşılık gelen stilleri tanımlayan bir stateset oluşturacağız.
Bir stateset oluşturmak için:
Postman uygulamasında Yeni' yi seçin.
Yeni oluştur penceresinde http isteği' ni seçin.
İstek için Create Stateset gibi bir istek adı girin.
HTTP Post yöntemini seçin.
Stateset API'sine 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 ve '{datasetIddatasetIdın veri kümesi oluşturma durumunu denetle' de alınır):https://us.atlas.microsoft.com/featurestatesets?api-version=2.0&datasetId={datasetId}&subscription-key={Your-Azure-Maps-Primary-Subscription-key}Üstbilgiler sekmesini seçin.
Anahtar alanında öğesini seçin
Content-Type.Değer alanında, öğesini seçin
application/json.
Gövde sekmesini seçin.
Açılan listelerde, RAW ve JSON' ı seçin.
Aşağıdaki JSON stillerini kopyalayın ve ardından gövde penceresine yapıştırın:
{ "styles":[ { "keyname":"occupied", "type":"boolean", "rules":[ { "true":"#FF0000", "false":"#00FF00" } ] } ] }Gönder’i seçin.
Yanıt başarıyla döndüğünde,
statesetIdYanıt gövdesinden kopyalayın. Sonraki bölümde,statesetIdoccupancy"UNIT26" özelliğine sahip birimin özellik durumunu değiştirmek için öğesini kullanacağızid.
Özellik durumunu güncelleştirme
occupied"UNIT26" özelliğine sahip birimin durumunu güncelleştirmek için id :
Postman uygulamasında Yeni' yi seçin.
Yeni oluştur penceresinde http isteği' ni seçin.
İstek için PUT set Stateset gibi bir istek adı girin.
PUT http yöntemini seçin.
Özellik Statesets API'sine 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 ve{statesetIdstatesetIdbir özellik oluşturma statesetile elde edin):https://us.atlas.microsoft.com/featurestatesets/{statesetId}/featureStates/UNIT26?api-version=2.0&subscription-key={Your-Azure-Maps-Primary-Subscription-key}Üstbilgiler sekmesini seçin.
Anahtar alanında öğesini seçin
Content-Type.Değer alanında, öğesini seçin
application/json.
Gövde sekmesini seçin.
Açılan listelerde, RAW ve JSON' ı seçin.
Aşağıdaki JSON stilini kopyalayın ve gövde penceresine yapıştırın:
{ "states": [ { "keyName": "occupied", "value": true, "eventTimestamp": "2020-11-14T17:10:20" } ] }Not
Güncelleştirme yalnızca, postalanan zaman damgası önceki isteğin zaman damgasından sonra olacak şekilde kaydedilir.
Gönder’i seçin.
Güncelleştirme tamamlandıktan sonra bir
200 OKhttp durum kodu alırsınız. Bir ınkapımap için dinamik stil uyguladıysanız, güncelleştirme işlenen haritadaki belirli zaman damgasında görüntülenir.
Özelliğini kullanarak bir özelliğin durumunu almak için, Get Stateset API 'sini kullanabilirsiniz id . Stateset ve kaynaklarını silmek için durum silme durumu API özelliğini de kullanabilirsiniz.
bu makalede ele alınan farklı Azure Haritalar creator hizmetleri hakkında daha fazla bilgi edinmek için bkz. Creator ınkapısı Haritalar.
Kaynakları temizleme
Temizlik gerektiren hiçbir kaynak yok.
Sonraki adımlar
ınkapıHaritalar modülünü nasıl kullanacağınızı öğrenmek için bkz.