Kurz: vytvoření vnitřních map pomocí autora
V tomto kurzu se dozvíte, jak vytvořit vnitřní mapy. V tomto kurzu se naučíte:
- Upload balíček pro vykreslování mapy vnitřníchy.
- Převeďte balíček pro kreslení na data mapy.
- Z dat mapy Vytvořte datovou sadu.
- Vytvořte TILESET z dat v datové sadě.
- dotaz na rozhraní API služby Azure Maps Web Feature Service (WFS) vám umožní získat informace o funkcích map.
- Vytvořte funkci stateset pomocí vašich funkcí mapy a dat v datové sadě.
- Aktualizujte svou funkci stateset.
Požadavky
- vytvořte účet Azure Maps.
- Získejte primární klíč předplatného, označovaný také jako primární klíč nebo klíč předplatného.
- Vytvořte prostředek Creator.
- Stáhněte si vzorový balíček pro kreslení.
V tomto kurzu se používá aplikace po aplikaci, ale můžete použít jiné vývojové prostředí API.
Důležité
V tomto kurzu se používá us.atlas.microsoft.com geografická adresa URL. Pokud se vaše služba tvůrce v USA nevytvořila, musíte použít jinou geografickou adresu URL. Další informace najdete v tématu přístup ke službě Creator Services. Pokud chcete zobrazit mapování oblasti na zeměpisné umístění, Přečtěte si téma tvůrce geografického rozsahu služby.
Upload balíčku pro vykreslování
pomocí rozhraní Data Upload API nahrajte balíček pro kreslení do prostředků Azure Maps.
rozhraní Data Upload api je dlouhodobá transakce, která implementuje vzor definovaný v tvůrci Long-Running operations API V2.
Postup nahrání balíčku pro kreslení:
V aplikaci pro odesílání vyberte Nový.
V okně vytvořit nové vyberte požadavek HTTP.
Zadejte název žádosti , například post data upload.
Vyberte metodu post http.
zadejte následující adresu url dat Upload rozhraní API . požadavek by měl vypadat jako následující adresa url (nahraďte
{Azure-Maps-Primary-Subscription-key}primárním klíčem předplatného)::https://us.atlas.microsoft.com/mapData?api-version=2.0&dataFormat=dwgzippackage&subscription-key={Your-Azure-Maps-Primary-Subscription-key}Vyberte kartu hlavičky .
V poli klíč vyberte
Content-Type.V poli hodnota vyberte
application/octet-stream.
Vyberte kartu tělo .
V rozevíracím seznamu vyberte binární.
Vyberte Vybrat soubor a pak vyberte balíček pro kreslení.
Vyberte Odeslat.
V okně odpověď vyberte kartu hlavičky .
Zkopírujte hodnotu klíče umístění operace , což je
status URL.status URLK ověření stavu nahrávání balíčku vykreslování použijeme.
Zkontroluje stav nahrávání balíčku pro kreslení.
Chcete-li zjistit stav balíčku pro kreslení a načíst jeho jedinečné ID ( udid ):
V aplikaci pro odesílání vyberte Nový.
V okně vytvořit nové vyberte požadavek HTTP.
zadejte název žádosti , například stav získat Data Upload.
Vyberte metodu Get http.
zadejte,
status URLkterý jste zkopírovali v Upload balíčku pro kreslení. Požadavek by měl vypadat jako následující adresa URL (nahraďte{Azure-Maps-Primary-Subscription-key}primárním klíčem předplatného):https://us.atlas.microsoft.com/mapData/operations/{operationId}?api-version=2.0&subscription-key={Your-Azure-Maps-Primary-Subscription-key}Vyberte Odeslat.
V okně odpověď vyberte kartu hlavičky .
Zkopírujte hodnotu klíče umístění prostředku , což je
resource location URL.resource location URLObsahuje jedinečný identifikátor (udid) prostředku balíčku pro kreslení.
Volitelné Načíst metadata balíčku pro vykreslování
Metadata můžete načíst z prostředku balíčku pro kreslení. Metadata obsahují informace, jako je adresa URL umístění prostředku, datum vytvoření, aktualizované datum, velikost a stav odeslání.
Načtení metadat obsahu:
V aplikaci pro odesílání vyberte Nový.
V okně vytvořit nové vyberte požadavek HTTP.
zadejte název žádosti , například získat Data Upload Metadata.
. Vyberte metodu Get http.
Zadejte,
resource Location URLkterý jste zkopírovali při kontrole stavu nahrávání balíčku pro vykreslení. Požadavek by měl vypadat jako následující adresa URL (nahraďte{Azure-Maps-Primary-Subscription-key}primárním klíčem předplatného):https://us.atlas.microsoft.com/mapData/metadata/{udid}?api-version=2.0&subscription-key={Your-Azure-Maps-Primary-Subscription-key}Vyberte Odeslat.
V okně odpověď vyberte kartu tělo . Metadata by měla vypadat jako následující fragment JSON:
{ "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" }
Převod balíčku pro kreslení
Teď, když se balíček pro kreslení nahraje, použijeme udid u nahraného balíčku k převedení balíčku na data mapy. Rozhraní API pro převod používá dlouhotrvající transakci, která implementuje vzor definovaný zde.
Převod balíčku pro kreslení:
V aplikaci pro odesílání vyberte Nový.
V okně vytvořit nové vyberte požadavek HTTP.
Zadejte název žádosti , jako je například po převedení balíčku pro kreslení.
Vyberte metodu post http.
Zadejte následující adresu URL služby převodu (nahraďte
{Azure-Maps-Primary-Subscription-key}primárním klíčem předplatného audidsudidnahraným balíčkem):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.0Vyberte Odeslat.
V okně odpověď vyberte kartu hlavičky .
Zkopírujte hodnotu klíče umístění operace , což je
status URL. Použijemestatus URLke kontrole stavu převodu.
Zkontroluje stav převodu balíčku pro vykreslování.
Po dokončení operace převodu vrátí conversionId . Přístup k vám může conversionId zkontrolovat stav procesu převodu balíčku pro vykreslování. conversionIdPak lze použít pro přístup k převedeným datům.
Chcete-li zjistit stav procesu převodu a načíst conversionId :
V aplikaci pro odesílání vyberte Nový.
V okně vytvořit nové vyberte požadavek HTTP.
Zadejte název žádosti , třeba získat stav převodu.
Vyberte metodu Get http:
Zadejte,
status URLkterý jste zkopírovali v části Převod balíčku pro kreslení. Požadavek by měl vypadat jako následující adresa URL (nahraďte{Azure-Maps-Primary-Subscription-key}primárním klíčem předplatného):https://us.atlas.microsoft.com/conversions/operations/{operationId}?api-version=2.0&subscription-key={Your-Azure-Maps-Primary-Subscription-key}Vyberte Odeslat.
V okně odpověď vyberte kartu hlavičky .
Zkopírujte hodnotu klíče umístění prostředku , což je
resource location URL.resource location URLObsahuje jedinečný identifikátor (conversionId), který mohou používat jiná rozhraní API pro přístup k převedeným datům mapy.
Vzorový balíček pro kreslení by měl být převeden bez chyb nebo upozornění. Pokud se však zobrazí chyby nebo upozornění z vlastního balíčku Drawing, odpověď JSON obsahuje odkaz na vizualizér chyb kreslení. Pomocí vizualizéru chyb kreslení můžete zkontrolovat podrobnosti o chybách a upozorněních. Pokud chcete dostávat doporučení k řešení chyb a upozornění převodu, podívejte se na nakreslené chyby převodu a upozornění.
Následující fragment JSON zobrazí upozornění ukázkového převodu:
{
"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"
}
}
Vytvoření datové sady
Datová sada je kolekce mapových prvků, jako jsou budovy, úrovně a místnosti. Pokud chcete vytvořit datovou sadu, použijte rozhraní API pro vytvoření datové sady. Rozhraní API pro vytvoření datové conversionId sady vezme pro převedený balíček Drawing a vrátí datasetId vytvořenou datovou sadu.
Vytvoření datové sady:
V aplikaci Postman vyberte Nový.
V okně Vytvořit nový vyberte Požadavek HTTP.
Zadejte název požadavku, například POST Dataset Create ( Vytvořit datovou sadu POST).
Vyberte metodu POST HTTP.
Zadejte následující adresu URL rozhraní API datové sady. Požadavek by měl vypadat jako následující adresa URL (nahraďte primárním klíčem předplatného a } získaným ve stavu převodu
{Azure-Maps-Primary-Subscription-key}{conversionIdbalíčku CheckconversionIdDrawing):https://us.atlas.microsoft.com/datasets?api-version=2.0&conversionId={conversionId}&subscription-key={Your-Azure-Maps-Primary-Subscription-key}Vyberte Odeslat.
V okně odpovědi vyberte kartu Hlavičky.
Zkopírujte hodnotu klíče Operation-Location, což je
status URL. Ke kontrole stavustatus URLdatové sady použijeme .
Kontrola stavu vytváření datové sady
Pokud chcete zkontrolovat stav procesu vytváření datové sady a načíst datasetId :
V aplikaci Postman vyberte Nový.
V okně Vytvořit nový vyberte Požadavek HTTP.
Zadejte název požadavku, například GET Dataset Status.
Vyberte metodu GET HTTP.
Zadejte hodnotu
status URL, kterou jste zkopírovali v části Vytvoření datové sady. Požadavek by měl vypadat jako následující adresa URL{Azure-Maps-Primary-Subscription-key}(nahraďte primárním klíčem předplatného):https://us.atlas.microsoft.com/datasets/operations/{operationId}?api-version=2.0&subscription-key={Your-Azure-Maps-Primary-Subscription-key}Vyberte Odeslat.
V okně odpovědi vyberte kartu Hlavičky. Hodnota klíče Resource-Location je
resource location URL. obsahujeresource location URLjedinečný identifikátor ( ) datovédatasetIdsady.Zkopírujte
datasetId, protože ho budete používat v dalších částech tohoto kurzu.
Vytvoření sady dlaždic
Sada dlaždic je sada vektorových dlaždic, které se vykreslují na mapě. Sady dlaždic se vytvářejí z existujících datových sad. Sada dlaždic je ale nezávislá na datové sadě, ze které byla zdrojem. Pokud se datová sada odstraní, sada dlaždic bude dál existovat.
Vytvoření sady dlaždic:
V aplikaci Postman vyberte Nový.
V okně Vytvořit nový vyberte Požadavek HTTP.
Zadejte název požadavku, například POST Tileset Create (Vytvořit).
Vyberte metodu POST HTTP.
Zadejte následující adresu URL rozhraní API sady dlaždic. Požadavek by měl vypadat jako následující adresa URL (nahraďte primárním klíčem předplatného) a } hodnotou získanou v části
{Azure-Maps-Primary-Subscription-key}Kontrola stavu vytváření datové{datasetIddatasetIdsady:https://us.atlas.microsoft.com/tilesets?api-version=2.0&datasetID={datasetId}&subscription-key={Your-Azure-Maps-Primary-Subscription-key}Vyberte Odeslat.
V okně odpovědi vyberte kartu Hlavičky.
Zkopírujte hodnotu klíče Operation-Location, což je
status URL. Ke kontrole stavu sady dlaždicstatus URLpoužijeme .
Kontrola stavu vytváření sady dlaždic
Pokud chcete zkontrolovat stav procesu vytváření datové sady a načíst tilesetId :
V aplikaci Postman vyberte Nový.
V okně Vytvořit nový vyberte Požadavek HTTP.
Zadejte název požadavku, například GET Tileset Status ( Získat stav sady dlaždic).
Vyberte metodu GET HTTP.
Zadejte hodnotu
status URL, kterou jste zkopírovali v části Vytvoření sady dlaždic. Požadavek by měl vypadat jako následující adresa URL{Azure-Maps-Primary-Subscription-key}(nahraďte primárním klíčem předplatného):https://us.atlas.microsoft.com/tilesets/operations/{operationId}?api-version=2.0&subscription-key={Your-Azure-Maps-Primary-Subscription-key}Vyberte Odeslat.
V okně odpovědi vyberte kartu Hlavičky. Hodnota klíče Resource-Location je
resource location URL. obsahujeresource location URLjedinečný identifikátor ( ) datovétilesetIdsady.
Dotazování datových sad pomocí rozhraní API WFS
Datové sady je možné dotazovat pomocí rozhraní API WFS. Rozhraní API WFS můžete použít k dotazování na všechny kolekce funkcí nebo konkrétní kolekci. V této části kurzu budeme dělat obojí. Nejprve se budeme dotazovat na všechny kolekce a pak se na kolekci budeme unit dotazovat.
Dotaz na kolekce funkcí
Dotazování všech kolekcí v datové sadě:
V aplikaci Postman vyberte Nový.
V okně Vytvořit nový vyberte Požadavek HTTP.
Zadejte název požadavku, například GET Dataset Collections.
Vyberte metodu GET HTTP.
Zadejte následující adresu URL rozhraní API WFS. Požadavek by měl vypadat jako následující adresa URL (nahraďte primárním klíčem předplatného) a } hodnotou získanou v části
{Azure-Maps-Primary-Subscription-key}Kontrola stavu vytváření datové{datasetIddatasetIdsady:https://us.atlas.microsoft.com/wfs/datasets/{datasetId}/collections?subscription-key={Your-Azure-Maps-Primary-Subscription-key}&api-version=2.0Vyberte Odeslat.
Tělo odpovědi se vrátí ve formátu GeoJSON a obsahuje všechny kolekce v datové sadě. V tomto příkladu se pro zjednodušení zobrazuje pouze
unitkolekce. Příklad, který obsahuje všechny kolekce, najdete v tématu Popis rozhraní API pro kolekce WFS. Pokud chcete získat další informace o libovolné kolekci, můžete vybrat libovolnou z adres URL uvnitřlinkelementu .{ "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" } ] },
Dotaz na shromažďování funkcí jednotek
V této části se budeme dotazovat rozhraní API WFS pro unit kolekci funkcí.
Dotazování kolekce jednotek v datové sadě:
V aplikaci Postman vyberte Nový.
V okně Vytvořit nový vyberte Požadavek HTTP.
Zadejte název požadavku, například GET Unit Collection.
Vyberte metodu GET HTTP.
Zadejte následující adresu URL (nahraďte primárním klíčem předplatného a } hodnotou , kterou jste získali v části
{Azure-Maps-Primary-Subscription-key}Kontrola stavu vytváření datové{datasetIddatasetIdsady):https://us.atlas.microsoft.com/wfs/datasets/{datasetId}/collections/unit/items?subscription-key={Your-Azure-Maps-Primary-Subscription-key}&api-version=2.0Vyberte Odeslat.
Po vrácení odpovědi zkopírujte funkci
idpro jednu zunitfunkcí. V následujícím příkladu je funkceidUNIT26. V tomto kurzu použijeme unit26 jako naši funkciidv další části.{ "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": "" }, {"..."} ] }
Vytvoření stavové sady funkcí
Sady stavů funkcí definují dynamické vlastnosti a hodnoty konkrétních funkcí, které je podporují. V této části vytvoříme stateset, který definuje logické hodnoty a odpovídající styly pro vlastnost occupancy.
Vytvoření stavové sady:
V aplikaci Postman vyberte Nový.
V okně Vytvořit nový vyberte Požadavek HTTP.
Zadejte název požadavku, například POST Create Stateset.
Vyberte metodu POST HTTP.
Zadejte následující adresu URL rozhraní Stateset API. Požadavek by měl vypadat jako následující adresa URL (nahraďte primárním klíčem předplatného a } hodnotou , kterou jste získali v části
{Azure-Maps-Primary-Subscription-key}Kontrola stavu vytváření datové{datasetIddatasetIdsady):https://us.atlas.microsoft.com/featurestatesets?api-version=2.0&datasetId={datasetId}&subscription-key={Your-Azure-Maps-Primary-Subscription-key}Vyberte kartu Hlavičky.
V poli KLÍČ vyberte
Content-Type.V poli HODNOTA vyberte
application/json.
Vyberte kartu Text.
V rozevíracích seznamech vyberte raw a JSON.
Zkopírujte následující styly JSON a vložte je do okna Text:
{ "styles":[ { "keyname":"occupied", "type":"boolean", "rules":[ { "true":"#FF0000", "false":"#00FF00" } ] } ] }Vyberte Odeslat.
Po úspěšném vrácení odpovědi zkopírujte
statesetIdz textu odpovědi . V další části použijeme ke změně stavu vlastnosti jednotky funkcistatesetIdoccupancyidUNIT26.
Aktualizace stavu funkce
Aktualizace stavu occupied jednotky pomocí funkce id UNIT26:
V aplikaci Postman vyberte Nový.
V okně Vytvořit nový vyberte Požadavek HTTP.
Zadejte název požadavku, například PUT Set Stateset.
Vyberte metodu PUT HTTP.
Zadejte následující adresu URL rozhraní API pro sady stavů funkcí. Požadavek by měl vypadat jako následující adresa URL (nahraďte primárním klíčem předplatného a } získaným v
{Azure-Maps-Primary-Subscription-key}{statesetIdtématu VytvořenístatesetIdstavové sady funkcí):https://us.atlas.microsoft.com/featurestatesets/{statesetId}/featureStates/UNIT26?api-version=2.0&subscription-key={Your-Azure-Maps-Primary-Subscription-key}Vyberte kartu Hlavičky.
V poli KLÍČ vyberte
Content-Type.V poli HODNOTA vyberte
application/json.
Vyberte kartu Text.
V rozevíracích seznamech vyberte raw a JSON.
Zkopírujte následující styl JSON a vložte ho do okna Text:
{ "states": [ { "keyName": "occupied", "value": true, "eventTimestamp": "2020-11-14T17:10:20" } ] }Poznámka
Aktualizace se uloží jenom v případě, že čas zveřejněný kolek je po časovém razítku předchozí žádosti.
Vyberte Odeslat.
Po dokončení aktualizace obdržíte stavový kód
200 OKHTTP. Pokud jste pro interiérovou mapu implementovali dynamické styly, aktualizace se na vykreslené mapě zobrazí v zadaném časovém razítku.
Pomocí rozhraní FEATURE Get Stateset API můžete načíst stav funkce pomocí její funkce id . Stav a jeho prostředky můžete také odstranit pomocí rozhraní API pro odstranění stavu funkce.
Další informace o různých službách Azure Mapy Creator probíraných v tomto článku najdete v tématu Creator Indoor Mapy.
Vyčištění prostředků
Neexistují žádné prostředky, které by vyžadovaly vyčištění.
Další kroky
Informace o tom, jak používat interiérový Mapy, najdete v tématu