Dynamische stijl implementeren voor Creator-indoorkaarten

U kunt Azure Kaarten Creator Feature State-service gebruiken om stijlen toe te passen die zijn gebaseerd op de dynamische eigenschappen van gegevensfuncties voor indoor kaarten. U kunt bijvoorbeeld faciliteitsvergaderingen weergeven met een specifieke kleur om de bezettingsstatus weer te geven. In dit artikel wordt beschreven hoe u functies voor plattegronden dynamisch kunt weergeven met de Functietoestand-service en de module Indoor Web.

Vereisten

  1. Een Azure Kaarten maken
  2. Een primaire sleutel voor een abonnement verkrijgen, ook wel bekend als de primaire sleutel of de abonnementssleutel.
  3. Een Creator-resource maken
  4. Download het voorbeeldtekenpakket.
  5. Maak een plattegrond om een en te tilesetId statesetId verkrijgen.
  6. Bouw een webtoepassing door de stappen te volgen in De indoorkaartmodule gebruiken.

In deze zelfstudie wordt gebruikgemaakt van de Postman-toepassing, maar u kunt ook een andere API-ontwikkelomgeving kiezen.

Dynamische stijl implementeren

Nadat u aan de vereisten hebt voltooid, moet u een eenvoudige webtoepassing hebben geconfigureerd met uw abonnementssleutel, tilesetId , en statesetId .

Kenmerken selecteren

Als u dynamische stijlen wilt implementeren, moet naar een functie , zoals een vergadering of vergaderruimte, worden verwezen door de functie id . U gebruikt de functie om de dynamische eigenschap of status van id die functie bij te werken. Als u de functies wilt weergeven die in een gegevensset zijn gedefinieerd, kunt u een van de volgende methoden gebruiken:

  • WFS-API (webfunctieservice). U kunt de WFS-API gebruiken om query's uit te voeren op gegevenssets. WFS volgt de Open Geospatial Consortium API-functies. De WFS-API is handig voor het uitvoeren van query's op functies in een gegevensset. U kunt bijvoorbeeld WFS gebruiken om alle middelgrote vergaderruimten van een specifieke faciliteit en verdiepingsniveau te vinden.

  • Implementeert aangepaste code die een gebruiker kan gebruiken om functies op een kaart te selecteren met behulp van uw webtoepassing. We gebruiken deze optie in dit artikel.

Het volgende script implementeert de muisklikgebeurtenis. Met de code wordt de functie id opgehaald op basis van het klikpunt. In uw toepassing kunt u de code invoegen na het codeblok van uw indoormanager. Voer uw toepassing uit en controleer vervolgens de console om de functie van id het klikpunt te verkrijgen.

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

In de zelfstudie Een plattegrond maken is de functie-statusset geconfigureerd voor het accepteren van statusupdates voor occupancy .

In de volgende sectie stellen we de bezettingstoestand van kantoor in UNIT26 op en office op true UNIT27 false .

Bezettingsstatus instellen

We werken nu de status van de twee kantoren bij, UNIT26 en UNIT27 :

  1. Selecteer in de Postman-app De optie Nieuw.

  2. Selecteer in het venster Nieuwe maken de optie HTTP-aanvraag.

  3. Voer een aanvraagnaam in voor de aanvraag, zoals POST Data Upload.

  4. Voer de volgende URL in naar de API voor onderdelenupdates (vervang door uw primaire {Azure-Maps-Primary-Subscription-key} abonnementssleutel en statesetId door de statesetId ):

    https://us.atlas.microsoft.com/featurestatesets/{statesetId}/featureStates/UNIT26?api-version=2.0&subscription-key={Your-Azure-Maps-Primary-Subscription-key}
    
  5. Selecteer het tabblad Headers.

  6. Selecteer in het veld Content-Type SLEUTEL. Selecteer in het veld application/json VALUE.

    Headertabbladinformatie voor het maken van de statenset.

  7. Selecteer het tabblad Hoofdtekst.

  8. Selecteer raw en JSON in de vervolgkeuzelijsten.

  9. Kopieer de volgende JSON-stijl en plak deze in het venster Body:

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

    Belangrijk

    De update wordt alleen opgeslagen als het geplaatste tijdstempel valt na het tijdstempel dat is gebruikt in eerdere aanvragen voor het bijwerken van de functietoestand voor dezelfde functie ID .

  10. Wijzig de URL die u in stap 7 hebt gebruikt door te UNIT26 vervangen door UNIT27 :

    https://us.atlas.microsoft.com/featurestatesets/{statesetId}/featureStates/UNIT27?api-version=2.0&subscription-key={Your-Azure-Maps-Primary-Subscription-key}
    
  11. Kopieer de volgende JSON-stijl en plak deze in het venster Body:

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

Dynamische stijlen op een kaart visualiseren

De webtoepassing die u eerder in een browser hebt geopend, moet nu de bijgewerkte status van de kaartfuncties weergeven:

  • UNIT27Office (142) moet groen worden weergegeven.
  • UNIT26Office (143) moet rood worden weergegeven.

Vrije ruimte in groene en drukbezette ruimte in rood

Livedemo bekijken

Volgende stappen

Lees voor meer informatie:

Zie de verwijzingen voor de API's die in dit artikel worden vermeld: