RU:F3DB
Это предложение, связанное с внутренними помещениями, является лишь черновиком и не имеет широкой программной поддержки. Его не следует использовать для интеграции новых данных. Вместо этого лучше использовать схему Simple Indoor Tagging, которая имеет более широкую программную поддержку. |
Описание
Full 3D Building (сокращённо F3DB) описывает универсальный подход, который сочетает в себе существующие подходы к картированию внутри помещений с наружным 3D-моделированием зданий (S3DB).
План зданий
Два подхода (S3DB и картографирование помещений) похожи, но не одинаковые. Пробелы должны быть закрыты с использованием подхода F3DB.
Цели
- Обратная совместимость
- Простота
- Совместимость со стандартным определением в гражданском строительстве
- Объекты можно детализировать и размечать поэтапно
- Отдельное отображение наружного вида и внутреннего вида по этажам
- Важные части, совместимые с Industry Foundation Classes ( Industry Foundation Classes)
- Важные детали, совместимые с CityGML, SIG 3D, OGDC.
- Поддержка S3DB
Спецификация и рабочий процесс
РАБОТА В ПРОЦЕССЕ
Спецификация F3DB создается тремя связанными уровнями наборов функций для описания 2D, 2.5D и 3D данных. Начиная с 2D-сопоставления, позже можно обогатить эти данные, чтобы получить 2.5D или даже 3D-описание здания. Следующее описание относится к спецификации 2D. Дополнения, которые относятся к описанию 2.5D или 3D, отмечены отдельно (2.5D) или (3D).
Общие замечания
Чтобы провести различие между этажами здания, каждый путь и точки внутреннего пространства должны быть помечены идентификатором для указания этажа, как в следующем примере для первого этажа:
Начало моделирования
… внесите данные, обрисовав контура здания с использованием спутниковых снимков, уточнив его с помощью GPS … или просто с использованием существующих наружных данных.
Если у вас есть план здания, вы можете использовать его для уточнения контура этого здания. Информация о том, как вписать такой план в существующие наружные данные, можно найти в разделе IndoorOSM#PicLayer
Добавление первых внутренних структур: Внутренние области
В соответствии с планом первого этажа все помещения внутренних сооружений, включая пешеходные зоны, обозначены в виде путей с последующей маркировкой поверх существующего контура наружнего здания:
- indoor:area=* с
- name=*, и, если известно,
- ref=*
Конечно, вы также можете использовать установленные теги для подробного описания назначения области.
Пример: Сопоставление туалетной комнаты на основе информации из чертежа.
Обратите внимание на обязательный тег этажа: indoor:level=0. Назначение внутренней зоны на её этаж всегда выполняется с помощью этого тега! Во время отображения здания с несколькими уровнями вы должны применять фильтры к JOSM. Фильтр для отображения только элементов первого этажа должен выглядеть так:
type:way & "indoor:level":"0"
Более подробная спецификация в соответствии с новейшими стандартами с открытым исходным кодом: (будет завершена позже)
Пожалуйста, обратите внимание:
Внутренние зоны имеют одинаковые точки с полигоном здания и соседних зон! Это самое важное различие между этим предложением и более старыми предложениями разметки внутри помещений, такими как Картографирование в зданиях.
Кроме того, внутренние помещения не описывают стены, потому что есть и открытые комнаты без стен. Посмотрите на этот пример:
Дополнительно: Зоны
Зоны представляют собой специальные закрытые участки без стен или иногда только с особыми разделителями, такими как защитный барьер. Теги:
- indoor:zone=<наименование>
Примеры:
- decoration (украшение)
- show (шоу)
- exhibition (выставка)
- gastronomy (гастрономия)
- waiting_area (зона ожидания)
- artificial_pond (искусственный водоем)
- artificial_stream (искусственный ручей)
- recreation (досуг)
- playground (детская площадка)
- smoking (зона для курения)
Использование: для рисования специальных областей, таких как действительно большие комнаты, например, аэропорт с различными областями в пределах одной комнаты, таких как пограничный контроль, зал прибытия или вылета в аэропорту и так далее.
Добавление стен
Существующие области с использованием тега indoor:area=* могут быть уточнены, чтобы обозначить стены. Если стена на определённом участке имеет разную высоту или ширину, линия должна быть разделена, чтобы смоделировать это.
Отображение после добавления стен:
Добавление маршрутов и путей
Пути рисуются как линии. Области уже нарисованы как поверхности с именами.
Пути маршрутизации в здании описаны как.
- indoor:highway=footway
- indoor:highway=steps
- Indoor:highway=ramp
- indoor:highway=elevator
- indoor:highway=escalator
Причины выбора префикса indoor:highway=*:
- обратная совместимость с рендерингом Mapnik (пути невидимы на главной странице OSM и не мешают стандартной карте, например, с использованием старых внутренних спецификаций);
- упростить внутреннюю навигацию (выбор маршрутов перемещения внутри и снаружи здания).
Кроме того, следует предусмотреть использование внутренних путей для разметки зданий, таких как автомобильные дороги подземных парковок. Такие дороги должны быть помечены тегом:
Здесь показаны первые примеры рендеринга:
Добавление дверей
Двери являются частями стены; точки с тегами
- door=yes или более конкретным, door=* (смотри Proposed features/door)
- width=*
- height=*
- opening_direction=*
Маркировка направления двери
Решение A
«Геометрический подход». Предпочитает большинство участников дискуссии. Абсолютно, но нужно знать как рисовать направление стены, которое в тоже время не поддерживается некоторыми редакторами.
Для правильной маркировки направления открытия для рендеринга направление рисования линии стены следует учитывать:
Решение B
Примечание: отклонено! |
Подход "Этаж / Комната". Быстрее, но не ясно в некоторых ситуациях (межкомнатные двери).
Я стою в коридоре и вижу, как дверь открывается в направлении ко мне. Дверь:
- opening:direction=left когда ручка находится на левой стороне
- opening:direction=right когда ручка находится на правой стороне
Я стою в коридоре и вижу, как дверь открывается от меня. Дверь:
- opening:direction=left_mirror и когда ручка находится на левой стороне
- opening:direction=right_mirror когда ручка находится на правой стороне
Это решение отвергается большинством участников дискуссии из-за возможных конфликтов. Смотри рисунок ниже. Красная область не определена и может создавать ошибки при рендеринге:
Маркировка окон
Окна, как и двери, являются точками и отмечаются на стенах с тегами:
window=*. width=* height=* min_height=* подробнее смотри: window=*.
Лестницы, пандусы, эскалаторы
Направление лестниц определяется пометкой координат начальных и конечных точек тегом indoor:highway=steps (или последовательно указать теги indoor:highway=steps — indoor:highway=footway — indoor:highway=steps).
Более подробная информация о продвинутых моделях лестниц: Stairs modelling
Крайние ступеньки должны быть помечены тегами:
Аналогично:
- indoor:highway=elevator
- indoor:highway=escalator вместо conveying=yes
- indoor:highway=ramp
Рендеринг макета 2D
Результат после рендеринга: стены, двери и окна с тегами:
height=* и лестница с тегами:
height=*
Альтернативно: возможный вид маршрутизации и архитектурный чертеж.
Чертёж крыш
Для получения полноценной 3D модели обязательно нанесение крыш с проёмами для ступеней или галерей.
Теги:
- ceiling=*
- roof_level=<значение>
- roof_height=* означает толщину крыши
Примечание:
roof_level=0 означает пол на первом этаже
На чертеже область с тегом ceiling=yes (синяя линия) использует отношение для нанесения отверстий.
Отверстия могут быть помечены как определенные области с name=* .
Этажи: Строение и определение высоты
Теги:
- level:number:<число>=<значение>, например: indoor:level:1=3.95. Значение 3.95 означает 3.95 метра над самой низкой точкой рельефа с точкой пересечения здания.
- level:number:name=<значение> описывает общее название для этажа, например: Basement, 2BS, Recreation Level
Ориентир для определения высоты здания
На следующем эскизе показана позиция контрольной точки, используемой для расчёт высоты height=*:
Это самая низкая возможная точка пересечения между фасадом здания и рельефом.
Заметка
Не обязательно указывать значения, отмеченные синим цветом. Высота каждого этажа является результатом расчёта значений, например. высота 4 этажа − высота третьего этажа.
Такой подход позволяет:
- размечать внутренние стены, которые ниже потолка.
- наследование тегов: отсутствие значения высоты для внутренней стены автоматически означает: стена имеет высоту этажа.
Крыша
Тег: roof=yes
Крыши, используемые в определении S3DB, являются своего рода так называемыми «CSG-моделями» (смотри Конструктивная сплошная геометрия).
F3DB использует для моделирования суммы отдельных плоских поверхностей, так называемое «граничное представление» (смотри Граничное представление).
Для чёткого описания плоскости в пространстве (обычно называемой «Pi») вам понадобятся три известные точки:
Поэтому крыша должна иметь три точки с данными о высоте.
Картограф имеет свободу решать, какие три точки должны иметь значения высоты, помеченные тегом ele=*.
Согласно этому определению, крыша здания представляет собой объединение отдельных поверхностей. Такой подход позволяет моделировать очень сложные элементы, потому что все 3D-объекты могут быть представлены в виде объединения отдельных поверхностей.
Теги для крыши
- Три точки на схеме, отмеченные тегами 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=* потому что положение формы контура крыши четко определяется тремя точками с известными высотами.
Pa´, Pb´, Pc´= точки в трёхмерном пространстве.
Ha, Hb, Hc = соответствующие высоты этих точек в пространстве.
Pa, Pb, Pc = вид сверху на эти точки
Теги для угла наклона крыши
Маркировка угла крыши
- inclination=* (смотри параметр Alpha на чертеже); определяемая как поверхность, состоит из трех точек в пространстве: самая низкая точка крыши и её соседей слева и справа. У соседей должно быть одинаковое значение высоты (они лежат на прямой линии) для следующей возможной точки с другим значением высоты. В большинстве случаев это самая низкая точка, и её соседа легко определить (это высота желоба).
или:
- ele_roof=* — это расстояние между этой точкой формы крыши и нижней точкой пересечения ландшафта и здания, используемой для описания всех трехмерных строительных элементов (смотри чертёж со частью здания ниже).
Для плоскостей, состоящих из треугольников, определение наклона часто сложно, потому что нужно знать все значения высоты фигур в 3D. Для таких целей вы можете использовать эскизы из программ 3D-моделирования, которые позволяют запрашивать значения высоты трёхмерных точек.
В таких случаях легче описать поверхность крыши в пространстве (Pi) по определению любых трех точек, которые не находятся на прямой.
Пример использования ниже показывает практические трудности треугольного подхода:
Нужно точно вычислить значения высоты H5 и H6 для получения Pi1 и Pi2 как плоской поверхности.
Как и в случае с высотой этажей, крыша может включать в себя отверстия (мультиполигон с отношением).
Примечание
roof_thickness следует определять путем расчёта точных архитектурных моделей зданий. Определение исходит из архитектурного кода здания и должно в будущем помочь с полуавтоматическим импортом 3D-моделей зданий.
Предложения
Пожалуйста, разместите здесь свои идеи и предложения!
- Уберите префикс indoor: для indoor:highway=*, вместо этого добавьте indoor=yes для элементов. «Обратная совместимость с рендерингом Mapnik» не является хорошей причиной просто потому, что стиль по умолчанию меняется с медленной скоростью, это не является хорошей причиной для создания отдельного набора тегов. "Упростить навигацию в помещении" будет также работать с indoor=yes. Добавление внутреннего префикса сделает обработку этих данных более сложной для всех и каждого (начиная с редакторов) Mateusz Konieczny (talk) 14:38, 18 Июля 2014 (UTC)
- Что вы думаете о переименовании roof_level=* → roof:level=* и roof_height=* → roof:height=* в #Чертёж крыш? --Edward17 (talk) 21:32, 20 July 2016 (UTC)
Вопросы и ответы
Ссылки
Примеры моделирования:
- F3DB_mapping_examples (Примечание: страница в работе. Будьте терпеливы. Содержание появится в сентябре 2014)