Dotazování datových sad pomocí služby webových funkcí

Tento článek popisuje, jak dotazovat datové sady Azure Mapy Creator pomocí služby webových funkcí (WFS). Rozhraní WFS API můžete použít k dotazování na všechny kolekce funkcí nebo konkrétní kolekci v rámci datové sady. WFS můžete například použít k vyhledání všech místností pro schůzky střední velikosti v konkrétní budově a úrovni podlahy.

Požadavky

Tento článek používá stejnou ukázkovou vnitřní mapu jako v kurzu: Použití Creatoru k vytváření vnitřních map.

Důležité

  • Tento článek používá zeměpisnou us.atlas.microsoft.com adresu URL. Pokud se služba Creator nevytvořila v USA, musíte použít jinou geografickou adresu URL. Další informace najdete v tématu Přístup ke službám Creator Services.
  • V příkladech adres URL v tomto článku budete muset nahradit:
    • {Azure-Maps-Subscription-key}pomocí klíče předplatného Azure Mapy.
    • {datasetId}datasetId se získáním v části Kontrola stavu vytvoření datové sady v nástroji Use Creator k vytvoření kurzu vnitřních map.

Dotaz na kolekce funkcí

Pokud chcete dotazovat všechny kolekce v datové sadě, vytvořte nový požadavek HTTP GET:

Do rozhraní WFS API zadejte následující adresu URL. Požadavek by měl vypadat jako následující adresa URL:

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

Tělo odpovědi se vrátí ve formátu GeoJSON a obsahuje všechny kolekce v datové sadě. Pro zjednodušení se v tomto příkladu unit zobrazí jenom kolekce. Příklad, který obsahuje všechny kolekce, najdete v tématu WFS Describe Collections API. Pokud chcete získat další informace o jakékoli kolekci, můžete vybrat kteroukoli z adres URL uvnitř links prvku.

{
"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 kolekci funkcí jednotek

Tato část ukazuje dotazování rozhraní WFS API pro kolekci unit funkcí.

Pokud chcete dotazovat kolekci jednotek v datové sadě, vytvořte nový požadavek HTTP GET:

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

Po vrácení odpovědi zkopírujte funkci id pro jednu z unit těchto funkcí. V následujícím příkladu je funkce id "UNIT26". Při aktualizaci stavu funkce použijte "UNIT26" jako funkce.id

{
    "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": ""
        }, {"..."}
    ]
}

Další kroky