Создание набора данных с помощью пакета GeoJson (предварительная версия)

Azure Карты Creator позволяет пользователям импортировать данные карты помещений в формате GeoJSON с помощью Объекта Ontology 2.0, который затем можно использовать для создания набора данных.

Примечание.

В этой статье объясняется, как создать набор данных из пакета GeoJSON. Дополнительные сведения о дополнительных шагах, необходимых для выполнения схемы помещений, см. в следующих шагах.

Необходимые компоненты

Важно!

  • В этой статье используется географический URL-адрес us.atlas.microsoft.com. Если ваша служба Создателя была создана за пределами США, используйте другой географический URL-адрес. Дополнительные сведения см. в разделе "Доступ к службам Creator".
  • В примерах URL-адресов в этой статье вам потребуется заменить {Your-Azure-Maps-Subscription-key} ключ подписки azure Карты.

Создание набора данных с помощью пакета GeoJSON

Дополнительные сведения о пакете GeoJSON см. в разделе "Требования к zip-пакету Geojson".

Отправка пакета GeoJSON

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

Важно!

Обязательно запишите уникальное значение идентификатора (udid) вам потребуется. Вот udid как вы ссылаетесь на пакет GeoJSON, который вы отправили в учетную запись хранения Azure из исходного кода и HTTP-запросов.

Создание набора данных

Набор данных — это коллекция объектов карты, таких как здания, этажи и помещения. Чтобы создать набор данных из GeoJSON, используйте новый API создания набора данных. API создания набора данных принимает udid полученный в предыдущем разделе api и возвращает datasetId новый набор данных.

Важно!

Это отличается от предыдущей версии API создания набора данных, поэтому для него не требуется conversionId преобразованный пакет рисования.

Чтобы создать набор данных, выполните следующие действия:

  1. Введите следующий URL-адрес в службу набора данных. Запрос должен выглядеть следующим URL-адресом (замените {udid} udid полученным в разделе "Отправка пакета GeoJSON").
https://us.atlas.microsoft.com/datasets?api-version=2023-03-01-preview&udid={udid}&subscription-key={Your-Azure-Maps-Subscription-key}
  1. Скопируйте значение Operation-Location ключа в заголовке ответа. Ключ Operation-Location также известен как status URL и требуется для проверка состояния процесса создания набора данных и получения datasetIdнабора данных, который требуется для создания набора плиток.

Проверка состояния создания набора данных

Чтобы проверить состояние создания набора данных и получить datasetId, выполните следующие действия:

  1. Введите URL-адрес состояния, скопированный в разделе "Создание набора данных". Запрос должен выглядеть, как в этом URL-адресе:

    https://us.atlas.microsoft.com/datasets/operations/{operationId}?api-version=2023-03-01-preview&subscription-key={Your-Azure-Maps-Subscription-key}
    
  2. В заголовке HTTP-ответа скопируйте значение уникального идентификатора, содержащегося в Resource-Location ключе.

    https://us.atlas.microsoft.com/datasets/**c9c15957-646c-13f2-611a-1ea7adc75174**?api-version=2023-03-01-preview

Дополнительные сведения о ссылках на статьи, которые помогут вам завершить схему помещений.

Добавление данных в существующий набор данных

Данные можно добавить в существующий набор данных, предоставив datasetId параметр API создания набора данных вместе с уникальным идентификатором добавляемых данных. Уникальный идентификатор может быть либо a udid , либо conversionId. При этом создается новый набор данных, состоящий из данных (объектов) из существующего набора данных и импортируемых новых данных. После успешного создания нового набора данных можно удалить старый набор данных.

Важно учитывать при добавлении в существующий набор данных способ создания идентификаторов функций. Если набор данных создается из преобразованного пакета рисования, идентификаторы функций создаются автоматически. При создании набора данных из пакета GeoJSON идентификаторы компонентов должны быть предоставлены в файле GeoJSON. При добавлении к существующему набору данных исходный набор данных приводит к созданию идентификаторов функций. Если исходный набор данных был создан с помощью a udid, он использует идентификаторы из GeoJSON и будет продолжать делать это со всеми пакетами GeoJSON, добавленными в этот набор данных в будущем. Если набор данных был создан с помощью conversionIdидентификатора, идентификаторы будут создаваться внутри системы и будут по-прежнему создаваться во всех пакетах GeoJSON, добавленных в этот набор данных в будущем.

Добавление в набор данных, созданный из источника GeoJSON

Если исходный набор данных был создан из источника GoeJSON и вы хотите добавить другое средство, созданное из пакета документа, вы можете добавить его в существующий набор данных, ссылаясь на него conversionId, как показано в этом HTTP-запросе POST:

https://us.atlas.microsoft.com/datasets?api-version=2023-03-01-preview&conversionId={conversionId}&outputOntology=facility-2.0&datasetId={datasetId}
Идентификатор Description
conversionId Идентификатор, возвращаемый при преобразовании пакета документа. Дополнительные сведения см. в разделе "Преобразование пакета рисования".
ИДНабораДанных Идентификатор набора данных, возвращаемый при создании исходного набора данных из пакета GeoJSON.

Требования к zip-пакету Geojson

Zip-пакет GeoJSON состоит из одного или нескольких файлов GeoJSON, совместимых с GeoJSON, по одному для каждого класса компонентов, все в корневом каталоге (вложенные каталоги не поддерживаются), сжатые со стандартным сжатием ZIP и именованные с помощью .ZIP расширения.

Каждый файл класса компонентов должен соответствовать определению в объекте Ontology 2.0 , а каждая функция должна иметь глобальный уникальный идентификатор.

Идентификаторы функций могут содержать только буквенно-числовые (a-z, A-Z, 0-9), дефис (-), точка (.) и символы подчеркивания (_).

Совет

Если вы хотите быть уверены, что у вас есть глобальный уникальный идентификатор (GUID), попробуйте создать его, выполнив средство создания GUID, например программу командной строки Guidgen.exe (доступно в Visual Studio). Guidgen.exe никогда не создает одно и то же число дважды, независимо от того, сколько раз он выполняется или сколько раз выполняется на разных компьютерах.

Проверка ontology 2.0 в наборе данных

Функция Ontology 2.0 определяет, как Azure Карты Creator внутренне хранит данные объекта, разделенные на классы компонентов, в наборе данных Creator. При импорте пакета GeoJSON в любой момент, когда функция добавляется или изменяется, выполняется ряд проверок. Это включает в себя проверку целостности ссылочных проверка и геометрии и атрибутов. Эти проверки подробно описаны в следующем списке.

  • Максимальное количество функций, которые можно импортировать в набор данных за раз, составляет 150 000.
  • Площадь объекта может составлять от 4 до 4000 кв. км.
  • Элемент верхнего уровня — это объект, который определяет каждое здание в файле facility.geojson.
  • Каждый объект имеет один или несколько уровней, определенных в файле levels.goejson.
    • Каждый уровень должен находиться внутри объекта.
  • Каждый уровень содержит единицы, структуры, вертикали и открытия. Все элементы, определенные на уровне, должны быть полностью содержаться в геометрии уровня.
    • unitможет состоять из массива таких элементов, как коридоры, офисы и дворы, которые определяются областями, линиями или элементами точки. Единицы определяются в файле unit.goejson.
      • Все unit элементы должны быть полностью содержаться на уровне и пересекаться со своими дочерними элементами.
    • structure определяет физические, не перекрывающиеся области, через которые нельзя перемещаться, например стены. Структуры определяются в файле structure.goejson.
    • verticalPenetration представляет метод навигации по вертикали между уровнями, такими как лестница и лифты, и определяются в файле verticalPenetration.geojson.
      • вертикальныеpenetrations не могут пересекаться с другими вертикальнымиpenetrations на том же уровне.
    • openings определите пересекаемые границы между двумя единицами или и unitverticalPenetration определяются в файле opening.geojson.
      • Открытия не могут пересекаться с другими открытиями на том же уровне.
      • Каждое opening должно быть связано по крайней мере с одним verticalPenetration или unit.

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