Запрос наборов данных с помощью службы веб-компонентов
В этой статье описывается, как запрашивать наборы данных создателя Azure Карты с помощью веб-службы компонентов (WFS). API WFS можно использовать для запроса ко всем коллекциям компонентов или определенной коллекции в наборе данных. Например, WFS можно использовать для поиска всех конференц-залов среднего размера на конкретном этаже здания.
Необходимые компоненты
- Успешное выполнение инструкций в разделе Учебник. Использование Creator для создания схем помещений.
- Полученный
datasetId
в разделе "Проверка состояния создания набора данных" руководства по созданию схем помещенийс помощью Создателя.
В этой статье используется та же схема помещений, что и в руководстве. Создание карт помещений с помощью Creator.
Внимание
- В этой статье используется географический URL-адрес
us.atlas.microsoft.com
. Если ваша служба Создателя была создана за пределами США, используйте другой географический URL-адрес. Дополнительные сведения см. в статье о доступе к службам Создателя. - В примерах URL-адресов в этой статье необходимо заменить:
{Azure-Maps-Subscription-key}
с ключом подписки azure Карты.{datasetId}
datasetId
с полученным в разделе "Проверка состояния создания набора данных" руководства по созданию схем помещений с помощью Создателя.
Запрос коллекций объектов
Чтобы запросить все коллекции в наборе данных, создайте новый HTTP-запрос GET:
Введите следующий URL-адрес к API WFS: Запрос должен выглядеть, как в этом URL-адресе:
https://us.atlas.microsoft.com/wfs/datasets/{datasetId}/collections?subscription-key={Your-Azure-Maps-Subscription-key}&api-version=2.0
Текст ответа будет возвращен в формате GeoJSON и будет содержать все коллекции этого набора данных. Для простоты в этом примере показана только коллекция unit
. Пример, содержащий все коллекции, см. в разделе API коллекций описания WFS. Чтобы узнать больше о той или иной коллекции, можно выбрать любой URL-адрес в элементе links
.
{
"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"
}
]
},
Запрос определенной коллекции объектов
В этом разделе показано, как запрашивать API WFS для unit
коллекции компонентов.
Чтобы запросить коллекцию единиц в наборе данных, создайте новый HTTP-запрос GET:
https://us.atlas.microsoft.com/wfs/datasets/{datasetId}/collections/unit/items?subscription-key={Your-Azure-Maps-Subscription-key}&api-version=2.0
Получив ответ, скопируйте значение id
объекта для одного из объектов unit
. В следующем примере id
функции — "UNIT26". При обновлении состояния компонента используйте unit26 в качестве функций.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": ""
}, {"..."}
]
}