Självstudie: Använda Skapare för att skapa inomhuskartor
I den här självstudien beskrivs hur du skapar inomhuskartor. I den här självstudien får du lära dig att:
- Upload ditt ritningspaket för inomhuskart.
- Konvertera ditt ritningspaket till kartdata.
- Skapa en datauppsättning från dina kartdata.
- Skapa en paneluppsättning från datamängden.
- Fråga Api:et för Azure Kartor Webbfunktionstjänst (WFS) om du vill veta mer om dina kartfunktioner.
- Skapa en funktions tillståndsuppsättning med hjälp av dina kartfunktioner och data i datauppsättningen.
- Uppdatera funktions tillståndsuppsättningen.
Förutsättningar
- Skapa ett Azure Kartor konto.
- Skaffa en primär prenumerationsnyckel, som även kallas primärnyckel eller prenumerationsnyckel.
- Skapa en Creator-resurs.
- Ladda ned exempelritningspaketet.
I den här självstudien används Postman-programmet, men du kan använda en annan API-utvecklingsmiljö.
Viktigt
I den här självstudien används us.atlas.microsoft.com den geografiska URL:en. Om din Creator-tjänst inte har skapats i USA måste du använda en annan geografisk URL. Mer information finns i Åtkomst till Creator Services. Om du vill visa mappningar av region till geografisk plats, se Creator-tjänstens geografiska omfång.
Upload ett ritningspaket
Använd API:et data Upload för att ladda upp ritningspaketet till Azure Kartor resurser.
API:et Upload data är en långvarig transaktion som implementerar mönstret som definierats i Creator Long-Running Operation API V2.
Så här laddar du upp ritningspaketet:
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.
Välj POST HTTP-metoden.
Ange följande URL till API:et Data Upload Begäran bör se ut som följande URL (ersätt
{Azure-Maps-Primary-Subscription-key}med din primära prenumerationsnyckel)::https://us.atlas.microsoft.com/mapData?api-version=2.0&dataFormat=dwgzippackage&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 du
application/octet-stream.
Välj fliken brödtext.
I listrutan väljer du binär.
Välj Välj fil och välj sedan ett ritningspaket.
Välj Skicka.
I svarsfönstret väljer du fliken Rubriker.
Kopiera värdet för nyckeln Operation-Location, som är
status URL. Vi använder för attstatus URLkontrollera status för uppladdningen av ritningspaketet.
Kontrollera överföringsstatus för ritningspaketet
Kontrollera status för ritningspaketet och hämta dess unika ID ( udid ):
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 GET Data Upload Status.
Välj METODEN GET HTTP.
Ange som
status URLdu kopierade i Upload ett ritningspaket. Begäran bör se ut som följande URL (ersätt{Azure-Maps-Primary-Subscription-key}med din primära prenumerationsnyckel):https://us.atlas.microsoft.com/mapData/operations/{operationId}?api-version=2.0&subscription-key={Your-Azure-Maps-Primary-Subscription-key}Välj Skicka.
I svarsfönstret väljer du fliken Rubriker.
Kopiera värdet för nyckeln Resource-Location, som är
resource location URL.resource location URLinnehåller den unika identifieraren ( ) förudidritningspaketets resurs.
(Valfritt) Hämta metadata för ritningspaket
Du kan hämta metadata från resursen Ritningspaket. Metadata innehåller information som resursplatsens URL, skapandedatum, uppdaterat datum, storlek och uppladdningsstatus.
Så här hämtar du innehållsmetadata:
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 GET Data Upload Metadata.
. Välj METODEN GET HTTP.
Ange som
resource Location URLdu kopierade i Kontrollera överföringsstatus för ritningspaketet. Begäran bör se ut som följande URL (ersätt{Azure-Maps-Primary-Subscription-key}med din primära prenumerationsnyckel):https://us.atlas.microsoft.com/mapData/metadata/{udid}?api-version=2.0&subscription-key={Your-Azure-Maps-Primary-Subscription-key}Välj Skicka.
I svarsfönstret väljer du fliken Brödtext. Metadata bör se ut som följande JSON-fragment:
{ "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" }
Konvertera ett ritningspaket
Nu när ritningspaketet har laddats upp använder vi för det uppladdade paketet udid för att konvertera paketet till kartdata. Konverterings-API:et använder en långvarig transaktion som implementerar mönstret som definieras här.
Så här konverterar du ett ritningspaket:
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 Convert Drawing Package.
Välj POST HTTP-metoden.
Ange följande URL till konverteringstjänsten (ersätt
{Azure-Maps-Primary-Subscription-key}med din primära prenumerationsnyckeludidoch med för detudiduppladdade paketet):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.0Välj Skicka.
I svarsfönstret väljer du fliken Rubriker.
Kopiera värdet för nyckeln Operation-Location, som är
status URL. Vi använder förstatus URLatt kontrollera konverteringens status.
Kontrollera konverteringsstatusen för ritningspaketet
När konverteringen har slutförts returneras ett conversionId . Vi kan komma åt conversionId genom att kontrollera status för konverteringsprocessen för ritningspaketet. kan conversionId sedan användas för att komma åt konverterade data.
Kontrollera statusen för konverteringsprocessen och hämta conversionId :
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 GET-konverteringsstatus.
Välj METODEN GET HTTP:
Ange som
status URLdu kopierade i Konvertera ett ritningspaket. Begäran bör se ut som följande URL (ersätt{Azure-Maps-Primary-Subscription-key}med din primära prenumerationsnyckel):https://us.atlas.microsoft.com/conversions/operations/{operationId}?api-version=2.0&subscription-key={Your-Azure-Maps-Primary-Subscription-key}Välj Skicka.
I svarsfönstret väljer du fliken Rubriker.
Kopiera värdet för nyckeln Resource-Location, som är
resource location URL.resource location URLinnehåller den unika identifieraren ( ), som kan användas av andraconversionIdAPI:er för att komma åt konverterade kartdata.
Exempel på ritningspaket ska konverteras utan fel eller varningar. Men om du får fel eller varningar från ditt eget ritningspaket innehåller JSON-svaret en länk till visualiseraren ritningsfel. Du kan använda visualiseringen Ritningsfel för att granska information om fel och varningar. Information om hur du får rekommendationer för att lösa konverteringsfel och varningar finns i Rita konverteringsfel och varningar.
Följande JSON-fragment visar en exempelkonverteringsvarning:
{
"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"
}
}
Skapa en datauppsättning
En datamängd är en samling kartfunktioner, till exempel byggnader, nivåer och rum. Om du vill skapa en datauppsättning använder du API:et Dataset Create. API:et Dataset Create tar conversionId för det konverterade ritningspaketet och returnerar en datasetId av den skapade datauppsättningen.
Så här skapar du en datauppsättning:
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 Dataset Create.
Välj POST HTTP-metoden.
Ange följande URL till DATAUPPSÄTTNINGS-API:et. Begäran bör se ut som följande URL (ersätt med din primära prenumerationsnyckel och } med som hämtas i
{Azure-Maps-Primary-Subscription-key}Kontrollera paketkonverteringsstatus{conversionIdförconversionIdritning):https://us.atlas.microsoft.com/datasets?api-version=2.0&conversionId={conversionId}&subscription-key={Your-Azure-Maps-Primary-Subscription-key}Välj Skicka.
I svarsfönstret väljer du fliken Rubriker.
Kopiera värdet för nyckeln Operation-Location, som är
status URL. Vi använder för attstatus URLkontrollera datauppsättningens status.
Kontrollera status för skapande av datauppsättning
Kontrollera statusen för skapandeprocessen för datauppsättningen och hämta datasetId :
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 GET-datauppsättningsstatus.
Välj METODEN GET HTTP.
Ange som
status URLdu kopierade i Skapa en datauppsättning. Begäran bör se ut som följande URL (ersätt{Azure-Maps-Primary-Subscription-key}med din primära prenumerationsnyckel):https://us.atlas.microsoft.com/datasets/operations/{operationId}?api-version=2.0&subscription-key={Your-Azure-Maps-Primary-Subscription-key}Välj Skicka.
I svarsfönstret väljer du fliken Rubriker. Värdet för nyckeln Resource-Location är
resource location URL.resource location URLinnehåller den unika identifieraren ( ) fördatasetIddatauppsättningen.Kopiera
datasetId, eftersom du ska använda den i nästa avsnitt i den här självstudien.
Skapa en paneluppsättning
En paneluppsättning är en uppsättning vektorpaneler som återges på kartan. Paneluppsättningar skapas från befintliga datauppsättningar. En paneluppsättning är dock oberoende av datauppsättningen som den kom från. Om datauppsättningen tas bort fortsätter paneluppsättningen att finnas.
Så här skapar du en paneluppsättning:
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 Tileset Create.
Välj POST HTTP-metoden.
Ange följande URL till Tileset-API:et. Begäran bör se ut som följande URL (ersätt med din primära prenumerationsnyckel) och } med den som erhölls i
{Azure-Maps-Primary-Subscription-key}{datasetIdKontrolleradatasetIdskapandestatus för datauppsättningen:https://us.atlas.microsoft.com/tilesets?api-version=2.0&datasetID={datasetId}&subscription-key={Your-Azure-Maps-Primary-Subscription-key}Välj Skicka.
I svarsfönstret väljer du fliken Rubriker.
Kopiera värdet för nyckeln Operation-Location, som är
status URL. Vi använder förstatus URLatt kontrollera status för paneluppsättningen.
Kontrollera skapandestatusen för paneluppsättningen
Kontrollera statusen för skapandeprocessen för datauppsättningen och hämta tilesetId :
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 GET Tileset Status.
Välj METODEN GET HTTP.
Ange som
status URLdu kopierade i Skapa en paneluppsättning. Begäran bör se ut som följande URL (ersätt{Azure-Maps-Primary-Subscription-key}med din primära prenumerationsnyckel):https://us.atlas.microsoft.com/tilesets/operations/{operationId}?api-version=2.0&subscription-key={Your-Azure-Maps-Primary-Subscription-key}Välj Skicka.
I svarsfönstret väljer du fliken Rubriker. Värdet för nyckeln Resource-Location är
resource location URL.resource location URLinnehåller den unika identifieraren ( ) förtilesetIddatauppsättningen.
Fråga datauppsättningar med WFS API
Datauppsättningar kan efterfrågas med hjälp av WFS API. Du kan använda WFS-API:et för att fråga efter alla funktionssamlingar eller en specifik samling. I det här avsnittet av självstudien ska vi göra båda. Först frågar vi alla samlingar och sedan frågar vi efter unit samlingen.
Fråga efter funktionssamlingar
Så här frågar du efter alla samlingar i datauppsättningen:
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 GET Dataset Collections.
Välj METODEN GET HTTP.
Ange följande URL till WFS API. Begäran bör se ut som följande URL (ersätt med din primära prenumerationsnyckel) och } med den som erhölls i
{Azure-Maps-Primary-Subscription-key}{datasetIdKontrolleradatasetIdskapandestatus för datauppsättningen:https://us.atlas.microsoft.com/wfs/datasets/{datasetId}/collections?subscription-key={Your-Azure-Maps-Primary-Subscription-key}&api-version=2.0Välj Skicka.
Svarstexten returneras i GeoJSON-format och innehåller alla samlingar i datauppsättningen. För enkelhetens skull visar exemplet här bara
unitsamlingen. Ett exempel som innehåller alla samlingar finns i API för WFS Describe Collections. Om du vill veta mer om en samling kan du välja någon av URL:erna ilinkelementet .{ "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" } ] },
Fråga efter enhetsfunktionssamling
I det här avsnittet frågar vi WFS-API:et efter unit funktionssamlingen.
Så här frågar du enhetssamlingen i datauppsättningen:
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 GET Unit Collection.
Välj METODEN GET HTTP.
Ange följande URL (ersätt med
{Azure-Maps-Primary-Subscription-key}din primära prenumerationsnyckel och{datasetId} med som du fick i KontrolleradatasetIdskapandestatus för datauppsättningen):https://us.atlas.microsoft.com/wfs/datasets/{datasetId}/collections/unit/items?subscription-key={Your-Azure-Maps-Primary-Subscription-key}&api-version=2.0Välj Skicka.
När svaret returneras kopierar du funktionen
idför en avunitfunktionerna. I följande exempel är funktionenid"UNIT26". I den här självstudien använder vi "UNIT26" som funktionidi nästa avsnitt.{ "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": "" }, {"..."} ] }
Skapa en funktions tillståndsuppsättning
Funktions tillståndsuppsättningar definierar dynamiska egenskaper och värden för specifika funktioner som stöder dem. I det här avsnittet skapar vi en tillståndsuppsättning som definierar booleska värden och motsvarande format för egenskapen occupancy.
Så här skapar du en tillståndsuppsättning:
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 Create Stateset.
Välj POST HTTP-metoden.
Ange följande URL till tillståndsuppsättnings-API:et. Begäran bör se ut som följande URL (ersätt med din primära prenumerationsnyckel och } med som du fick i Kontrollera
{Azure-Maps-Primary-Subscription-key}{datasetIddatasetIdskapandestatus för datauppsättningen):https://us.atlas.microsoft.com/featurestatesets?api-version=2.0&datasetId={datasetId}&subscription-key={Your-Azure-Maps-Primary-Subscription-key}Välj fliken Rubriker.
I fältet NYCKEL väljer du
Content-Type.I fältet VALUE (VÄRDE) väljer du
application/json.
Välj fliken brödtext.
I listrutan väljer du raw och JSON.
Kopiera följande JSON-format och klistra sedan in dem i fönstret Brödtext:
{ "styles":[ { "keyname":"occupied", "type":"boolean", "rules":[ { "true":"#FF0000", "false":"#00FF00" } ] } ] }Välj Skicka.
När svaret har returnerats kopierar du
statesetIdfrån svarstexten. I nästa avsnitt använder vi för att ändrastatesetIdoccupancyegenskapstillståndet för enheten med funktionenid"UNIT26".
Uppdatera ett funktionstillstånd
Så här uppdaterar occupied du enhetens tillstånd med funktionen id "UNIT26":
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 PUT Set Stateset.
Välj METODEN PUT HTTP.
Ange följande URL till API:et funktions tillståndsuppsättningar. Begäran bör se ut som följande URL (ersätt med din primära prenumerationsnyckel och } med som hämtas
{Azure-Maps-Primary-Subscription-key}i Skapa en funktions{statesetIdstatesetIdtillståndsuppsättning):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 VALUE (VÄRDE) väljer du
application/json.
Välj fliken brödtext.
I listrutan väljer du raw och JSON.
Kopiera följande JSON-format och klistra sedan in det i fönstret Brödtext:
{ "states": [ { "keyName": "occupied", "value": true, "eventTimestamp": "2020-11-14T17:10:20" } ] }Anteckning
Uppdateringen sparas bara om den tid som den publicerade stämpeln är efter tidsstämpeln för den tidigare begäran.
Välj Skicka.
När uppdateringen är klar får du en
200 OKHTTP-statuskod. Om du implementerade dynamisk formatering för en inomhuskarta visas uppdateringen vid den angivna tidsstämpeln i den renderade kartan.
Du kan använda FUNKTIONEN Hämta tillståndsuppsättnings-API för att hämta tillståndet för en funktion med hjälp av dess funktion id . Du kan också använda API:et ta bort tillstånd för funktionstillstånd för att ta bort tillståndsuppsättningen och dess resurser.
Mer information om de olika Azure Kartor Creator-tjänster som beskrivs i den här artikeln finns i Creator Indoor Kartor.
Rensa resurser
Det finns inga resurser som kräver rensning.
Nästa steg
Information om hur du använder modulen Kartor inomhus finns i