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

  1. Maak een Azure Kaarten account.
  2. Een primaire sleutel voor een abonnement verkrijgen, ook wel bekend als de primaire sleutel of de abonnementssleutel.
  3. Maak een Creator-resource.
  4. 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:

  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. Selecteer de HTTP-methode POST.

  5. 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}
    
  6. Selecteer het tabblad Headers.

  7. Selecteer in het veld Content-Type SLEUTEL.

  8. Selecteer in het veld VALUE application/octet-stream .

    Tabbladinformatie over headers voor het uploaden van gegevens.

  9. Selecteer het tabblad Hoofdtekst.

  10. Selecteer binair in de vervolgkeuzelijst.

  11. Selecteer Bestand selecteren en selecteer vervolgens een tekenpakket.

    Selecteer een tekenpakket.

  12. Selecteer Verzenden.

  13. Selecteer in het antwoordvenster het tabblad Headers.

  14. Kopieer de waarde van de sleutel Operation-Location. Dit is de status URL . We gebruiken de om de status van het uploaden van het status URL tekenpakket te controleren.

    Kopieer de status-URL in de Locatiesleutel.

De uploadstatus van het tekenpakket controleren

De status van het tekenpakket controleren en de unieke id ophalen ( udid ):

  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 GET Data Upload Status.

  4. Selecteer de HTTP-methode GET.

  5. Voer de status URL in 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}
    
  6. Selecteer Verzenden.

  7. Selecteer in het antwoordvenster het tabblad Headers.

  8. Kopieer de waarde van de sleutel Resourcelocatie. Dit is de resource location URL . De resource location URL bevat de unieke id ( ) van de udid tekenpakketresource.

    Kopieer de URL van de resourcelocatie.

(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:

  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 GET Data Upload Metadata.

  4. . Selecteer de HTTP-methode GET.

  5. Voer de resource Location URL in 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}
    
  6. Selecteer Verzenden.

  7. 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:

  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-tekenpakket converteren.

  4. Selecteer de HTTP-methode POST.

  5. Voer de volgende URL naar de Conversion Service in (vervang door uw primaire abonnementssleutel en door de van {Azure-Maps-Primary-Subscription-key} het udid udid geü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.0
    
  6. Selecteer Verzenden.

  7. Selecteer in het antwoordvenster het tabblad Headers.

  8. Kopieer de waarde van de sleutel Operation-Location. Dit is de status URL . We gebruiken de om status URL de status van de conversie te controleren.

    Kopieer de waarde van de locatiesleutel voor het tekenpakket.

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:

  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 GET-conversiestatus.

  4. Selecteer de HTTP-methode GET:

  5. Voer de status URL in 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}
    
  6. Selecteer Verzenden.

  7. Selecteer in het antwoordvenster het tabblad Headers.

  8. 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 voor resource location URL conversionId toegang tot de geconverteerde kaartgegevens.

    Kopieer de conversie-id.

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:

  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-gegevensset maken.

  4. Selecteer de HTTP-methode POST.

  5. 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} {conversionId van het conversionId tekenpakket controleren):

    https://us.atlas.microsoft.com/datasets?api-version=2.0&conversionId={conversionId}&subscription-key={Your-Azure-Maps-Primary-Subscription-key}
    
  6. Selecteer Verzenden.

  7. Selecteer in het antwoordvenster het tabblad Headers.

  8. Kopieer de waarde van de sleutel Operation-Location. Dit is de status URL . We gebruiken de om status URL de status van de gegevensset te controleren.

    Kopieer de waarde van de locatiesleutel voor de gegevensset.

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:

  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 GET Dataset Status.

  4. Selecteer de HTTP-methode GET.

  5. Voer het status URL in 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}
    
  6. Selecteer Verzenden.

  7. Selecteer in het antwoordvenster het tabblad Headers. De waarde van de sleutel Resourcelocatie is de resource location URL . De resource location URL bevat de unieke id ( ) van de datasetId gegevensset.

  8. Kopieer de , omdat u deze in de volgende secties van datasetId deze zelfstudie gaat gebruiken.

    Kopieer de gegevensset-id.

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:

  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-tegelset Maken.

  4. Selecteer de HTTP-methode POST.

  5. 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} {datasetId van datasetId gegevensset controleren:

    https://us.atlas.microsoft.com/tilesets?api-version=2.0&datasetID={datasetId}&subscription-key={Your-Azure-Maps-Primary-Subscription-key}
    
  6. Selecteer Verzenden.

  7. Selecteer in het antwoordvenster het tabblad Headers.

  8. Kopieer de waarde van de sleutel Operation-Location. Dit is de status URL . We gebruiken de om status URL de status van de tegelset te controleren.

    Kopieer de waarde van de url voor de tegelsetstatus.

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:

  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 GET Tileset Status.

  4. Selecteer de HTTP-methode GET.

  5. Voer het status URL in 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}
    
  6. Selecteer Verzenden.

  7. Selecteer in het antwoordvenster het tabblad Headers. De waarde van de sleutel Resourcelocatie is de resource location URL . De resource location URL bevat de unieke id ( ) van de tilesetId gegevensset.

    Kopieer de tegelset-id.

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:

  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 GET Dataset Collections.

  4. Selecteer de HTTP-methode GET.

  5. 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} {datasetId van datasetId gegevensset controleren:

    https://us.atlas.microsoft.com/wfs/datasets/{datasetId}/collections?subscription-key={Your-Azure-Maps-Primary-Subscription-key}&api-version=2.0
    
  6. Selecteer Verzenden.

  7. 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 het link element 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:

  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 GET Unit Collection.

  4. Selecteer de HTTP-methode GET.

  5. Voer de volgende URL in (vervang door uw primaire abonnementssleutel en } door de die u hebt {Azure-Maps-Primary-Subscription-key} {datasetId verkregen in datasetId Maakstatus 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.0
    
  6. Selecteer Verzenden.

  7. Nadat het antwoord is retourneert, kopieert u de id functie voor een van de unit functies. In het volgende voorbeeld is UNIT26 de id van de functie. In deze zelfstudie gebruiken we 'UNIT26' als onze functie id in 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:

  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 Create Stateset.

  4. Selecteer de HTTP-methode POST.

  5. 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} {datasetId van datasetId gegevensset controleren):

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

  7. Selecteer in het veld Content-Type SLEUTEL.

  8. Selecteer in het veld application/json VALUE.

    Headertabbladinformatie voor het maken van de statenset.

  9. Selecteer het tabblad Hoofdtekst.

  10. Selecteer raw en JSON in de vervolgkeuzelijsten.

  11. Kopieer de volgende JSON-stijlen en plak deze in het venster Body:

    {
       "styles":[
          {
             "keyname":"occupied",
             "type":"boolean",
             "rules":[
                {
                   "true":"#FF0000",
                   "false":"#00FF00"
                }
             ]
          }
       ]
    }
    
  12. Selecteer Verzenden.

  13. Nadat het antwoord is retourneert, kopieert u statesetId de uit de antwoord-body. In de volgende sectie gebruiken we de om de eigenschapstoestand van de eenheid te statesetId wijzigen met de functie occupancy id UNIT26.

    Antwoord van de stateset-id.

Een functie status bijwerken

De status van occupied de eenheid bijwerken met de functie id UNIT26:

  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 PUT Set Stateset.

  4. Selecteer de HTTP-methode PUT.

  5. 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} {statesetId in Een statesetId functie-stateset maken):

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

  7. Selecteer in het veld Content-Type SLEUTEL.

  8. Selecteer in het veld application/json VALUE.

    Headertabbladinformatie voor het maken van de statenset.

  9. Selecteer het tabblad Hoofdtekst.

  10. Selecteer raw en JSON in de vervolgkeuzelijsten.

  11. 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.

  12. Selecteer Verzenden.

  13. Nadat de update is voltooid, ontvangt u een 200 OK HTTP-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