Creator iç mekan haritaları için dinamik stil uygulama
İç mekan harita Haritalar dinamik özelliklerini temel alan stilleri uygulamak için Azure Haritalar Creator Feature State hizmetini kullanabilirsiniz. Örneğin, tesis toplantı odalarını doluluk durumunu yansıtacak şekilde belirli bir renge sahip hale kullanabilirsiniz. Bu makalede, Özellik Durumu hizmeti ve İç Mekan Web modülü ile iç mekan haritası özelliklerini dinamik olarak işleme açıklanmıştır.
Önkoşullar
- Azure Haritalar hesabı oluşturma
- Birincil anahtar veya abonelikanahtarı olarak da bilinen birincil abonelik anahtarını alın.
- Oluşturucu kaynağı oluşturma
- Örnek Çizim paketini indirin.
- ve elde etmek için iç mekan haritası
tilesetIdstatesetIdoluşturun. - İç Mekan Haritası'nın kullanımı modülünde yer alan adımları takip eden bir web uygulaması derleme.
Bu öğreticide Postman uygulaması kullanılır, ancak farklı bir API geliştirme ortamı seçebilirsiniz.
Dinamik stil uygulama
Önkoşulları tamamlandıktan sonra, ve abonelik anahtarınız ile yapılandırılmış basit bir web tilesetId uygulamasına statesetId sahipsiniz.
Özellik seçme
Dinamik stil uygulamak için, bir özelik (toplantı veya konferans odası gibi) özelliği tarafından başvurulmalı. id Özelliği kullanarak bu id özelliğin dinamik özelliğini veya durumunu güncelleştirebilirsiniz. Bir veri kümesinde tanımlanan özellikleri görüntülemek için aşağıdaki yöntemlerden birini kullanabilirsiniz:
WFS API 'si (Web Özelliği hizmeti). Veri kümelerini sorgulamak için WFS API'sini kullanabilirsiniz. WFS, api Open Geospatial Consortium izler. WFS API'si, bir veri kümesi içindeki özellikleri sorgulamak için yararlıdır. Örneğin, WFS'yi kullanarak belirli bir tesisin ve kat düzeyinin orta büyüklükteki tüm toplantı odalarını bulabilirsiniz.
Kullanıcının web uygulamanızı kullanarak bir haritada özellikleri seçmek için kullanabileceği özelleştirilmiş kod uygulama. Bu makalede bu seçeneği kullanıyoruz.
Aşağıdaki betik, fare tıklama olayına uygulanır. Kod, tıklandı id noktasına göre özelliği alınır. Uygulamanıza, İç Mekan Yöneticisi kod bloğunun ardından kodu ekebilirsiniz. Uygulamanızı çalıştırın ve ardından konsolunu kontrol edin ve tık id edilen noktanın özelliğini alın.
/* Upon a mouse click, log the feature properties to the browser's console. */
map.events.add("click", function(e){
var features = map.layers.getRenderedShapes(e.position, "indoor");
features.forEach(function (feature) {
if (feature.layer.id == 'indoor_unit_office') {
console.log(feature);
}
});
});
İç mekan haritası oluşturma öğreticisi özellik durum kümesi için durum güncelleştirmelerini kabul etmek üzere yapılandırdı. occupancy
Sonraki bölümde, ofisin doluluk durumunu ve ofisini olarak UNIT26 true UNIT27 ayarlaycaz. false
Doluluk durumunu ayarlama
Şimdi iki ofisin durumunu güncelleştiracağız ve UNIT26 UNIT27 :
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.
Özellik Güncelleştirme Durumları API'sinin aşağıdaki URL'sini girin (yerine
{Azure-Maps-Primary-Subscription-key}birincil abonelik anahtarınızı yazın ve ilestatesetIdstatesetIddeğiştirin):https://us.atlas.microsoft.com/featurestatesets/{statesetId}/featureStates/UNIT26?api-version=2.0&subscription-key={Your-Azure-Maps-Primary-Subscription-key}Üst Bilgiler sekmesini seçin.
ANAHTAR alanında öğesini
Content-Typeseçin. DEĞER alanında öğesiniapplication/jsonseçin.
Gövde sekmesini seçin.
Açılan listelerde ham ve JSON'u seçin.
Aşağıdaki JSON stilini kopyalayıp Gövde penceresine yapıştırın:
{ "states": [ { "keyName": "occupied", "value": true, "eventTimestamp": "2020-11-14T17:10:20" } ] }Önemli
Güncelleştirme yalnızca, gönderilen zaman damgası aynı özellik için önceki özellik durumu güncelleştirme isteklerinde kullanılan zaman damgasının ardından geliyorsa
IDkaydedilir.yerine 7. adımda kullanılan URL'yi
UNIT26olarakUNIT27değiştirme:https://us.atlas.microsoft.com/featurestatesets/{statesetId}/featureStates/UNIT27?api-version=2.0&subscription-key={Your-Azure-Maps-Primary-Subscription-key}Aşağıdaki JSON stilini kopyalayıp Gövde penceresine yapıştırın:
{ "states": [ { "keyName": "occupied", "value": false, "eventTimestamp": "2020-11-14T17:10:20" } ] }
Dinamik stilleri haritada görselleştirme
Daha önce bir tarayıcıda açtığınız web uygulaması artık harita özelliklerinin güncelleştirilmiş durumunu yansıtacak:
UNIT27Office (142) yeşil görünse gerekir.UNIT26Office (143) kırmızı görünse gerekir.

Sonraki adımlar
Şunları okuyarak daha fazla bilgi edinin:
Bu makalede belirtilen API'ler için başvurulara bakın: