Implementace dynamických stylů pro interiérové mapy Creatoru

Pomocí služby Azure Mapy Creator Feature State můžete použít styly, které jsou založené na dynamických vlastnostech vlastností dat interiérových map. Můžete například vykreslit konferenční místnosti v zařízení s konkrétní barvou, aby odrážely stav obsazenosti. Tento článek popisuje, jak dynamicky vykreslovat funkce interiérových map pomocí služby Feature State a modulu Interiérový web.

Požadavky

  1. Vytvoření účtu Azure Maps
  2. Získejte primární klíč předplatného, označované také jako primární klíč nebo klíč předplatného.
  3. Vytvoření prostředku Creator
  4. Stáhněte si ukázkový balíček pro kreslení.
  5. Vytvořte interiérovou mapu, abyste získali objekt a tilesetId statesetId .
  6. Sestavte webovou aplikaci podle kroků v tématu Použití modulu Interiérová mapa.

V tomto kurzu se používá aplikace Postman, ale můžete zvolit jiné vývojové prostředí API.

Implementace dynamického stylu

Po splnění požadavků byste měli mít jednoduchou webovou aplikaci nakonfigurovanou s klíčem předplatného , a tilesetId statesetId .

Výběr funkcí

Aby bylo možné implementovat dynamické styly, musí být funkce , jako je například schůzka nebo konferenční místnost, odkazována pomocí funkce id . Pomocí funkce id můžete aktualizovat dynamickou vlastnost nebo stav této funkce. K zobrazení funkcí definovaných v datové sadě můžete použít jednu z následujících metod:

  • Rozhraní API WFS (Služba webových funkcí). K dotazování datových sad můžete použít rozhraní API WFS. WFS dodržuje Open Geospatial Consortium API. Rozhraní API WFS je užitečné pro dotazování funkcí v datové sadě. WFS můžete například použít k vyhledání všech konferenčních místností střední velikosti konkrétního zařízení a úrovně podlaží.

  • Implementujte přizpůsobený kód, který může uživatel použít k výběru funkcí na mapě pomocí webové aplikace. Tuto možnost používáme v tomto článku.

Následující skript implementuje událost kliknutí myší. Kód načte funkci na id základě bodu, na který jste klikli. Do aplikace můžete vložit kód za blok kódu interiérového manažera. Spusťte aplikaci a pak zkontrolujte konzolu, abyste získali funkci bodu, na id který jste klikli.

/* 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);
        }
    });
});

Kurz Vytvoření interiérové mapy nakonfiguroval stavovou nabídku funkcí tak, aby přijímá aktualizace stavu pro occupancy .

V další části nastavíme stav obsazenosti kanceláře na a kancelář na UNIT26 true UNIT27 false .

Nastavení stavu obsazenosti

Teď aktualizujeme stav těchto dvou poboček a UNIT26 UNIT27 :

  1. V aplikaci Postman vyberte Nový.

  2. V okně Vytvořit nový vyberte Požadavek HTTP.

  3. Zadejte název požadavku, například POST Data Upload.

  4. Zadejte následující adresu URL rozhraní API stavů aktualizace funkcí (nahraďte primárním klíčem předplatného a {Azure-Maps-Primary-Subscription-key} statesetId parametrem statesetId ):

    https://us.atlas.microsoft.com/featurestatesets/{statesetId}/featureStates/UNIT26?api-version=2.0&subscription-key={Your-Azure-Maps-Primary-Subscription-key}
    
  5. Vyberte kartu Hlavičky.

  6. V poli KLÍČ vyberte Content-Type . V poli HODNOTA vyberte application/json .

    Informace na kartě Záhlaví pro vytváření stavů

  7. Vyberte kartu Text.

  8. V rozevíracích seznamech vyberte raw a JSON.

  9. Zkopírujte následující styl JSON a vložte ho do okna Text:

    {
        "states": [
            {
                "keyName": "occupied",
                "value": true,
                "eventTimestamp": "2020-11-14T17:10:20"
            }
        ]
    }
    

    Důležité

    Aktualizace se uloží jenom v případě, že se zveřejněné časové razítko nachází po časovém razítku použitém v předchozích žádostech o aktualizaci stavu funkce pro stejnou funkci ID .

  10. Změňte adresu URL, kterou jste použili v kroku 7, UNIT26 nahrazením za UNIT27 :

    https://us.atlas.microsoft.com/featurestatesets/{statesetId}/featureStates/UNIT27?api-version=2.0&subscription-key={Your-Azure-Maps-Primary-Subscription-key}
    
  11. Zkopírujte následující styl JSON a vložte ho do okna Text:

    {
        "states": [
            {
                "keyName": "occupied",
                "value": false,
                "eventTimestamp": "2020-11-14T17:10:20"
            }
        ]
    }
    

Vizualizace dynamických stylů na mapě

Webová aplikace, kterou jste předtím otevřeli v prohlížeči, by teď měla odrážet aktualizovaný stav funkcí mapy:

  • UNIT27Office (142) by se měl zobrazit zeleně.
  • UNIT26Office (143) by mělo vypadat červeně.

Bezplatná místnost v zelené a zaneprázdněná místnost červeně

Zobrazit živou ukázku

Další kroky

Další informace najdete v:

Projděte si odkazy na rozhraní API uvedená v tomto článku: