Creator для схем помещений

В этой статье описываются основные понятия и средства, которые применяются к службе Creator в Azure Maps. Рекомендуется ознакомиться с этой статьей перед началом работы с API-интерфейсом и пакетом SDK службы Creator в Azure Maps.

Вы можете использовать "Создатель" для разработки приложений с возможностями построения схем на основе данных о схеме помещения. В этой статье описывается процесс передачи, преобразования, создания и использования данных схем. Как правило, рабочий процесс выполняется двумя разными пользователями с разными областями знаний и ответственности.

  • Составитель схем: отвечает за контроль и подготовку данных карт.
  • Пользователь данных карты создателя: использует данные карты клиента в приложениях.

На следующей схеме представлен весь рабочий процесс.

Creator map data workflow

Создание ресурса Creator в Azure Maps

Чтобы использовать службы Создателя, необходимо создать ресурс Azure Maps Creator и связать его с учетной записью Azure Maps с ценовой категорией 2-го поколения. Сведения о создании ресурса Azure Maps Creator см. в разделе Управление Создателем в Azure Maps.

Совет

Сведения о ценах см. в разделе Создатель статьи Цены Azure Maps.

Проверка подлинности Создателя

Creator наследует параметры службы контроля доступа Azure Maps (IAM). Все вызовы API для доступа к данным должны отправляться с соблюдением правил проверки подлинности и авторизации.

Данные об использовании Creator записываются в диаграммы использования и журнал действий Azure Maps. Дополнительные сведения см. в статье Управление аутентификацией в Azure Maps.

Важно!

Мы рекомендуем использовать следующее.

  • Идентификатор Microsoft Entra во всех решениях, созданных с помощью учетной записи Azure Карты с помощью служб Creator. Дополнительные сведения об идентификаторе Microsoft Entra см. в разделе "Проверка подлинности Microsoft Entra".

  • Параметры управления доступом на основе ролей. Используя эти параметры, создатели карт могут действовать в качестве участника данных Azure Maps, а пользователи данных схем Создателя могут выступать в качестве читателей данных Azure Maps. Дополнительные сведения см. в статье Авторизация с помощью управления доступом на основе ролей.

Типы элементов данных Создателя

Службы Создателя создают, хранят и используют различные типы данных, которые описаны в следующих разделах. Элемент данных создателя может иметь следующие типы.

  • Преобразованные данные
  • Набор данных
  • Набор фрагментов
  • style
  • Конфигурация карты
  • Набор состояний функций
  • Маршруты

Отправка пакета документа

Создатель собирает данные карты помещений, преобразовав загруженный пакет рисования. Пакет рисования представляет созданный или перемоделированный объект. Сведения о требованиях к пакету рисования см. в разделе "Требования к пакету рисования".

Выполните действия, описанные в статье "Создание реестра данных" для отправки пакета документа в учетную запись хранения Azure, а затем зарегистрируйте его в учетной записи azure Карты.

Важно!

Обязательно запишите уникальное значение идентификатора (udid) вам потребуется. Требуется udid преобразовать загруженный пакет в данные карты помещений.

Преобразование пакета документа

Служба преобразования преобразует загруженный пакет рисования в данные карты помещений. Она также проверяет пакет. Обнаруженные при проверке проблемы делятся на два типа.

  • Ошибки. При обнаружении ошибок происходит сбой процесса преобразования. В случае ошибки служба преобразования предоставляет ссылку на автономное веб-приложение Визуализатор ошибок рисования в Azure Maps. Визуализатор ошибок рисования можно использовать для проверки предупреждений и ошибок в пакете рисования, сообщения о которых были получены в процессе преобразования. После устранения ошибок можно попытаться отправить и преобразовать пакет.
  • Предупреждения. При обнаружении предупреждений преобразование выполняется. Однако рекомендуется просмотреть все предупреждения и устранить указанные в них проблемы. Предупреждение означает, что часть преобразования была пропущена или исправлена автоматически. Если не разрешить проблему, ставшую причиной предупреждения, это может привести к ошибкам в последующих процессах. Дополнительные сведения см. в статье Ошибки и предупреждения для пакета рисунков.

Создание данных схем помещений

Создатель Azure Maps предоставляет следующие службы, поддерживающие создание схем.

Наборы данных

Набор данных — это коллекция признаков схемы помещения. Функции карты помещений представляют объекты, определенные в преобразованном пакете рисования. После создания набора данных с помощью службы набора данных можно создать любое количество наборов фрагментов или наборов состояний функции.

Разработчики могут в любое время использовать службу набора данных, чтобы добавлять или удалять средства в существующем наборе данных. Дополнительные сведения о том, как обновить существующий набор данных с помощью API-интерфейса, см. в разделе о вариантах добавления в статье о службе наборов данных. Пример обновления набора данных см. в разделе Обслуживание данных.

Наборы фрагментов

Набор фрагментов — это коллекция векторных данных, представляющих ряд однородных фрагментов сетки. Разработчики могут использовать службу набора фрагментов для создания набора фрагментов из набора данных.

Чтобы отразить различные этапы наполнения содержимым, можно создать несколько наборов фрагментов из одного набора данных. Например, можно создать один набор фрагментов с мебелью и оборудованием, а другой — без них. Вы можете также создать один набор фрагментов с самыми последними обновлениями данных, а другой — без них.

Помимо векторных данных, набор фрагментов предоставляет метаданные для оптимизации отрисовки схемы. Например, метаданные набора фрагментов содержат предусмотренный для него минимальный и максимальный масштаб. Метаданные также предоставляют ограничивающий прямоугольник, определяющий географический экстент набора фрагментов. Ограничивающий прямоугольник позволяет приложению программно задавать правильную центральную точку. Дополнительные сведения о метаданных набора плиток см. в разделе "Список наборов плиток".

После создания набора плиток он извлекается с помощью службы отрисовки.

Если набор фрагментов устарел и больше не используется, его можно удалить. Дополнительные сведения об удалении набора фрагментов см. в разделе Обслуживание данных.

Примечание.

Набор фрагментов не зависит от набора данных, из которого он создан. Если вы создаете набор фрагментов из набора данных, а затем обновляете этот набор данных, набор фрагментов не обновляется.

Чтобы отразить изменения в наборе данных, необходимо создать новый набор фрагментов. Аналогично, удаление набора фрагментов не влияет на набор данных.

Настраиваемая стилизация (предварительная версия)

Стиль определяет внешний вид карты. Он определяет, какие данные необходимо нарисовать, порядок рисования и стиль данных при его рисовании. Стили Azure Карты Creator поддерживают стандарт MapLibre для слоев стилей и спрайтов.

При преобразовании пакета рисования после отправки его в учетную запись Azure Карты стили по умолчанию применяются к элементам карты. Настраиваемая служба стилей позволяет настроить внешний вид карты. Это можно сделать вручную, изменив стиль JSON и импортируя его в учетную запись Azure Карты с помощью стиля — создание HTTP-запроса, однако рекомендуемый подход — использовать редактор визуального стиля. Дополнительные сведения см. в статье "Создание пользовательских стилей для карт помещений".

Пример слоя в файле style.json:

{
	"id": "indoor_unit_gym_label",
	"type": "symbol",
	"filter": ["all", ["has","floor0"], ["any", ["==", "categoryName", "room.gym"]]],
	"layout": {
		"visibility": "none",
		"icon-image": "gym",
		"icon-size": {"stops": [[17.5, 0.7], [21, 1.1]]},
		"symbol-avoid-edges": true,
		"symbol-placement": "point",
		"text-anchor": "top",
		"text-field": "{name}",
		"text-font": ["SegoeFrutigerHelveticaMYingHei-Medium"],
		"text-keep-upright": true,
		"text-letter-spacing": 0.1,
		"text-offset": [0, 1.05],
		"text-size": {"stops": [[18, 5], [18.5, 6.5], [19, 8], [19.5, 9.5], [20, 11]]}
	},
	"metadata": {"microsoft.maps:layerGroup": "labels_indoor"},
	"minzoom": 17.5,
	"paint": {
		"text-color": "rgba(0, 0, 0, 1)",
		"text-halo-blur": 0.5,
		"text-halo-color": "rgba(255, 255, 255, 1)",
		"text-halo-width": 1,
		"text-opacity": ["step", ["zoom"], 0, 18, 1]
	},
	"source-layer": "Indoor unit"
},
Свойства слоя Description
id Имя слоя
type Тип отрисовки для этого слоя.
Ниже перечислены некоторые распространенные типы:
заливка: заполненный многоугольник с необязательным росчерком границы.
Строка: линия с росчерком.
Символ: значок или текстовая метка.
заливка-экструзия: экструдированный (3D) многоугольник.
Фильтр Отображаются только функции, соответствующие критериям фильтра.
мобильных приложений Свойства макета для слоя.
minzoom Число от 0 до 24, представляющее минимальный уровень масштабирования для слоя. На уровнях масштабирования меньше минзоома слой скрыт.
Краски Свойства краски по умолчанию для этого слоя.
исходный слой Источник предоставляет данные из источника векторной плитки, отображаемой на карте. Требуется для источников векторных плиток; запрещено для всех других типов источников, включая источники GeoJSON.

Конфигурация карты

Конфигурация карты — это массив конфигураций. Каждая конфигурация состоит из базовой карты и одного или нескольких слоев, каждый слой, состоящий из кортежа набора стилей + .

Конфигурация карты используется при создании экземпляра диспетчера помещений объекта Map при разработке приложений в Azure Карты. Он ссылается на него mapConfigurationId с помощью или alias. Конфигурации карты неизменяемы. При внесении изменений в существующую конфигурацию карты создается новая конфигурация карты, что приводит к другой mapConfingurationId. В любой момент, когда вы создаете конфигурацию карты с помощью псевдонима, уже используемого существующей конфигурацией карты, она указывает на новую конфигурацию карты.

Ниже приведен пример конфигурации карты по умолчанию. В следующей таблице приведено описание каждого элемента файла:

{
    "version": 1.0,
    "description": "This is the default Azure Maps map configuration for facility ontology tilesets.",
    "defaultConfiguration": "indoor_light",
    "configurations": [
        {
            "name": "indoor_light",
            "displayName": "Indoor light",
            "description": "A base style for Azure Maps.",
            "thumbnail": "indoor_2022-01-01.png",
            "baseMap": "microsoft_light",
            "layers": [
                {
                    "tilesetId": "fa37d225-924e-3f32-8441-6128d9e5519a",
                    "styleId": "microsoft-maps:indoor_2022-01-01"
                }
            ]
        },
        {
            "name": "indoor_dark",
            "displayName": "Indoor dark",
            "description": "A base style for Azure Maps.",
            "thumbnail": "indoor_dark_2022-01-01.png",
            "baseMap": "microsoft_dark",
            "layers": [
                {
                    "tilesetId": "fa37d225-924e-3f32-8441-6128d9e5519a",
                    "styleId": "microsoft-maps:indoor_dark_2022-01-01"
                }
            ]
        }
    ]
}
Свойства объекта style Description
Имя. Имя стиля.
displayName Отображаемое имя стиля.
description Определяемое пользователем описание стиля.
thumbnail Используется для указания эскиза, используемого в средство выбора стилей для этого стиля. Дополнительные сведения см. в элементе управления выбора стилей.
Базовую карту Используется для задания стиля базовой карты.
Слои Массив слоев состоит из одного или нескольких кортежей плиток и кортежей стилей , каждый из которых является слоем карты. Это позволяет создать несколько зданий на карте, каждое здание, представленное в собственном наборе плиток.

Дополнительная информация:

  • Дополнительные сведения об изменении стилей с помощью редактора стилей см. в разделе "Создание настраиваемых стилей для карт помещений".
  • Дополнительные сведения о REST API стиля см. в справочнике по REST API Карты Creator.
  • Дополнительные сведения о REST API конфигурации карты см. в разделе Creator — REST API конфигурации карты.

Наборы состояний функции

Наборы состояний функции — это коллекции динамических свойств (состояний), назначенных функциям наборов данных, например комнатам или оборудованию. Примером состояния может служить температура или вместимость. Каждое состояние представляет собой пару "ключ — значение", содержащую имя свойства, значение и метку времени последнего обновления.

Служба состояний функции позволяет создавать наборы состояний функций для наборов данных и управлять ими. Набор состояний определяется одним или несколькими состояниями . С каждым признаком, например комнатой, может быть связано одно состояние.

Значение каждого состояния в наборе состояний обновляется или извлекается устройствами Интернета вещей или другими приложениями. Например, с помощью API обновления состояния признаков устройства, измеряющие использование площади, могут систематически публиковать данные об изменении состояния комнаты.

Приложение может использовать набор состояний функции для динамической отрисовки признаков в здании в соответствии с их текущим состоянием и соответствующим стилем схемы. Дополнительные сведения об использовании наборов состояний функций стиля на схеме для отрисовки см. в разделе Модуль для схем помещений.

Примечание.

Как и в случае с набором фрагментов, изменение набора данных не влияет на имеющийся набор состояний функции, а удаление последнего не влияет на набор данных, к которому он присоединен.

Wayfinding (предварительная версия)

Служба Wayfinding позволяет предоставлять клиентам самый короткий путь между двумя точками в объекте. После импорта данных карты помещений и создания набора данных можно использовать его для создания набора маршрутов. Набор маршрутов предоставляет данные, необходимые для создания путей между двумя точками. Служба по определению пути учитывает такие вещи, как минимальная ширина открытий и может при необходимости исключить лифты или лестницы при переходе между уровнями в результате.

Создатель путь определяется Havok.

Пути, определенные пути

При успешном создании пути, определяемого пути, он находит самый короткий путь между двумя точками в указанном объекте. Каждый этаж в путешествии представлен как отдельная нога, как и любые лестницы или лифты, используемые для перемещения между этажами.

Например, первая часть пути может быть от источника до лифта на этом этаже. Следующая нога лифт, а затем окончательный этап — путь от лифта к месту назначения. Предполагаемое время путешествия также вычисляется и возвращается в формате JSON ответа HTTP.

Структура

Чтобы определить способ работы, данные объекта должны содержать структуру. Служба определения пути вычисляет кратчайший путь между двумя выбранными точками в объекте. Служба создает путь, перемещая вокруг структур, таких как стены и любые другие неизменяемые структуры.

Вертикальное проникновение

Если выбранный источник и назначение находятся на разных этажах, служба определения пути определяет, какие объекты вертикальнойpenetration , такие как лестница или лифты, доступны как возможные пути для навигации по вертикали между уровнями. По умолчанию используется параметр, который приводит к кратчайшему пути.

Служба Wayfinding включает лестницу или лифты в путь на основе значения свойства вертикального проникновения direction . Дополнительные сведения о свойстве направления см . в статье "Центр ontology". avoidFeaturesminWidth Сведения о других факторах, влияющих на выбор пути между уровнями пола, см. в документации по API и свойствам.

Дополнительные сведения см. в статье о схеме определения схемы помещений.

Использование схем помещений

Отрисовка — API получения плитки карты

API Карты Azure [Render — Get Map Tile] был расширен для поддержки наборов плиток Creator.

Приложения могут использовать API отрисовки — получение плитки для запроса наборов плиток. Затем наборы фрагментов можно интегрировать в элемент управления схемой или пакет SDK. Пример элемента управления картой, использующего службу отрисовки, см. в разделе "Модуль Карты помещений".

API веб-службы компонентов

Для запроса наборов данных можно использовать службу веб-компонентов (WFS). WFS соответствует признакам API Открытого геопространственного консорциума. API WFS позволяет запрашивать функции в самом наборе данных. Например, WFS можно использовать для поиска всех конференц-залов среднего размера на конкретном этаже здания.

API псевдонима

Службы создателя, такие как преобразование, набор данных, набор плиток и состояние компонентов, возвращают идентификатор для каждого ресурса, созданного из API. API псевдонима позволяет назначить псевдоним для ссылки на идентификатор ресурса.

Модуль схем помещений

Веб-пакет SDK Azure Maps включает в себя модуль схем помещений. Этот модуль предлагает расширенные функциональные возможности для библиотеки Map Control в Azure Maps. Модуль схем помещений отрисовывает схемы помещений, созданные в Creator. Он интегрирует мини-приложения, такие как средство выбора пола, которое помогает пользователям визуализировать различные этажи.

Модуль Indoor Maps позволяет создавать веб-приложения, которые интегрируют данные схемы помещения в другие службы Azure Maps. В числе наиболее распространенных возможностей приложений — добавление в схемы помещений данных с других карт, например дорожных, фотографических, погодных и транзитных.

Модуль схем помещений также поддерживает динамическую настройку стиля схем. Пошаговое руководство по реализации динамической настройки стиля для набора состояний функции в приложении см. в разделе об использовании модуля Indoor Maps.

Интеграция с Azure Maps

Начиная разрабатывать решения для схем помещений, можно определить способы интеграции имеющихся возможностей Azure Maps. Например, можно реализовать сценарии отслеживания активов или безопасности с помощью службы геозон с помощью карт помещений Creator. С помощью API геозоны можно, например, определить, когда сотрудник входит в конкретные области помещения или выходит из них. Дополнительные сведения о подключении Azure Карты с телеметрией Интернета вещей см. в руководстве по реализации пространственной аналитики Интернета вещей с помощью Azure Карты.

Обслуживание данных

API перечисления, обновления и удаления ресурсов службы Создателя в Azure Maps позволяет выполнять эти операции с наборами данных, фрагментов и состояний функции.

Примечание.

При каждом просмотре списка элементов и принятии решения об их удалении необходимо учитывать влияние этого действия на все зависимые API или приложения. Например, если удалить набор плиток, используемый приложением с помощью API [Render - Get Map Tile], приложение не сможет отобразить этот набор плиток.

Пример. Обновление набора данных

В следующем примере показано, как обновить набор данных, создать новый набор фрагментов и удалить старый.

  1. Выполните действия, описанные в разделе "Отправка пакета документа" и преобразование раздела пакета документа для отправки и преобразования нового пакета документа.
  2. Создайте набор данных, чтобы добавить преобразованные данные в существующий набор данных.
  3. Создание набора плиток позволяет создать новый набор плиток из обновленного набора данных.
  4. Сохраните новый tilesetId для следующего шага.
  5. Обновите идентификатор набора фрагментов в приложении, чтобы обеспечить визуализацию обновленных наборов данных кампуса. Если старый набор фрагментов больше не используется, его можно удалить.

Следующие шаги