Implementera dynamisk formatering för inomhuskartor i Creator
Du kan använda Azure Kartor Creator Feature State-tjänsten för att tillämpa format som baseras på dynamiska egenskaper för dataegenskaper för inomhuskart. Du kan till exempel rendera mötesrum med en viss färg för att återspegla användningsstatus. Den här artikeln beskriver hur du dynamiskt återger inomhuskartfunktioner med tjänsten Funktionstillstånd och modulen Inomhuswebb.
Förutsättningar
- Skapa ett Azure Maps-konto
- Skaffa en primär prenumerationsnyckel, som även kallas primärnyckel eller prenumerationsnyckel.
- Skapa en Creator-resurs
- Ladda ned exempelritningspaket.
- Skapa en inomhuskarta för att hämta och
tilesetIdstatesetId. - Skapa en webbapp genom att följa stegen i Modulen Använda inomhuskarta.
I den här självstudien används Postman-programmet, men du kan välja en annan API-utvecklingsmiljö.
Implementera dynamisk formatering
När du har slutfört kraven bör du ha en enkel webbapp konfigurerad med din prenumerationsnyckel, tilesetId , och statesetId .
Välja funktioner
För att implementera dynamisk formatering måste en funktion , till exempel ett möte eller konferensrum, refereras till av dess funktion id . Du kan använda funktionen för att uppdatera funktionens dynamiska id egenskap eller tillstånd. Om du vill visa de funktioner som definierats i en datauppsättning kan du använda någon av följande metoder:
WFS API (webbtjänst). Du kan använda WFS-API:et för att köra frågor mot datauppsättningar. WFS följer Open Geospatial Consortium API-funktioner. WFS-API:et är användbart för att köra frågor mot funktioner i en datauppsättning. Du kan till exempel använda WFS för att hitta alla mellanstora mötesrum på en specifik anläggning och golvnivå.
Implementera anpassad kod som en användare kan använda för att välja funktioner på en karta med hjälp av ditt webbprogram. Vi använder det här alternativet i den här artikeln.
Följande skript implementerar musklickshändelsen. Koden hämtar funktionen baserat id på den klickade punkten. I ditt program kan du infoga koden efter ditt Indoor Manager-kodblock. Kör programmet och kontrollera sedan konsolen för att hämta funktionen för id den klickade punkten.
/* 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);
}
});
});
Självstudien Skapa en inomhuskarta konfigurerade funktionstillståndsuppsättningen för att acceptera tillståndsuppdateringar för occupancy .
I nästa avsnitt anger vi användningstillståndet för kontor UNIT26 till och kontor till true UNIT27 false .
Ange användningsstatus
Nu ska vi uppdatera tillståndet för de två kontoren, UNIT26 och UNIT27 :
I Postman-appen väljer du Nytt.
I fönstret Skapa ny väljer du HTTP-begäran.
Ange ett begärandenamn för begäran, till exempel POST Data Upload.
Ange följande URL till API:et funktionsuppdaterings tillstånd (ersätt
{Azure-Maps-Primary-Subscription-key}med din primära prenumerationsnyckelstatesetIdoch medstatesetId):https://us.atlas.microsoft.com/featurestatesets/{statesetId}/featureStates/UNIT26?api-version=2.0&subscription-key={Your-Azure-Maps-Primary-Subscription-key}Välj fliken Rubriker.
I fältet NYCKEL väljer du
Content-Type. I fältet VÄRDE väljer duapplication/json.
Välj fliken brödtext.
I listrutan väljer du raw och JSON.
Kopiera följande JSON-format och klistra in det i fönstret Brödtext:
{ "states": [ { "keyName": "occupied", "value": true, "eventTimestamp": "2020-11-14T17:10:20" } ] }Viktigt
Uppdateringen sparas bara om den publicerade tidsstämpeln är efter tidsstämpeln som användes i tidigare funktionstillståndsuppdateringsbegäranden för samma funktion
ID.Ändra den URL som du använde i steg 7 genom att ersätta
UNIT26medUNIT27:https://us.atlas.microsoft.com/featurestatesets/{statesetId}/featureStates/UNIT27?api-version=2.0&subscription-key={Your-Azure-Maps-Primary-Subscription-key}Kopiera följande JSON-format och klistra in det i fönstret Brödtext:
{ "states": [ { "keyName": "occupied", "value": false, "eventTimestamp": "2020-11-14T17:10:20" } ] }
Visualisera dynamiska format på en karta
Webbprogrammet som du öppnade tidigare i en webbläsare bör nu återspegla det uppdaterade tillståndet för kartfunktionerna:
UNIT27Office (142) bör visas grönt.UNIT26Office (143) bör visas i rött.

Nästa steg
Läs mer genom att läsa:
Se referenserna för DE API:er som nämns i den här artikeln: