Валидатор трехмерных зданий -- 3dcheck.zkir.ru

Всем привет. Хочу поделиться радостной новостью.

Мой валидатор трехмерных зданий, 3dcheck.zkir.ru наконец-то начал валидировать, т.е. находить конкретные ошибки, а не только строить модели зданий, какие получаются.

Выглядит это примерно вот так:

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

Основная и чаще всего встречающаяся ошибка – это отсутствие значения высоты (height=*) на билдинг-парте. Билдинг-парт без высоты – вещь совершенно бесполезная и отрендерена быть никак не может.

Также встречаются опечатки в roof:shape, перепутанные roof:direction и roof:orientation, а также неразборчивые даты постройки (start_date)

Так что если не знаете чем заняться – гляньте свой регион.

Комментарии и замечания приветствуются.

P.S.
еще картинка для привлечения внимания, подробнее тут

P.P.S
Исходный код, относящийся непосредственно к валидации до боли простой и находится на гитхабе.

2 Likes

Я бы поспорил с этим утверждением. Вот парты по 30 см в высоту - вот это бесполезная вещь.

Основная цель показать разноэтажную застроку, а не торчащие кирпичи.

Ну это спор скорее философский. Нужно ли вообще 3D в OSM, а если нужно, то какое. Я вот пять лет думал над более лучшей альтернативой Simple3D Buildings, но так ничего и не придумал :slight_smile:

Если цель показать разноэтажную застройку, то вот и обозначь хотя бы building:levels на партах. А если на парте нет ни building:levels, ни height, то какой от него толк?

Оно в таком виде даже не показывается нигде. Или где-то показывается?

The requested URL /RU-MOW.errors.html was not found on this server.

А https://3dcheck.zkir.ru/ мне показывает некий OpenLandcoverMap

1 Like

Это значит виртуальный хостинг шалит.
попробуйте без https, просто http

Я поправлю, но наверно чуть позже.

Upd: починил.

OpenMapTiles присвоит таким частям высоту по умолчанию в 5 метров.

Теоретически, можно представить себе кирпичный дом с деревянной террасой, всё высотой в 1 этаж. Тогда целью разбиения здания на части может быть указание разных material/roof:colour/ещё чего-то. При отсутствии высотных тегов на частях логично их брать с контура building. Хотя, поскольку очень вероятно, что эти теги просто забыли проставить, думаю, такая ситуация заслуживает статуса warning.

1 Like

@alexey_zakharenkov теоретически оно может и так. Но практически обычно всё гораздо хуже.

Нету на таких партах (в их массе) ни roof:material, ни roof:colour ни ещё чего-то. См например: Relation: 3368594 | OpenStreetMap

F4 от такого неиллюзорно плохеет.

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

Спасибо!
Не нашел Павловского, Екатерининского дворцов и прочих зданий в парках Пушкина и Павловска

Это какая-то феерическая бага :slight_smile:

В используемых валидатором границах регионов Пушкинский район потерялся, не попал ни в Спб, ни в Ленобласть.

Кто-нибудь знает, как в 2024 году простым способом получить poly-файлы для административных границ из OSM?

По id отношения: https://polygons.openstreetmap.fr

1 Like

Разобрался. Бага еще более феерическая чем я думал. Подхватывается полигон города Санкт-Петербург (Relation: ‪Санкт-Петербург‬ (‪421007‬) | OpenStreetMap), куда Пушкинский район не входит. А подхватывается он потому, что на нем есть тег ISO3166-2.

Этот тег (ISO3166-2=RU-SPE) там явно лишний, потому что стандарт ISO 3166:2 устанавливает подразделения стран на регионы первого уровня, в случае РФ – на субъекты федерации.

Кто у нас тут с Питера, примите меры пожалуйста. :slight_smile:

Еще пример бреда – не существующий код RU-EAO на Эвенкийском районе (Relation: ‪Эвенкийский район‬ (‪1164668‬) | OpenStreetMap)

Выходит, я из Питера. А ещё из Москвы (тоже удалил тег ISO3166-2 с города) и эвенок заодно.
Вот беларусом и казахом уже стесняюсь себя назвать, хотя Минск и Астана тем же страдают.

2 Likes

@alexey_zakharenkov спасибо.

Перезапустил валидатор, завтра к вечеру увидим что получится.

@vonrockos прорезались Павловский и Екатерининский дворцы, и даже заняли заслуженное место в топе.

https://3dcheck.zkir.ru/RU-SPE/R1759666.html

Проверяйте.

Отлично, спасибо!

1 Like

Прикрутил листалку, кажется должно стать поюзабельнее.

Прикрутил листалку, кажется должно стать поюзабельнее.

2 Likes

Поскольку валидатор стал обновляться регулярно (раз в сутки), добавил страницу со списком свежеизмененных зданий: Валидатор 3D:RUS_LATEST, так что можно наблюдать за биением жизни (или ее отстутствия).

Что конкретно изменилось, к сожалению не показывается, это слишком сложно для меня, да и лениво. Хотя если у кого есть готовый компаратор осм-файлов на питоне, буду благодарен))

Новые большие обновления!

1-е: “всё по-русски”
Все ошибки теперь показываются на русском языке, надеюсь так будет понятнее.

2-е: “новые проверки”
Добавились новые ошибки, например несоответствие высоты здания, указанного на нем самом, и высоты определенной по его частям. Все любители использовать контур здания в качестве “базы” с меньшей высотой теперь будут видны.

3-е: “типология зданий”
Из списков зданий я убрал цвет и материал оттделки, но зато добавил Тип здания, взятый из тега building, с определенными упрощениями. Кажется, что тип зданий, да еще на русском языке, нигде больше не показывается.

Предполагается, что building=* указывает на первоначальное предназначение здания, отражающееся в архитектуре. Это предназначение не может быть просто так изменено, без серьезной перестройки. Например, планетарий невозможен без купола, театр без вешалки, школа без учебных классов. Для культовых зданий указывается конфессия, из тегов religion и denominaiton, потому что конфессия влияет на стиль здания (например, протестантские церкви с большей вероятностью (нео)готические, чем православные).

Теги building=public, building=civic, building=commercial, building=government, building=historic кажутся совершенно бесполезными, поскольку они не имеют отношения к архитектуре, и, кроме того, они даже не используются последовательно. Сколько угодно правительственных зданий с building=office, а building=commercial – это вообще неизвестно что.

4-е: “на стиле”!
Стиль здания теперь тоже показывается на русском языке. Стали лучше видны приколы автоматического классификатора, когда он применяет переодизацию к чему-то не тому.
Например, крейсер “Аврора” получил псевдорусский стиль. :slight_smile:

Ясно что, что-то не жилое.