Zelfstudie: Creator gebruiken om gegevens van indoorplattegronden te maken
In deze zelfstudie wordt beschreven hoe u plattegronden maakt. In deze zelfstudie leert u het volgende:
- Upload tekenpakket voor de plattegrond maken.
- Converteert uw tekenpakket naar kaartgegevens.
- Maak een gegevensset op basis van uw kaartgegevens.
- Maak een tegelset op basis van de gegevens in uw gegevensset.
- Een query uitvoeren op de Azure Kaarten Web Feature Service (WFS)-API voor meer informatie over uw kaartfuncties.
- Maak een functie-stateset met behulp van uw kaartfuncties en de gegevens in uw gegevensset.
- Werk de functie-stateset bij.
Vereisten
- Maak een Azure Kaarten account.
- Een primaire sleutel voor een abonnement verkrijgen, ook wel bekend als de primaire sleutel of de abonnementssleutel.
- Maak een Creator-resource.
- Download het voorbeeldtekenpakket.
In deze zelfstudie wordt gebruikgemaakt van de Postman-toepassing, maar u kunt een andere API-ontwikkelomgeving gebruiken.
Belangrijk
In deze zelfstudie wordt de us.atlas.microsoft.com geografische URL gebruikt. Als uw Creator-service niet is gemaakt in de Verenigde Staten, moet u een andere geografische URL gebruiken. Zie Toegang tot Creator Services voor meer informatie. Zie Het geografische bereik van de Creator-service voor het weergeven van toewijzingen van regio's aan geografische locatie.
Een tekenpakket uploaden
Gebruik de API voor het uploaden van gegevens om het tekenpakket te uploaden naar Azure Maps-resources.
De Data Upload-API is een langdurige transactie die het patroon implementeert dat is gedefinieerd in Creator Long-Running Operation API V2.
Het tekenpakket uploaden:
Selecteer in de Postman-app De optie Nieuw.
Selecteer in het venster Nieuwe maken de optie HTTP-aanvraag.
Voer een aanvraagnaam in voor de aanvraag, zoals POST Data Upload.
Selecteer de HTTP-methode POST.
Voer de volgende URL in naar de Data Upload-API. De aanvraag moet er als volgt uitzien (vervang
{Azure-Maps-Primary-Subscription-key}door uw primaire abonnementssleutel):https://us.atlas.microsoft.com/mapData?api-version=2.0&dataFormat=dwgzippackage&subscription-key={Your-Azure-Maps-Primary-Subscription-key}Selecteer het tabblad Headers.
Selecteer in het veld
Content-TypeSLEUTEL.Selecteer in het veld VALUE
application/octet-stream.
Selecteer het tabblad Hoofdtekst.
Selecteer binair in de vervolgkeuzelijst.
Selecteer Bestand selecteren en selecteer vervolgens een tekenpakket.
Selecteer Verzenden.
Selecteer in het antwoordvenster het tabblad Headers.
Kopieer de waarde van de sleutel Operation-Location. Dit is de
status URL. We gebruiken de om de status van het uploaden van hetstatus URLtekenpakket te controleren.
De uploadstatus van het tekenpakket controleren
De status van het tekenpakket controleren en de unieke id ophalen ( udid ):
Selecteer in de Postman-app De optie Nieuw.
Selecteer in het venster Nieuwe maken de optie HTTP-aanvraag.
Voer een aanvraagnaam in voor de aanvraag, zoals GET Data Upload Status.
Selecteer de HTTP-methode GET.
Voer de
status URLin die u in Upload tekenpakket hebt gekopieerd. De aanvraag moet er uitzien als de volgende URL (vervang{Azure-Maps-Primary-Subscription-key}door uw primaire abonnementssleutel):https://us.atlas.microsoft.com/mapData/operations/{operationId}?api-version=2.0&subscription-key={Your-Azure-Maps-Primary-Subscription-key}Selecteer Verzenden.
Selecteer in het antwoordvenster het tabblad Headers.
Kopieer de waarde van de sleutel Resourcelocatie. Dit is de
resource location URL. Deresource location URLbevat de unieke id ( ) van deudidtekenpakketresource.
(Optioneel) Metagegevens van tekenpakket ophalen
U kunt metagegevens ophalen uit de resource van het tekenpakket. De metagegevens bevatten informatie zoals de URL van de resourcelocatie, de aanmaakdatum, de bijgewerkte datum, de grootte en de uploadstatus.
Metagegevens van inhoud ophalen:
Selecteer in de Postman-app De optie Nieuw.
Selecteer in het venster Nieuwe maken de optie HTTP-aanvraag.
Voer een aanvraagnaam in voor de aanvraag, zoals GET Data Upload Metadata.
. Selecteer de HTTP-methode GET.
Voer de
resource Location URLin die u hebt gekopieerd in De uploadstatus van het check-tekenpakket. De aanvraag moet er uitzien als de volgende URL (vervang{Azure-Maps-Primary-Subscription-key}door uw primaire abonnementssleutel):https://us.atlas.microsoft.com/mapData/metadata/{udid}?api-version=2.0&subscription-key={Your-Azure-Maps-Primary-Subscription-key}Selecteer Verzenden.
Selecteer in het antwoordvenster het tabblad Hoofd. De metagegevens moeten er als volgt uit zien:
{ "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" }
Een tekenpakket converteren
Nu het tekenpakket is geüpload, gebruiken we de voor het geüploade pakket om het pakket te converteren udid naar kaartgegevens. De Conversie-API maakt gebruik van een langlopende transactie die het hier gedefinieerde patroon implementeert.
Een tekenpakket converteren:
Selecteer in de Postman-app De optie Nieuw.
Selecteer in het venster Nieuwe maken de optie HTTP-aanvraag.
Voer een aanvraagnaam in voor de aanvraag, zoals POST-tekenpakket converteren.
Selecteer de HTTP-methode POST.
Voer de volgende URL naar de Conversion Service in (vervang door uw primaire abonnementssleutel en door de van
{Azure-Maps-Primary-Subscription-key}hetudidudidgeüploade pakket):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.0Selecteer Verzenden.
Selecteer in het antwoordvenster het tabblad Headers.
Kopieer de waarde van de sleutel Operation-Location. Dit is de
status URL. We gebruiken de omstatus URLde status van de conversie te controleren.
De conversiestatus van het tekenpakket controleren
Nadat de conversiebewerking is voltooid, wordt een conversionId retourneert. We hebben toegang tot de conversionId door de status van het conversieproces van het tekenpakket te controleren. De conversionId kan vervolgens worden gebruikt voor toegang tot de geconverteerde gegevens.
De status van het conversieproces controleren en de conversionId ophalen:
Selecteer in de Postman-app De optie Nieuw.
Selecteer in het venster Nieuwe maken de optie HTTP-aanvraag.
Voer een aanvraagnaam in voor de aanvraag, zoals GET-conversiestatus.
Selecteer de HTTP-methode GET:
Voer de
status URLin die u hebt gekopieerd in Een tekenpakket converteren. De aanvraag moet er uitzien als de volgende URL (vervang{Azure-Maps-Primary-Subscription-key}door uw primaire abonnementssleutel):https://us.atlas.microsoft.com/conversions/operations/{operationId}?api-version=2.0&subscription-key={Your-Azure-Maps-Primary-Subscription-key}Selecteer Verzenden.
Selecteer in het antwoordvenster het tabblad Headers.
Kopieer de waarde van de sleutel Resourcelocatie. Dit is de
resource location URL. De bevat de unieke id ( ), die door andere API's kan worden gebruikt voorresource location URLconversionIdtoegang tot de geconverteerde kaartgegevens.
Het voorbeeldtekeningpakket moet zonder fouten of waarschuwingen worden geconverteerd. Als u echter fouten of waarschuwingen van uw eigen tekenpakket ontvangt, bevat het JSON-antwoord een koppeling naar de visualiseer van tekenfouten. U kunt de visualiseer voor tekenfouten gebruiken om de details van fouten en waarschuwingen te controleren. Zie Fouten en waarschuwingen over tekenconversies voor aanbevelingen voor het oplossen van conversiefouten en -waarschuwingen.
In het volgende JSON-fragment wordt een voorbeeld van een conversiewaarschuwing weergegeven:
{
"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"
}
}
Een gegevensset maken
Een gegevensset is een verzameling kaartfuncties, zoals gebouwen, niveaus en ruimten. Als u een gegevensset wilt maken, gebruikt u de API voor het maken van gegevenssets. De API voor het maken van conversionId gegevenssets neemt de voor het geconverteerde tekenpakket en retourneert een van de gemaakte datasetId gegevensset.
Een gegevensset maken:
Selecteer In de Postman-app de optie Nieuw.
Selecteer in het venster Nieuwe maken de optie HTTP-aanvraag.
Voer een aanvraagnaam in voor de aanvraag, zoals POST-gegevensset maken.
Selecteer de HTTP-methode POST.
Voer de volgende URL in naar de Gegevensset-API. De aanvraag moet er uitzien als de volgende URL (vervang door uw primaire abonnementssleutel en } door de die is verkregen in De conversiestatus
{Azure-Maps-Primary-Subscription-key}{conversionIdvan hetconversionIdtekenpakket controleren):https://us.atlas.microsoft.com/datasets?api-version=2.0&conversionId={conversionId}&subscription-key={Your-Azure-Maps-Primary-Subscription-key}Selecteer Verzenden.
Selecteer in het antwoordvenster het tabblad Headers.
Kopieer de waarde van de sleutel Operation-Location. Dit is de
status URL. We gebruiken de omstatus URLde status van de gegevensset te controleren.
De aanmaakstatus van de gegevensset controleren
Om de status van het proces voor het maken van de gegevensset te controleren en de op te datasetId halen:
Selecteer In de Postman-app de optie Nieuw.
Selecteer in het venster Nieuwe maken de optie HTTP-aanvraag.
Voer een aanvraagnaam in voor de aanvraag, zoals GET Dataset Status.
Selecteer de HTTP-methode GET.
Voer het
status URLin dat u hebt gekopieerd in Een gegevensset maken. De aanvraag moet er uitzien als de volgende URL (vervang{Azure-Maps-Primary-Subscription-key}door uw primaire abonnementssleutel):https://us.atlas.microsoft.com/datasets/operations/{operationId}?api-version=2.0&subscription-key={Your-Azure-Maps-Primary-Subscription-key}Selecteer Verzenden.
Selecteer in het antwoordvenster het tabblad Headers. De waarde van de sleutel Resourcelocatie is de
resource location URL. Deresource location URLbevat de unieke id ( ) van dedatasetIdgegevensset.Kopieer de , omdat u deze in de volgende secties van
datasetIddeze zelfstudie gaat gebruiken.
Tegelset maken
Een tegelset is een set vectortegels die op de kaart worden weergegeven. Tegelsets worden gemaakt op basis van bestaande gegevenssets. Een tegelset is echter onafhankelijk van de gegevensset die als bron heeft gediend. Als de gegevensset wordt verwijderd, blijft de tegelset bestaan.
Een tegelset maken:
Selecteer In de Postman-app de optie Nieuw.
Selecteer in het venster Nieuwe maken de optie HTTP-aanvraag.
Voer een aanvraagnaam in voor de aanvraag, zoals POST-tegelset Maken.
Selecteer de HTTP-methode POST.
Voer de volgende URL in naar de Tegelset-API. De aanvraag moet er uitzien als de volgende URL (vervang door uw primaire abonnementssleutel) en } met de die is verkregen in Status van het maken
{Azure-Maps-Primary-Subscription-key}{datasetIdvandatasetIdgegevensset controleren:https://us.atlas.microsoft.com/tilesets?api-version=2.0&datasetID={datasetId}&subscription-key={Your-Azure-Maps-Primary-Subscription-key}Selecteer Verzenden.
Selecteer in het antwoordvenster het tabblad Headers.
Kopieer de waarde van de sleutel Operation-Location. Dit is de
status URL. We gebruiken de omstatus URLde status van de tegelset te controleren.
De aanmaakstatus van de tegelset controleren
Om de status van het proces voor het maken van de gegevensset te controleren en de op te tilesetId halen:
Selecteer In de Postman-app de optie Nieuw.
Selecteer in het venster Nieuwe maken de optie HTTP-aanvraag.
Voer een aanvraagnaam in voor de aanvraag, zoals GET Tileset Status.
Selecteer de HTTP-methode GET.
Voer het
status URLin dat u hebt gekopieerd in Een tegelset maken. De aanvraag moet er uitzien als de volgende URL (vervang{Azure-Maps-Primary-Subscription-key}door uw primaire abonnementssleutel):https://us.atlas.microsoft.com/tilesets/operations/{operationId}?api-version=2.0&subscription-key={Your-Azure-Maps-Primary-Subscription-key}Selecteer Verzenden.
Selecteer in het antwoordvenster het tabblad Headers. De waarde van de sleutel Resourcelocatie is de
resource location URL. Deresource location URLbevat de unieke id ( ) van detilesetIdgegevensset.
Query's uitvoeren op gegevenssets met de WFS-API
Gegevenssets kunnen worden opgevraagd met behulp van de WFS-API. U kunt de WFS-API gebruiken om een query uit te voeren voor alle functieverzamelingen of een specifieke verzameling. In deze sectie van de zelfstudie doen we beide. Eerst voeren we een query uit op alle verzamelingen en vervolgens zoeken we naar de unit verzameling.
Query's uitvoeren op functieverzamelingen
Een query uitvoeren op alle verzamelingen in uw gegevensset:
Selecteer In de Postman-app de optie Nieuw.
Selecteer in het venster Nieuwe maken de optie HTTP-aanvraag.
Voer een aanvraagnaam in voor de aanvraag, zoals GET Dataset Collections.
Selecteer de HTTP-methode GET.
Voer de volgende URL naar de WFS-API in. De aanvraag moet er uitzien als de volgende URL (vervang door uw primaire abonnementssleutel) en } met de die is verkregen in Status van het maken
{Azure-Maps-Primary-Subscription-key}{datasetIdvandatasetIdgegevensset controleren:https://us.atlas.microsoft.com/wfs/datasets/{datasetId}/collections?subscription-key={Your-Azure-Maps-Primary-Subscription-key}&api-version=2.0Selecteer Verzenden.
De antwoord-body wordt geretourneerd in GeoJSON-indeling en bevat alle verzamelingen in de gegevensset. Voor dit voorbeeld wordt omwille van de duidelijkheid alleen de
unit-verzameling weergegeven. Zie WFS-API voor het beschrijven van verzamelingen voor een voorbeeld dat alle verzamelingen bevat. Als u meer wilt weten over een verzameling, kunt u een van de URL's in hetlinkelement selecteren.{ "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" } ] },
Query uitvoeren op verzameling van eenheidsfunctie
In deze sectie voeren we een query uit op de WFS-API voor de unit functieverzameling.
Een query uitvoeren op de eenheidsverzameling in uw gegevensset:
Selecteer In de Postman-app de optie Nieuw.
Selecteer in het venster Nieuwe maken de optie HTTP-aanvraag.
Voer een aanvraagnaam in voor de aanvraag, zoals GET Unit Collection.
Selecteer de HTTP-methode GET.
Voer de volgende URL in (vervang door uw primaire abonnementssleutel en } door de die u hebt
{Azure-Maps-Primary-Subscription-key}{datasetIdverkregen indatasetIdMaakstatus van gegevensset controleren):https://us.atlas.microsoft.com/wfs/datasets/{datasetId}/collections/unit/items?subscription-key={Your-Azure-Maps-Primary-Subscription-key}&api-version=2.0Selecteer Verzenden.
Nadat het antwoord is retourneert, kopieert u de
idfunctie voor een van deunitfuncties. In het volgende voorbeeld is UNIT26 deidvan de functie. In deze zelfstudie gebruiken we 'UNIT26' als onze functieidin de volgende sectie.{ "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": "" }, {"..."} ] }
Functiestatusset maken
Functie-statesets definiëren dynamische eigenschappen en waarden voor specifieke functies die deze ondersteunen. In deze sectie maken we een stateset die Booleaanse waarden en bijbehorende stijlen definieert voor de eigenschap occupancy.
Een stateset maken:
Selecteer In de Postman-app de optie Nieuw.
Selecteer in het venster Nieuwe maken de optie HTTP-aanvraag.
Voer een aanvraagnaam in voor de aanvraag, zoals POST Create Stateset.
Selecteer de HTTP-methode POST.
Voer de volgende URL in naar de Stateset-API. De aanvraag moet er uitzien als de volgende URL (vervang door uw primaire abonnementssleutel en } door de die is verkregen in Status van het maken
{Azure-Maps-Primary-Subscription-key}{datasetIdvandatasetIdgegevensset controleren):https://us.atlas.microsoft.com/featurestatesets?api-version=2.0&datasetId={datasetId}&subscription-key={Your-Azure-Maps-Primary-Subscription-key}Selecteer het tabblad Headers.
Selecteer in het veld
Content-TypeSLEUTEL.Selecteer in het veld
application/jsonVALUE.
Selecteer het tabblad Hoofdtekst.
Selecteer raw en JSON in de vervolgkeuzelijsten.
Kopieer de volgende JSON-stijlen en plak deze in het venster Body:
{ "styles":[ { "keyname":"occupied", "type":"boolean", "rules":[ { "true":"#FF0000", "false":"#00FF00" } ] } ] }Selecteer Verzenden.
Nadat het antwoord is retourneert, kopieert u
statesetIdde uit de antwoord-body. In de volgende sectie gebruiken we de om de eigenschapstoestand van de eenheid testatesetIdwijzigen met de functieoccupancyidUNIT26.
Een functie status bijwerken
De status van occupied de eenheid bijwerken met de functie id UNIT26:
Selecteer in de Postman-app De optie Nieuw.
Selecteer in het venster Nieuwe maken de optie HTTP-aanvraag.
Voer een aanvraagnaam in voor de aanvraag, zoals PUT Set Stateset.
Selecteer de HTTP-methode PUT.
Voer de volgende URL in naar de Feature Statesets-API. De aanvraag moet er uitzien als de volgende URL (vervang door uw primaire abonnementssleutel en } door de die is verkregen
{Azure-Maps-Primary-Subscription-key}{statesetIdin EenstatesetIdfunctie-stateset maken):https://us.atlas.microsoft.com/featurestatesets/{statesetId}/featureStates/UNIT26?api-version=2.0&subscription-key={Your-Azure-Maps-Primary-Subscription-key}Selecteer het tabblad Headers.
Selecteer in het veld
Content-TypeSLEUTEL.Selecteer in het veld
application/jsonVALUE.
Selecteer het tabblad Hoofdtekst.
Selecteer raw en JSON in de vervolgkeuzelijsten.
Kopieer de volgende JSON-stijl en plak deze in het venster Body:
{ "states": [ { "keyName": "occupied", "value": true, "eventTimestamp": "2020-11-14T17:10:20" } ] }Notitie
De update wordt alleen opgeslagen als het tijdstempel na het tijdstempel van de vorige aanvraag valt.
Selecteer Verzenden.
Nadat de update is voltooid, ontvangt u een
200 OKHTTP-statuscode. Als u dynamische stijlen voor een indoorkaart hebt geïmplementeerd, wordt de update weergegeven op het opgegeven tijdstempel in de weergegeven kaart.
U kunt de API Voor statussen ophalen van functies gebruiken om de status van een functie op te halen met behulp van de functie id . U kunt ook de API Status van functietoestand verwijderen gebruiken om de statusset en de resources ervan te verwijderen.
Zie Creator Kaarten Indoor Kaarten voor meer informatie over de verschillende Azure Kaarten Creator-services die in dit artikel worden besproken.
Resources opschonen
Er zijn geen resources waarvoor opschoning is vereist.
Volgende stappen
Zie voor meer informatie over het gebruik van Kaarten indoor-module