RU:F3DB

From OpenStreetMap Wiki
Jump to navigation Jump to search

Описание

Full 3D Building (сокращение от F3DB) описывает универсальный подход, который сочетает в себе существующие подходы к картированию внутри помещений с наружным 3D-моделированием зданий S3DB.

План зданий

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

Цели

  • Обратная совместимость
  • просто
  • Совместимость со стандартным определением в гражданском строительстве
  • Объект может быть детализирован и размечен по этапам
  • Отдельное отображение наружного вида и внутреннего вида по этажам.
  • Important parts compatible with Industry Foundation CLasses (http://de.wikipedia.org/wiki/Industry_Foundation_Classes)
  • Important parts compatiblle with CityGML, SIG 3D, OGDC.
  • Support of S3DB

Спецификация и рабочий процесс

РАБОТА В ПРОЦЕССЕ

Спецификация F3DB создается тремя связанными уровнями наборов функций для описания 2D, 2.5D и 3D данных. Начиная с 2D-сопоставления, позже можно обогатить эти данные, чтобы получить 2.5D или даже 3D-описание здания. Следующее описание относится к спецификации 2D. Дополнения, которые относятся к описанию 2.5D или 3D, отмечены отдельно (2.5D) или (3D).

Общие замечания

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

indoor:level=1

Начало моделирования

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

Если у вас есть план здания, вы можете использовать его для уточнения контура этого здания. Информация о том, как установить такой план заземления в существующих данных на открытом воздухе, можно найти в разделе: [1]

Ground plan fitted in JOSM

Добавление первых внутренних структур: Внутренние Области

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

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

Пример: Сопоставление туалетной комнаты на основе информации наземного плана

The tags of this mapped indoor area are displayed on the right side

Обратите внимание на требуемый тег уровня: indoor: level = 0. Назначение внутренней зоны на ее уровень всегда выполняется с помощью этого тега! Во время отображения здания с несколькими уровнями вы должны применять фильтры к JOSM. Фильтр для отображения только элементов первого этажа должен выглядеть так:

type:way & "indoor:level":"0"

F3DBRooms.jpg Картирование каждой области с использованием замкнутых полилиний с тегом indoor:area=* = value

Более подробная спецификация в соответствии с новейшими стандартами с открытым исходным кодом: (будет завершена в следующие дни)

Пожалуйста, обратите внимание:

Внутренние зоны имеют одинаковые точки с контурной формой здания и соседних зон! Это самое важное различие между этим предложением и более старыми предложениями разметки внутри помещений, такими как [2].

Кроме того, внутренние помещения не описывают стены, потому что есть и открытые комнаты без стен. Посмотрите на этот пример:

F3DBexampleDiffernceBetweenBuildingShapeAndIndoorWall.jpg Внутренняя комната этого здания не полностью замкнута стеной.

Дополнительно: зоны

Зоны представляют собой специальные закрытые участки без стен или иногда только с особыми разделителями, такими как аварийный барьер. Теги:

Примеры: украшение / шоу / выставка / гастрономия / зона ожидания / искусственный водоем / искусственный поток / отдых / детская площадка / курение

Использование: для рисования специальных областей, таких как действительно большие комнаты, например, аэропорт с различными разделами в пределах одной комнаты, например. пограничный контроль, ворота прибытия, выездные ворота и т. д.

Добавление стен

Существующие способы с мечением в помещении: area = * могут быть расширены, чтобы определить стены. Если стена области имеет разную высоту или ширину, путь должен быть разделен, чтобы моделировать это.

S3DBIndoorWallYes.jpgСтены в здании тегирования черных линий:

Другие возможные значения:

Позаботьтесь о добавлении стен:

S3DBIndoorWallsWithWidth.jpg Возможное графическое представление на внутренней карте после маркировка стен ключом width=*

Добавление маршрутов и путей

Пути рисуются как линии. Области уже нарисованы как поверхности с именами.

F3DBIndoorRouting.jpg

Пути маршрутизации в здании описаны как.

Причины префикса: indoor:highway=*

  • обратная совместимость с рендерингом Mapnik. (пути невидимы на главной странице OSM и не мешают стандартной карте, например, с использованием старых внутренних спецификаций)
  • упростить внутреннюю навигацию (выбор способов внутри и снаружи здания)

Кроме того, следует предусмотреть использование внутренних дорог для разметки зданий, таких как автомобильные дороги подземных парковок. Такие дороги должны быть помечены таким образом:

Здесь показаны первые примеры рендеринга:

Indoor highway outside levelbuttons.png Indoor highway outside rendering.png

Добавление дверей

Двери являются частями стены; точки с атрибутами

F3DBdoorTypes.jpg

F3DBDoorYes.jpg

Маркировка направления двери

Решение A

«Геометрический подход». Предпочитает большинство участников дискуссии. Абсолютно, но нужно знать как рисовать направление стены, которое в тоже время не поддерживается некоторыми редакторами.

Для правильной маркировки направления открытия для рендеринга направление рисования вектора стены следует учитывать:

F3DBdoorOpeningDirectionDefinitionV1.jpg

Решение B
note:rejected!

Подход "Этаж / Комната". Быстрее, но не ясно в некоторых ситуациях (от комнаты до двери комнаты).

Я остаюсь в коридоре и вижу, как дверь открывается на пол. Дверь:

  1. opening:direction=left когда ручка находится на левой стороне
  1. opening:direction=right когда ручка находится на правой стороне

Я остаюсь в коридоре и вижу, как дверь открывается в сторону. Дверь:

  1. opening:direction=left_mirror и когда ручка находится на левой стороне
  1. opening:direction=right_mirror когда ручка находится на правой стороне

F3DBdoorOpeningDirectionDefinitionV2.jpg

Это решение отвергается большинством участников дискуссии из-за возможных конфликтов. См. Рисунок ниже. «Красная» область не определена и может создавать ошибки рендеринга:

F3DBDoorOpeningDirectionApproachBIsNotClear.jpg

Маркировка окон

Окна, как и двери, являются точками и отмечаются на стенах с тегами:

window=*. width=* height=* min_height=* подробнее см .: Key:window

F3DBWindowYes.jpgОкна в здании.

Лестницы, пандусы, эскалаторы

Направление лестниц определяется пометкой координат начала и конца точки indoor:highway=steps элемент (или суммы последовательности таких элементов, как indoor:highway=steps - indoor:highway=footway - indoor:highway=steps )

Более подробная информация о продвинутых моделях лестниц: [3]

Самая низкая точка шага должна быть помечена как:

F3DBStepsWithIncline.jpg

Аналогично:

Рендеринг макета 2D

Результат после рендеринга: стены, двери и окна с тегами:

height=* и шаги с тегами:

height=*

steps_count=*

F3DBPlainArchitectonicView.jpg

Альтернативно: возможный вид маршрутизации и архитектурный чертеж.

F3DBRoutingAndArchitectonicView.jpg

Чертеж крыш

Для получения полноценной 3D модели обязательно нанесение крыш с проемами для ступеней или галерей.

Теги:

Заметка:

roof_level=0 означает пол на первом этаже

Рисунок ceiling=yes (синяя линия) использование отношения для нанесения отверстий.

Отверстия могут быть помечены как определенные области с name=* .

F3DBroofYESarchitectonicView.jpg

Уровни. Строение и определение высоты

Tagging:

  • indoor:level:number=value E. g.: indoor:level:1=3.95. The value 3.95 means 3.95 meter over lowest terrain with building intersection point.
  • indoor:level:name=value Описывает общее внутреннее имя уровня, например: Подвал, 2BS, Уровень отдыха

F3DbuildingSectionV1.jpg

Ориентир для определения высоты здания

На следующем эскизе показана позиция контрольной точки, используемой для height=* расчет: Это самая низкая возможная точка пересечения между фасадом здания и рельефом.

F3DBLowestBuildingPoint.jpg

Заметка

Не обязательно собирать значения, полученные синим цветом. Высота каждого уровня является результатом деления значений, например. 4.th Высота этажа -3.rd Высота пола.

Такой подход позволяет особенно:

  1. рисунок внутренних стен, которые ниже потолка.
  2. сохраняет метку: значение высоты для внутренней стены означает автоматически - стена имеет высоту пола.

Крыша

Tagging: roof=yes

Крыши, используемые в определении S3DB, являются своего рода так называемыми «CSG-моделями» (см. http://en.wikipedia.org/wiki/Constructive_solid_geometry).

F3DB использует для моделирования суммы отдельных плоских поверхностей, так называемое «граничное представление» (см.http://en.wikipedia.org/wiki/Boundary_representation).

Для четкого описания плоскости в космосе (обычно называемой «Pi») вам понадобятся три известные точки:

PlaneIn3dSpaceDefinedBy3points.JPG

Поэтому крыша должна иметь три точки с данными о высоте.

The mapper has freedom to decide which three points should have height values, tagged as ele=*

The roof of building is according to this definition a sum of single surfaces. This approach allows modeling of very complicated elements because all 3D objects can be represented as a sum of single surfaces.

Tagging

  • Три точки на схеме отмечены как ele = *. Например: Pa, Pb, Pc
  • roof_thickness=* (Параметр T на чертеже). Если нет информации о roof_thickness, тогда T = 0
  • surface=* или более подробно: surface_top=* surface_down=*, surface_sides=*.
  • colour=* или более подробно:colour_top=* colour_down=*, colour_sides=*.

Заметка:

  • Больше не требуется тег roof:height=* потому что положение формы контура крыши четко определяется тремя точками с известными высотами.

F3DBroofSurfaceDefinition3D.jpg

Pa´, Pb´, Pc´= points in 3D space.

Ha, Hb, Hc = corresponding heights of these points in space

Pa, Pb, Pc = top view ot these points

Маркировка угла крыши

  • inclination=*(См. Параметр Alpha на чертеже); определяемая как поверхность, состоит из трех точек в пространстве: самая низкая точка крыши и его сосед слева и справа. Соседи имеют одинаковое значение высоты (они лежат на прямой линии) следующую возможную точку с другим значением высоты. В большинстве случаев самая низкая точка и его один сосед легко определить (это высота желоба).

or:

  • ele_roof=* это расстояние между этой точкой формы крыши и нижней точкой пересечения местности / здания, используемой для описания всех трехмерных строительных элементов (см. чертеж со строительной частью в части ниже).

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

В таких случаях легче описать поверхность крыши в пространстве (Pi) по определению любых трех точек, которые не находятся на прямой.

F3DBroofsDefinedBy3pointsV1.jpg F3DBroofsDefinedBy3pointsV1a.jpg

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

Нужно точно вычислить значения высоты H5 и H6 для получения Pi1 и Pi2 как плоской плоскости.

F3DBroofsDefinedBy3pointsV2.jpg

Крыша может включать в себя отверстия (многопольные с отношением), похожие на потолок.

Заметка:

roof_thickness следует рассматривать путем расчета точно архитектурных моделей зданий. Определение исходит из архитектурного кода здания и должно в будущем помочь с полуавтоматическим импортом 3D-моделей зданий.

Предложения

Пожалуйста, разместите здесь свои идеи и предложения!

  • Падение в помещении: для indoor:highway=* prefix, и indoor=yes вместо элементов. «Обратная совместимость с рендерингом Mapnik» не является хорошей причиной, просто потому, что стиль по умолчанию изменяется в ледяном темпе, это не является хорошей причиной для создания отдельного набора тегов. "облегчить навигацию в помещении" будет также работать с indoor=yes. Добавление внутреннего префикса сделает обработку этих данных более сложной для всех и каждого (начиная с редакторов) Mateusz Konieczny (talk) 14:38, 18 July 2014 (UTC)
  • Что вы думаете о переименовании roof_level=* -> roof:level=* and roof_height=* -> roof:height=* in #Drawing_of_roofs? --Edward17 (talk) 21:32, 20 July 2016 (UTC)

Вопросы и ответы

Связи

Примеры моделирования: