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


Требования к пакету рисунков

Примечание.

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

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

Вы можете преобразовать отправленные пакеты рисования в данные карты с помощью службы преобразования Azure Maps. В этой статье описываются требования пакета рисования для API преобразования. Для просмотра примера пакета можно скачать образец пакета рисунков.

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

Пакет документа включает в себя рисунки, сохраненные в формате DWG, который является собственным форматом файла для программного обеспечения AutoCAD® в Autodesk.

Вы можете выбрать любое программное обеспечение CAD для создания рисунков в пакете рисования.

Служба преобразования преобразует пакет рисования в данные карты. Служба преобразования работает с форматом файла AutoCAD DWG AC1032.

Словарь терминов

Для справки ниже приведены некоторые термины и определения, которые важны для ознакомления с этой статьей.

Термин Определение
Уровень Слой AutoCAD DWG из файла рисунка
Объект Сущность AutoCAD DWG из файла рисунка
Xref Файл в формате AutoCAD DWG, присоединенный к основному рисунку в качестве внешней ссылки
Уровень Область здания с заданным возвышением. Например, основание здания.
Функция Экземпляр объекта, созданного из службы преобразования, которая объединяет геометрию со сведениями о метаданных
Классы геометрических элементов Обычный чертеж для функций. Например, секция — это класс геометрического элемента, а офис — это сам элемент.

Структура пакета рисунков

Пакет документа — это архив .zip, содержащий следующие файлы:

  • DWG-файлы в формате AutoCAD DWG.
  • Файл manifest.json , описывающий файлы DWG в пакете рисования.

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

Процесс преобразования файла DWG

Служба преобразования выполняет следующие действия в каждом файле DWG:

  • Извлекает классы компонентов:
    • Уровни
    • единиц(ы)
    • Зоны
    • Проемы
    • Стены
    • Вертикальные проемы
  • Создает функцию Объект.
  • Создает минимальный набор функций категории по умолчанию, на которые ссылаются другие функции:
    • комната
    • отчета
    • wall
    • opening.door
    • зона
    • средство

Требования к файлу DWG

Для каждого уровня сооружения требуется отдельный файл DWG. Все данные одного уровня должны содержаться в одном файле DWG. Все внешние ссылки (xref) должны быть привязаны к родительскому рисунку. Например, объект с тремя уровнями содержит три файла DWG в пакете документа.

Каждый файл DWG должен соответствовать следующим требованиям.

  • Файл DWG должен определять слои Экстерьер и Секция. При необходимости можно определить следующие слои: Стена, Дверь, Метка секции, Зона и Метка зоны.
  • Файл DWG не должен содержать функции из нескольких уровней.
  • Файл DWG не должен содержать функции из нескольких объектов.
  • DWG должен ссылаться на ту же систему измерения и единицу измерения, что и другие файлы DWG в пакете документа.

Требования к слою DWG

Каждый слой DWG должен соответствовать следующим правилам.

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

В следующей таблице описаны поддерживаемые типы сущностей и преобразованные функции карты для каждого слоя. Если слой содержит неподдерживаемые типы сущностей, служба преобразования игнорирует эти сущности.

Уровень Типы сущностей Преобразованные геометрические элементы
Экстерьер POLYGON, POLYLINE (закрыто), CIRCLE или ELLIPSE (закрыто) Уровни
Единица измерения POLYGON, POLYLINE (закрыто), CIRCLE или ELLIPSE (закрыто) Секции и вертикальные проемы
Стена POLYGON, POLYLINE (закрыто), CIRCLE или ELLIPSE (закрыто), Структуры
Дверь POLYGON, POLYLINE, LINE, CIRCULARARC, CIRCLE Проемы
Зона POLYGON, POLYLINE (закрыто), CIRCLE или ELLIPSE (закрыто) Зоны
UnitLabel Текст (однострочный) Неприменимо. Этот слой может добавлять свойства только к функциям секции из слоя "Секции". Дополнительные сведения см. в разделе Слой UnitLabel.
ZoneLabel Текст (однострочный) Неприменимо. Этот уровень может добавлять свойства только к функциям зоны из слоя "Зоны". Дополнительные сведения см. в разделе Слой ZoneLabel.

В следующих разделах описаны требования для каждого слоя.

Слой "Экстерьер"

Файл DWG для каждого уровня должен содержать слой для определения периметра этого уровня. Этот слой называется внешним слоем. Например, если у сооружения два уровня, то необходимо иметь два файла DWG со слоем экстерьера для каждого файла.

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

  • Внешние элементы должны быть нарисованы как POLYGON, POLYLINE (закрыто), CIRCLE или ELLIPSE (закрыто).
  • Экстерьеры могут перекрываться, но они будут преобразованы в одну геометрическую структуру.
  • Итоговый геометрический элемент уровня должен быть размером не меньше 4 квадратных метров.
  • Итоговый геометрический элемент уровня должен быть размером не больше 400 тыс. квадратных метров.

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

Пример внешнего слоя можно увидеть как слой структуры в примере пакета документа.

Слой "Секция"

В файле DWG для каждого уровня должен быть определен слой, содержащий секции. Секции — это области для перемещения в здании, такие как офисы, холлы, лестницы и лифты. Если свойство VerticalPenetrationCategory определено, то перемещаемые секции, охватывающие несколько уровней, например лифты и лестницы, преобразуются в геометрические элементы вертикальных проемов. Для геометрических элементов вертикальных проемов, которые перекрывают друг друга, назначается один setid.

Слой секций должен соответствовать следующим требованиям.

  • Единицы должны быть нарисованы как POLYGON, POLYLINE (закрыто), CIRCLE или ELLIPSE (закрыто).
  • Секции должны находиться внутри периметра экстерьера.
  • Секции не должны частично перекрываться.
  • Секции не должны содержать ни одной самопересекающейся геометрии.

Дайте секции название, создав текстовый объект в слое меток секций UnitLabel, а затем поместите объект внутрь границ секции. Дополнительные сведения см. в разделе Слой UnitLabel.

Пример слоя единиц можно увидеть в примере пакета рисования.

Слой "Стены"

Файл DWG для каждого уровня может содержать слой, определяющий физическую протяженность стен, колонн и других конструкций здания.

  • Стены должны быть нарисованы как POLYGON, POLYLINE (закрыто), CIRCLE или ELLIPSE (закрытые).
  • Слои стен должны содержать только геометрическую конструкцию, интерпретируемую как конструкция здания.

Пример слоя "Стены" можно увидеть в примере пакета документа.

Слой "Двери"

Вы можете добавить слой DWG, содержащий двери. Каждая дверь должна перекрываться с границей секции в слое секций.

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

Четыре графика, демонстрирующие действия по созданию проемов

Уровень "Зона"

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

  • Зоны должны быть нарисованы как POLYGON, POLYLINE (закрытые) или ELLIPSE (закрытые).
  • Зоны могут перекрываться.
  • Зоны могут находиться внутри или за пределами периметра экстерьера сооружения.

Присвойте зоне имя, создав текстовый объект в слое ZoneLabel и поместив текстовый объект в границах зоны. Дополнительные сведения см. в разделе Слой ZoneLabel.

Пример слоя "Зона" можно увидеть в примере пакета документа.

Слой UnitLabel

Файл DWG для каждого уровня может содержать слой меток секций (UnitLabel). В слое UnitLabel для секций, извлеченных из слоя "Секция", добавляется свойство name. Секции со свойством name могут содержать дополнительные сведения, указанные в файле манифеста.

  • Метки секций должны быть однострочными текстовыми сущностями.
  • Метки секций должны находиться внутри границ своих секций.
  • Секции не должны содержать нескольких текстовых сущностей на уровне UnitLabel.

Пример слоя UnitLabel можно увидеть в примере пакета рисования.

Слой ZoneLabel

Файл DWG для каждого уровня может содержать слой меток зон (ZoneLabel). Этот слой добавляет свойство name в зоны, извлеченные из слоя зоны. Зоны со свойством name могут содержать дополнительные сведения, указанные в файле манифеста.

  • Метки зоны должны быть однострочными текстовыми сущностями.
  • Метки зоны должны находиться внутри границ своей зоны.
  • Зоны не должны содержать нескольких текстовых сущностей в слое ZoneLabel.

Пример слоя ZoneLabel можно увидеть в примере пакета рисования.

Требования к файлу манифеста

Папка в ZIP-архиве должна содержать файл манифеста в корневом каталоге, а файл должен называться manifest.json. В нем описываются файлы DWG, позволяющие службе преобразования анализировать их содержимое. Будут приняты только файлы, указанные в манифесте. Файлы, находящиеся в папке ZIP-архива, но неправильно указанные в манифесте, будут игнорироваться.

Хотя при использовании объектов манифеста существуют определенные требования, не все объекты являются обязательными. В следующей таблице показаны обязательные и необязательные объекты для службы преобразования версии 1.1.

Примечание.

Если не указано иное, все свойства строкового типа могут содержать 1000 символов.

Object Обязательное поле Описание
version true Версия схемы манифеста. В настоящее время поддерживается только версия 1.1.
directoryInfo true Описание географических и контактных сведений о сооружении. Его также можно использовать для описания географической и контактной информации о пользователе здания.
buildingLevels true Задает уровни зданий и файлы, содержащие структуру уровней.
georeference true Содержит числовые географические данные для рисунка сооружения.
dwgLayers true Выводит список имен слоев, каждый из которых содержит имена собственных функций.
unitProperties false Можно использовать для вставки дополнительных метаданных для геометрических элементов секций.
zoneProperties false Можно использовать для вставки дополнительных метаданных для геометрических элементов зон.

В следующих разделах подробно описаны требования для каждого объекта.

directoryInfo

Свойство Тип Обязательно Описание
name строка true Название здания.
streetAddress строка false Адрес здания.
unit строка false Секция в здании.
locality строка false Название города, области, района или региона.
adminDivisions Массив строк в формате JSON false Массив, содержащий обозначения адресов. Например: (страна, регион). Используйте коды стран в формате ISO 3166 и коды регионов или территорий в формате ISO 3166-2.
postalCode строка false Код сортировки почты.
hoursOfOperation строка false Соответствует формату OSM Opening Hours (Рабочее время OpenStreetMap).
phone строка false Телефонный номер, связанный со зданием.
website строка false Веб-сайт, связанный со зданием.
nonPublic bool false Флаг, указывающий, есть ли открытый доступ в здание.
anchorLatitude numeric false Широта привязки сооружения (pushpin).
anchorLongitude numeric false Долгота привязки сооружения (pushpin).
anchorHeightAboveSeaLevel numeric false Высота первого этажа здания над уровнем моря (в метрах).
defaultLevelVerticalExtent числовой false Высота (толщина) по умолчанию для уровня этого сооружения, используемая, когда уровень verticalExtent не определен.

buildingLevels

Объект buildingLevels содержит массив данных в формате JSON для уровней зданий.

Свойство Тип Обязательно Описание
levelName строка true Описательное имя уровня. Пример: этаж 1, зал ожидания, синяя стоянка, цоколь и т. д.
ordinal integer true Определяет вертикальный порядок уровней. Каждое сооружение должно иметь уровень с порядковым номером 0.
heightAboveFacilityAnchor numeric false Высота уровня над привязкой в метрах.
verticalExtent numeric false Высота от пола до потолка (толщина) уровня в метрах.
filename строка true Путь файловой системы к рисунку САПР для уровня здания. Он должен начинаться с коревого каталога ZIP-архива здания.

georeference

Свойство Тип Обязательно Описание
lat numeric true Десятичное представление широты в градусах в источнике рисунка сооружения. Координаты источника должны быть в формате WGS84 Web Mercator (EPSG:3857).
lon numeric true Десятичное представление долготы в градусах в источнике рисунка сооружения. Координаты источника должны быть в формате WGS84 Web Mercator (EPSG:3857).
angle numeric true Угол по часовой стрелке (в градусах) между истинным севером и вертикальной осью (Y) рисунка.

dwgLayers

Свойство Тип Обязательно Описание
exterior массив строк true Имена слоев, определяющих профиль экстерьера здания.
unit массив строк false Имена слоев, определяющих секции.
wall массив строк false Имена слоев, определяющих стены.
door массив строк false Имена слоев, определяющих двери.
unitLabel массив строк false Имена слоев, определяющих имена секций.
zone массив строк false Имена слоев, определяющих зоны.
zoneLabel массив строк false Имена слоев, определяющих имена зон.

unitProperties

Объект unitProperties содержит массив JSON свойств секций.

Свойство Тип Обязательно Описание
unitName строка true Имя секции, связанное с этой записью unitProperty. Эта запись допустима, только если на слоях unitLabel есть метка, соответствующая unitName.
categoryName строка false Назначение секции Список значений, которые могут использовать указанные стили отрисовки, задокументированы в categories.json.
occupants массив объектов directoryInfo false Список пользователей для секции.
nameAlt строка false Альтернативное имя для секции.
nameSubtitle строка false Подзаголовок для секции.
addressRoomNumber строка false Номер комнаты, секции, квартиры или номера люкс в секции.
verticalPenetrationCategory строка false Если это свойство определено, то итоговый геометрический элемент будет "Вертикальный проем" (VRT), а не "Секция". Вы можете использовать вертикальные проемы для перехода к другим геометрическим элементам "Вертикальный проем" выше или ниже уровнем. "Вертикальный проем" — это имя категории. Если это свойство определено, то свойство categoryName перекрывается свойством verticalPenetrationCategory.
verticalPenetrationDirection строка false Если определено verticalPenetrationCategory, можно также определить допустимое направление движения. Допустимые значения: lowToHigh, highToLow, both и closed. Значение по умолчанию — both. Для этого значения учитывается регистр.
nonPublic bool false Указывает, открыта ли секция для свободного доступа.
isRoutable bool false Если для этого свойства задано значение false, переходить к этой секции или через нее нельзя. Значение по умолчанию — true.
isOpenArea bool false Позволяет агенту навигации входить в секцию без использования проемов, связанных с секцией. По умолчанию этому параметру присвоено значение true для секций без проемов и false для секций с проемами. Вручную установка isOpenArea false на единицу без открытий приводит к предупреждению, так как результирующий блок недоступен агентом навигации.

zoneProperties

Объект zoneProperties содержит массив JSON свойств зоны.

Свойство Тип Обязательно Описание
zoneName строка true Имя зоны, связываемой с записью zoneProperty. Эта запись допустима, только если на слое zoneLabel зоны обнаружена метка, соответствующая zoneName.
categoryName строка false Назначение зоны. Список значений, которые могут использовать указанные стили отрисовки, задокументированы в categories.json.
zoneNameAlt строка false Альтернативное имя для зоны.
zoneNameSubtitle строка false Подзаголовок для зоны.
zoneSetId строка false Вы можете задать идентификатор для создания связи между несколькими зонами, чтобы их можно было запрашивать или выбирать в качестве группы. Примером могут служить зоны, охватывающие несколько уровней.

Пример манифеста пакета рисования

Ниже приведен файл манифеста для примера пакета рисования. Перейдите в пример пакета рисования для создателя Azure Maps на GitHub, чтобы скачать весь пакет.

Файл манифеста

{
    "version": "1.1", 
    "directoryInfo": { 
        "name": "Contoso Building", 
        "streetAddress": "Contoso Way", 
        "unit": "1", 
        "locality": "Contoso eastside", 
        "postalCode": "98052", 
        "adminDivisions": [ 
            "Contoso city", 
            "Contoso state", 
            "Contoso country" 
        ], 
        "hoursOfOperation": "Mo-Fr 08:00-17:00 open", 
        "phone": "1 (425) 555-1234", 
        "website": "www.contoso.com", 
        "nonPublic": false, 
        "anchorLatitude": 47.636152, 
        "anchorLongitude": -122.132600, 
        "anchorHeightAboveSeaLevel": 1000, 
        "defaultLevelVerticalExtent": 3  
    }, 
    "buildingLevels": { 
        "levels": [ 
            { 
                "levelName": "Basement", 
                "ordinal": -1, 
                "filename": "./Basement.dwg" 
            }, { 
                "levelName": "Ground", 
                "ordinal": 0, 
                "verticalExtent": 5, 
                "filename": "./Ground.dwg" 
            }, { 
                "levelName": "Level 2", 
                "ordinal": 1, 
                "heightAboveFacilityAnchor": 3.5, 
                "filename": "./Level_2.dwg" 
            } 
        ] 
    }, 
    "georeference": { 
        "lat": 47.636152, 
        "lon": -122.132600, 
        "angle": 0 
    }, 
    "dwgLayers": { 
        "exterior": [ 
            "OUTLINE", "WINDOWS" 
        ], 
        "unit": [ 
            "UNITS" 
        ], 
        "wall": [ 
            "WALLS" 
        ], 
        "door": [ 
            "DOORS" 
        ], 
        "unitLabel": [ 
            "UNITLABELS" 
        ], 
        "zone": [ 
            "ZONES" 
        ], 
        "zoneLabel": [ 
            "ZONELABELS" 
        ] 
    }, 
    "unitProperties": [ 
        { 
            "unitName": "B01", 
            "categoryName": "room.office", 
            "occupants": [ 
                { 
                    "name": "Joe's Office", 
                    "phone": "1 (425) 555-1234" 
                } 
            ], 
            "nameAlt": "Basement01", 
            "nameSubtitle": "01", 
            "addressRoomNumber": "B01", 
            "nonPublic": true, 
            "isRoutable": true, 
            "isOpenArea": true 
        }, 
        { 
            "unitName": "B02" 
        }, 
        { 
            "unitName": "B05", 
            "categoryName": "room.office" 
        }, 
        { 
            "unitName": "STRB01", 
            "verticalPenetrationCategory": "verticalPenetration.stairs", 
            "verticalPenetrationDirection": "both" 
        }, 
        { 
            "unitName": "ELVB01", 
            "verticalPenetrationCategory": "verticalPenetration.elevator", 
            "verticalPenetrationDirection": "high_to_low" 
        } 
    ], 
    "zoneProperties": 
    [ 
        { 
            "zoneName": "WifiB01", 
            "categoryName": "Zone", 
            "zoneNameAlt": "MyZone", 
            "zoneNameSubtitle": "Wifi", 
            "zoneSetId": "1234" 
        }, 
        { 
            "zoneName": "Wifi101",
            "categoryName": "Zone",
            "zoneNameAlt": "MyZone",
            "zoneNameSubtitle": "Wifi",
            "zoneSetId": "1234"
        }
    ]
}

Вы можете преобразовать отправленные пакеты рисования в данные карты с помощью службы преобразования Azure Maps. В этой статье описываются требования пакета рисования для API преобразования. Чтобы просмотреть пример пакета, можно скачать пример пакета рисования версии 2.

Руководство по подготовке пакета документа см . в руководстве по пакету рисования.

Изменения и исправления

  • Добавлена поддержка определяемых пользователем классов компонентов.
  • Упрощенные требования слоев DWG.

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

Пакет документа включает в себя рисунки, сохраненные в формате DWG, который является собственным форматом файла для программного обеспечения AutoCAD® в Autodesk.

Вы можете выбрать любое программное обеспечение CAD для создания рисунков в пакете рисования.

Служба преобразования преобразует пакет рисования в данные карты. Служба преобразования работает с форматом ФАЙЛА DWG AutoCAD AC1032.

Словарь терминов

Для справки ниже приведены некоторые термины и определения, которые важны для ознакомления с этой статьей.

Термин Определение
Уровень Слой AutoCAD DWG из файла рисунка
Объект Сущность AutoCAD DWG из файла рисунка
Xref Файл в формате AutoCAD DWG, присоединенный к основному рисунку в качестве внешней ссылки
Уровень Область объекта на заданном высоте. Например, пол объекта.
Функция Экземпляр объекта, созданного из службы преобразования, которая объединяет геометрию со сведениями о метаданных
Классы геометрических элементов Обычный чертеж для функций.

Структура пакета рисунков

Пакет документа — это ZIP-архив, содержащий следующие файлы:

  • DWG-файлы в формате AutoCAD DWG.
  • Файл manifest.json , описывающий файлы DWG в пакете рисования.

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

Процесс преобразования файла DWG

Служба преобразования Azure Maps преобразует файлы DWG объекта в сопоставление данных, представляющих объект и функции объекта.

Служба преобразования Azure Maps создает:

  • Функция объекта: функция верхнего уровня объекта, с которым связаны все уровни объекта.
  • Функции уровня: для каждого этажа объекта создается функция одного уровня. Все функции на уровне связаны с уровнем.
  • Определяемые пользователем функции: слои DWG сопоставляются с пользовательским классом признаков и становятся экземплярами класса компонентов.

Требования к файлу DWG

Каждый файл DWG должен соответствовать этим требованиям:

  • Файл DWG не должен содержать функции из нескольких объектов.
  • Файл DWG не должен содержать функции из нескольких уровней. Например, объект с тремя уровнями содержит три файла DWG в пакете документа.
  • Все данные одного уровня должны содержаться в одном файле DWG. Все внешние ссылки (xref) должны быть привязаны к родительскому рисунку.
  • Файл DWG должен определять уровни, представляющие границу этого уровня.
  • DWG должен ссылаться на ту же систему измерения и единицу измерения, что и другие файлы DWG в пакете документа.
  • Файл DWG должен быть выровнен при стеке на другом уровне из того же объекта.

Требования к слою DWG

Классы геометрических элементов

Один или несколько слоев DWG можно сопоставить с определяемым пользователем классом компонентов. Один экземпляр компонента создается из сущности на сопоставленном слое. Например, dwG слои стул, таблица и диван сопоставляются с классом признаков, называемым мебелью. Для каждой сущности из определенных слоев создается функция мебели. Кроме того:

  • Все слои должны быть разделены, чтобы представлять различные типы признаков объекта.
  • Все сущности должны находиться внутри границ периметра уровня.
  • Поддерживаемые типы сущностей AutoCAD: TEXT, MTEXT, POINT, ARC, CIRCLE, LINE, POLYLINE, ELLIPSE.

Свойства класса компонентов

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

  • Только сущности TEXT и MTEXT связаны с функцией в качестве свойства. Все остальные типы сущностей игнорируются.
  • Точка обоснования TEXT и MTEXT должна находиться в границах закрытой фигуры.
  • Если несколько свойств TEXT находятся в пределах закрытой фигуры и оба сопоставляются с одним свойством, один из них выбирается случайным образом.

Уровень объекта

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

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

  • Периметры уровня должны быть нарисованы как POLYGON, POLYLINE (закрыто), CIRCLE или ELLIPSE (закрыто).
  • Периметры уровня могут перекрываться, но растворяются в одной геометрии.
  • Результирующая функция уровня должна быть не менее 4 квадратных метров.
  • Результирующая функция уровня не должна превышать 400 000 квадратных метров.

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

Пример слоя периметра уровня можно увидеть как слой GROS$ в примере пакета рисования версии 2.

Требования к файлу манифеста

Пакет документа должен содержать файл манифеста на корневом уровне, а файл должен быть назван manifest.json. В нем описываются файлы DWG, позволяющие службе преобразования анализировать их содержимое. Используются только файлы, определенные манифестом. Файлы, которые находятся в пакете рисования, но не указаны должным образом в манифесте, игнорируются.

Пути к файлам в объекте buildingLevels файла манифеста должны быть относительными к корню пакета документа. Имя файла DWG должно точно совпадать с именем уровня сооружения. Например, файл DWG для уровня "База" Basement.dwg. Файл DWG для уровня 2 называется как level_2.dwg. Имена файлов не могут содержать пробелы, вы можете использовать подчеркивание для замены пробелов.

Хотя при использовании объектов манифеста существуют определенные требования, не все объекты являются обязательными. В следующей таблице показаны обязательные и необязательные объекты для службы преобразования 2023-03-01-preview.

Примечание.

Если иное не указано, все строковые свойства ограничены 1 тысячами символов.

JSON-файл манифеста

Свойство Тип Обязательное поле Описание
version строка TRUE Версия схемы манифеста. В настоящее время версия "2.0"
buildingLevels Объект BuildingLevels TRUE Задает уровни объекта и файлы, содержащие структуру уровней.
featureClasses Массив объектов featureClass TRUE Список объектов класса функций, определяющих, как считываются слои из файла документа DWG.
georeference Объект georeference FALSE Содержит числовые географические данные для рисунка сооружения.    
facilityName строка FALSE Имя объекта.

В следующих разделах подробно описаны требования для каждого объекта.

buildingLevels

Свойство Тип Обязательно Описание
dwgLayers Массив строк TRUE Имена слоев, определяющих внешний профиль объекта.
levels Массив объектов уровня TRUE Уровень относится к уникальному полу в объекте, определенном в файле DWG, высоте каждого уровня и вертикального порядка, в котором они отображаются.

level

Свойство Тип Обязательно Описание
levelName строка TRUE Имя уровня. Пример: этаж 1, зал ожидания, синяя стоянка, цоколь и т. д.
ordinal integer TRUE Определяет вертикальный порядок уровней. Все ordinal значения должны быть уникальными в объекте.
filename строка TRUE Путь и имя файла DWG, представляющего уровень в объекте. Путь должен быть относительно корня пакета документа. 
verticalExtent number FALSE Потолочная потолочная высота (толщина) уровня в метрах.

featureClass

Свойство Тип Обязательно Описание
dwgLayers Массив строк TRUE Имя каждого слоя, определяющего класс признаков. Каждая сущность на указанном уровне преобразуется в экземпляр класса компонентов. Имя dwgLayer , преобразованное функцией в конечном итоге в качестве свойства этой функции.
featureClassName Строка TRUE Имя класса компонентов. Типичные примеры включают комнату, рабочую область или стену.
featureClassProperties Массив объектов featureClassProperty FALSE Задает текстовые слои в файле DWG, связанном с функцией в качестве свойства. Например, метка, которая попадает в границы пространства, например номер комнаты.

featureClassProperty

Свойство Тип Обязательно Описание
dwgLayers Массив строк TRUE Имя каждого слоя, определяющего свойство класса компонентов. Каждая сущность на указанном слое преобразуется в свойство. Только сущности DWG TEXT и MTEXT преобразуются в свойства. Все остальные сущности игнорируются.
featureClassPropertyName Строка TRUE Имя свойства класса компонента, например spaceName или spaceUseType.

georeference

Свойство Тип Обязательно Описание
lat number TRUE Десятичное представление широты в градусах в источнике рисунка сооружения. Координаты источника должны находиться в WPS84 Web Mercator (EPSG:3857).
lon number TRUE Десятичное представление долготы в градусах в источнике рисунка сооружения. Координаты источника должны находиться в WPS84 Web Mercator (EPSG:3857).
angle number TRUE Угол по часовой стрелке (в градусах) между истинным севером и вертикальной осью (Y) рисунка.

Пример манифеста пакета рисования

В этом примере в формате JSON показан файл манифеста для примера пакета рисования. Перейдите к примеру пакета рисования версии 2 для Azure Maps Creator на GitHub, чтобы скачать весь пакет.

Файл манифеста

{
  "version": "2.0",
  "buildingLevels": {
    "dwgLayers": [
      "GROS$"
    ],
    "levels": [
      {
        "filename": "Ground.dwg",
        "levelName": "level 1",
        "ordinal": 0
      },
      {
        "filename": "Level_2.dwg",
        "levelName": "level 2",
        "ordinal": 1
      }
    ]
  },
  "georeference": {
    "lat": 47.63529901,
    "lon": -122.13355885,
    "angle": 0
  },
  "featureClasses": [
    {
      "featureClassName": "room",
      "dwgLayers": [
        "RM$"
      ],
      "featureClassProperties": [
        {
          "featureClassPropertyName": "name",
          "dwgLayers": [
            "A-IDEN-NUMR-EXST"
          ]
        },
        {
          "featureClassPropertyName": "roomType",
          "dwgLayers": [
            "A-IDEN-NAME-EXST"
          ]
        }
      ]
    },
    {
      "featureClassName": "wall",
      "dwgLayers": [
        "A-WALL-EXST",
        "A-WALL-CORE-EXST",
        "A-GLAZ-SILL-EXST",
        "A-GLAZ-SHEL-SILL-EXST",
        "A-GLAZ-SHEL-EXST",
        "A-GLAZ-EXST"
      ]
    },
    {
      "featureClassName": "workspace",
      "dwgLayers": [
        "A-BOMA"
      ]
    },
    {
      "featureClassName": "workspaceFurniture",
      "dwgLayers": [
        "A-FURN-SYTM-EXST"
      ]
    },
    {
      "featureClassName": "buildingFurniture",
      "dwgLayers": [
        "A-FURN-FREE-EXST"
      ]
    }
  ],
  "facilityName": "Contoso Building"
}

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

Руководство по подготовке пакета документа см. в руководстве по пакету рисования.