Требования к пакету рисунков
Примечание.
Выход на пенсию создателя 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"
}
Следующие шаги
Руководство по подготовке пакета документа см. в руководстве по пакету рисования.