Поделиться через


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

Примечание.

Выход на пенсию создателя Azure Maps

Служба azure Maps Creator в помещении теперь устарела и будет прекращена 9.30.25. Дополнительные сведения см. в разделе "Завершение жизни" создателя Azure Maps.

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

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

Внимание

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

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

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

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

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

Внимание

Обязательно запишите уникальное значение идентификатора (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 Maps Creator внутренне хранит данные объекта, разделенные на классы компонентов, в наборе данных Creator. При импорте пакета GeoJSON в любой момент, когда функция добавляется или изменяется, выполняется ряд проверок. Сюда входят проверки целостности ссылок и геометрия и проверки атрибутов. Эти проверки подробно описаны в следующем списке.

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