OpenStreetMap Forum

The Free Wiki World Map

You are not logged in.

#26 2016-10-08 20:55:42

LLlypuk82
Member
From: Витебск (Беларусь)
Registered: 2012-12-23
Posts: 2,373
Website

Re: Поставим точку в вопросе «level=*»

wowik wrote:

Во многих странах этажи нумеруются от нуля.
Наш первый - ground floor, второй - first floor.
Нам не повезло, мы не в тренде.

Так им и флаг в руки. Они ж не идиоты и не обозначают свой ground floor «1» (потому что принято у них «0»). Сгоряча кто-то там придумал, что, дескать, берём значение в привязке к уровню «земли» методом подсчёта (на кой это было приплетено — загадка для меня) (в OSM это означает «привязка ни к чему, от балды»), потому что у него не хватило соображалки проверить, а соответствует ли такое «обозначение» (потому что оно уже становится неким вычислением, судя по указанному методу!) во всём мире (по странам) и повсеместно (локально) тем картинкам на планах/схемах/реальных_этажах_и_уровнях? Оказывается — нет. Но документация уже высечена в граните и не подлежит прикосновению всяких там. Ибо надо упереться рогом в этот гранит или биться о него головой, но не признавать разжёванной тут простой вещи: значение level ни при каких обстоятельствах не должно быть вычисляемым, потому что принимает в ряде случаев нечисловые, т. е. невычислимые значения. Берётся же оно в готовом виде по месту применения, что автоматически снимает все противоречия (попутно исключая всякий бред с уровнями земли, моря и стратосферы) и даёт адекватную информацию для реального использования в приложениях (что уже есть, кстати).
Итак, необходимо: исправить вики-страницу (как минимум — русскую) и перевод подсказки-рекомендации в iD.

Offline

#27 2016-10-08 21:29:41

d1g
Member
From: not using forum
Registered: 2010-01-23
Posts: 2,380
Website

Re: Поставим точку в вопросе «level=*»

LLlypuk82 wrote:

Ибо надо упереться рогом в этот гранит или биться о него головой, но не признавать разжёванной тут простой вещи: значение level ни при каких обстоятельствах не должно быть вычисляемым, потому что принимает в ряде случаев нечисловые, т. е. невычислимые значения. Берётся же оно в готовом виде по месту применения, что автоматически снимает все противоречия (попутно исключая всякий бред с уровнями земли, моря и стратосферы) и даёт адекватную информацию для реального использования в приложениях (что уже есть, кстати).

Что значит вычислимый?

Если 13 этажа "нет в здании", значит после 12 идёт 14.

Про системы нумерации всё на Википедии было сказано
https://en.wikipedia.org/wiki/Storey#Co … signations

NA convention вообще различается сама с собой (и с 0, и с 1)

Есть два тега
building:levels=* - кол-во этажей
level=* - что здесь вводится?


LLlypuk82 wrote:

Итак, необходимо: исправить вики-страницу (как минимум — русскую) и перевод подсказки-рекомендации в iD.

Offline

#28 2016-10-08 21:38:41

d1g
Member
From: not using forum
Registered: 2010-01-23
Posts: 2,380
Website

Re: Поставим точку в вопросе «level=*»

LLlypuk82 wrote:

Итак, отменяем «игру в считалочки» и начинаем адекватно применять значения с табличек на местности. Это могут быть не только цифры (НЕ ЧИСЛА), но и буквы (различных алфавитов), и буквенно-цифровые комбинации.

Нужно дописать что паркинговые этажи могут быть со своими номерами, отличными от 0, 1, 2:

LL3, LL2
B3, B4

На английской Википедии (не на вики OSM) как раз всё разжевано.

На OSM wiki нужно написать, что первый наздемный этаж (который на уровне с землёй, "Ground level storey") в OSM принято считать 0 (level=0 у объектов), если на местности нет табличек с номером или идентификатором этажа.

На OSM wiki не сказано как тегировать метки этажей (11, 12, 14). Simple indoor страница говорит что level=* порядковые (11, 12, 13 или 10, 11, 12)

Last edited by d1g (2016-10-08 22:33:46)

Offline

#29 2016-10-08 22:08:00

d1g
Member
From: not using forum
Registered: 2010-01-23
Posts: 2,380
Website

Re: Поставим точку в вопросе «level=*»

freeExec wrote:

По-сути тег фуфло, как в торговом центре определить этаж над землёй. Ведь даже окна нет чтобы выглянуть.

Не все торговые центры имеют фунциональные этажи на несколько пролётов (строительные).

Касательно "определенить этаж над землёй" я бы вообще не заморачивался.

Если на "цокольный" или подвальный этаж есть вход с земли, то он - 0.

Пологие выезды с парковок не считать за 0. Территория подземного паркинга это скорее всего level=-1, но сам въезд - под вопросом.

Если этажи идут в разнобой, то нужно определить самому где более подходящий "0" этаж (справа сверху) относительно менее спорного 0 (слева, сразу у входа)
https://wiki.openstreetmap.org/w/images … rt.svg.png

Иногда ТЦ довольно тупые и если снаружи 4 строительных пролётов можно отличить, то и внутри 4 разных level=*.


Иногда "не везёт" и ТЦ отделывают так, что не понятно: сколько этажей внутри - по фасаду здания, однако, местный всё так же хорошо определит общее кол-во этажей. Отсчитать от 0 нужную цифорку это мелочи.

Last edited by d1g (2016-10-08 22:10:23)

Offline

#30 2016-10-08 22:23:05

d1g
Member
From: not using forum
Registered: 2010-01-23
Posts: 2,380
Website

Re: Поставим точку в вопросе «level=*»

Не нужно забывать что level=* это уже indoor схема тегирования. indoor в первую очередь нацелен для схем зданий по этажам и навигации.

Грубо говоря level=* нужно тегировать так, чтобы каждый вертикальный срез здания:
1. количество разных level=* - отвечало сколько этажей в этом срезе или вертикальной части здания
2. отвечал какие объекты внутри среза выше других
3. порядковые числа (12, 13, 14; -1, 0, 1), а не метки этажей (12, 14, LL1, LL2) для них - нужен отдельный тег т.к на
http://wiki.openstreetmap.org/wiki/Simp … or_Tagging они не упоминаются, а только простые случаи идут как -1, 0, 1


Возникло недопонимание что level=* должен быть логичен для всего здания одновременно: все level=3 на одном уровне земли - нет, такого не было соглашения, если я правильно всё помню.

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

Last edited by d1g (2016-10-08 22:31:23)

Offline

#31 2016-10-09 01:52:21

LLlypuk82
Member
From: Витебск (Беларусь)
Registered: 2012-12-23
Posts: 2,373
Website

Re: Поставим точку в вопросе «level=*»

d1g wrote:

если на местности нет табличек с номером или идентификатором этажа.

Ничего не указывать — самый оптимальный вариант.

d1g wrote:

Если этажи идут в разнобой, то нужно определить самому где более подходящий "0" этаж (справа сверху) относительно менее спорного 0 (слева, сразу у входа)

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

d1g wrote:

Не нужно забывать что level=* это уже indoor схема тегирования. indoor в первую очередь нацелен для схем зданий по этажам и навигации.

Именно. А что мы имеем в результате плясок с нулями? Чехарду.
Количество знать незачем (и оно получается, при необходимости, из простого сложения разных level или layer).
Данных о срезе никаких не получится, потому что отталкиваемся от «пустоты» в виде несуществующей «нулевой земли» (она есть только в реальности, на рельефе и умозрительно или на планах со срезами и т. п.), грубо говоря, все сооружения «висят на плоскости» и смоделировать нормально в таком 3-d эти уровни не получится. Сегодняшнее OSM 3-d выдаёт лишь приближённое подобие формы здания в отрыве от земли (рельефа). Так что к ней ничего при всём желании привязывать категорически нельзя (по-хорошему), это привязывание ветра солнечным лучом.
Порядок «что над/под чем» можно задавать через layer (тоже, кстати, нетривиальная задача в нестандартных условиях, но это чисто техническая, сортировочная информация для «раскидывания» этажей по условной шкале «выше/ниже» и привязки к ним объектов).

d1g wrote:

Возникло недопонимание что level=* должен быть логичен для всего здания одновременно: все level=3 на одном уровне земли - нет, такого не было соглашения, если я правильно всё помню.

Для всего этажа (и он такой всегда один, и обозначен по всему зданию одинаково). На фига козе баян кому-то знать уровень_над_плоскостью_земли_в_данной_части_здания, как предлагается это сейчас?
Но прикол-то заключается в том, что для indoor там, где с «0» считают (и обозначают!) — всё прекрасно ровно до тех пор, пока не появляются на сцену всякие LL, GR, B1 etc. Никто там, просто, лбом больно не «ударился» об эту «новость», потому что мало практикуется сама схема indoor с многоуровневыми интерьерами. А «классические» (для них) «параллелепипеды» выглядят красиво. То же место в гугле можно заценить, кстати.

Last edited by LLlypuk82 (2018-10-03 14:14:43)

Offline

#32 2016-10-09 03:37:05

LLlypuk82
Member
From: Витебск (Беларусь)
Registered: 2012-12-23
Posts: 2,373
Website

Re: Поставим точку в вопросе «level=*»

А теперь смотрим на обозначение:
Бразилия1
Бразилия2
USA1
USA2
Австралия1
Австралия2

Last edited by LLlypuk82 (2018-10-04 15:48:35)

Offline

#33 2016-10-10 21:11:15

LLlypuk82
Member
From: Витебск (Беларусь)
Registered: 2012-12-23
Posts: 2,373
Website

Re: Поставим точку в вопросе «level=*»

Также хочу, чтобы была полная ясность в текущем положении дел. Надо понимать и не забывать, что в реальности, на местности, существуют различные уровни земли (по отношению к постройкам, как минимум) в зависимости от рельефа. В виртуальности (OSM) существует только один «уровень земли» (уровень не понятно чего, если честно).
Из-за этой особенности и при существующем подходе априори невозможно построение правильной модели здания, стоящего не на ровной поверхности, а с перепадами высот «нулевого уровня». Части такого здания попросту не «срастутся» (в OSM-модели) друг относительно друга и будут перекосы (смещения), не соответствующие действительному взаимному расположению. И эти перекосы будут тем больше, чем больше перепады высот настоящего рельефа.
По этим же причинам и в этих же условиях заведомо невозможно согласование схемы Simple 3D buildings и Simple Indoor Tagging
Simple Indoor Tagging также становится неадекватной при наличии иных обозначений (как можно видеть из примеров выше).
Всё описанное — отрыв от действительности и полёт в облаках, который приятен до тех пор, пока не упираешься в «потолок реалий». Иными словами, это не рабочие и не согласующиеся подходы в целом. И они не рабочие, взятые по отдельности. Есть только иллюзия работоспособности, созданная на базе «отдельных макетов» (будь то 3D или indoor) и при выполнении определённых условий («тепличных»).
Это надо исправлять?

Last edited by LLlypuk82 (2016-10-10 21:36:43)

Offline

#34 2016-10-10 22:39:21

wowik
Member
From: Zelenograd
Registered: 2009-09-29
Posts: 7,932

Re: Поставим точку в вопросе «level=*»

Надо идти не от сферического коня, а от конкретных задач.
Хочу сделать план второго этажа — делаю выборку всего с level=1.

Соответственно всё, что должно попасть на этот план, должно быть помечено с помощью level=1.
Если что-то не должно попасть, то значит у него level другой.

Если в двух частях здания, сдвинутых друг относительно друга по вертикали, "этажи" воспринимаются людьми как один, пусть и не ровный, то значит и мапить его надо единым level, даже если "уровень земли" у какой-то части окажется на третьем этаже.

Offline

#35 2016-10-10 22:43:26

freeExec
Moderator
From: Ульяновск,Модератор всех слоёв
Registered: 2012-07-31
Posts: 7,597

Re: Поставим точку в вопросе «level=*»

Уж определитесь, пляшете от "этаж" воспринимается, или от уровня земли, а то двойные стандарты и все дела. Ну и интересно, что делают буржую когда этажей этак 50+, с земли же не видно?

Offline

#36 2016-10-10 22:47:33

wowik
Member
From: Zelenograd
Registered: 2009-09-29
Posts: 7,932

Re: Поставим точку в вопросе «level=*»

freeExec wrote:

Уж определитесь,

Это же OSM, тут сколько людей, столько мнений плюс один.

Offline

#37 2016-10-11 02:12:57

LLlypuk82
Member
From: Витебск (Беларусь)
Registered: 2012-12-23
Posts: 2,373
Website

Re: Поставим точку в вопросе «level=*»

Продолжу smile
Факт № 1: Уровня земли (или рельефа поверхности Земли) в OSM нет (т. е. способа оцифровки через некое значение или их набор в БД)
Отсюда факт № 2: Забываем обо всём, что имеет попытку отталкиваться от «ничего» (см. факт № 1)
Факт № 3: С этим надо считаться и трезво смотреть на вещи.
Всё, что нам по силам (как мне видится) пока что — взаимная относительная привязка элементов (имеющих внятное обозначение, сопоставимое с реальными сущностями). Также, как относительное расположение проекций объектов на условную поверхность Земли (попросту — «домиков» и т. п.)
Поскольку разумно оперировать осязаемыми категориями, то для level напрашивается роль метки (под названием «этаж» или «уровень»), показывающей на местности и в устройстве, на каком этаже размещён объект. Значение берётся из реального мира с соответствующих табличек/табло/и т. п.
Для indoor важно взаимное расположение level-ов, для этого подойдёт, например, layer со значениями в виде порядковых числительных от 1 до бесконечности (считая с низу здания, допустим). Так мы можем получить условные плоские срезы-планы этажей в правильном схематическом порядке и с адекватной маркировкой. При этом подходе мы опираемся на реальное взаимное следование этажей здания и реальную их маркировку. Более того, можно вообще проставлять значения layer строго относительно друг друга (полностью по аналогии с эстакадами на дорожных развязках), тогда нет необходимости знать, где же там самый нижний этаж и сколько их всего. Если (при уточнении данных) появляется ещё один нижний этаж/-жи (что весьма маловероятно), то придётся прибегнуть к шкале с нулевыми или отрицательными значениями, чтобы не ворошить уже готовое и не нарушать последовательность.
С 3-d всё гораздо печальнее, но об этом можно поговорить в соотв. теме.
P. S. Ориентироваться надо не на мнения, а на факты, отражающие рассматриваемую ситуацию. Тогда возможны конструктив и подвижки.

Last edited by LLlypuk82 (2018-10-03 14:19:52)

Offline

#38 2016-10-11 05:49:55

wowik
Member
From: Zelenograd
Registered: 2009-09-29
Posts: 7,932

Re: Поставим точку в вопросе «level=*»

Не стоит layer впутывать. Это же просто порядок рисования.

Last edited by wowik (2016-10-11 05:55:19)

Offline

#39 2016-10-12 00:59:29

LLlypuk82
Member
From: Витебск (Беларусь)
Registered: 2012-12-23
Posts: 2,373
Website

Re: Поставим точку в вопросе «level=*»

wowik wrote:

Не стоит layer впутывать. Это же просто порядок рисования.

Ага, значит порядок взаимного расположения объектов этот тег не показывает? А порядок рисования от чего зависит и что показывает сама отрисовка — можно озвучить?

Offline

#40 2016-10-12 08:31:14

wowik
Member
From: Zelenograd
Registered: 2009-09-29
Posts: 7,932

Re: Поставим точку в вопросе «level=*»

Внутри одного этажа level может случится несколько layer.

Offline

#41 2017-06-27 17:31:23

Self-Perfection
Member
Registered: 2013-10-12
Posts: 117

Re: Поставим точку в вопросе «level=*»

Hind wrote:

Разумеется, нужно разделять надпись на табличке и этаж, указанный для совместимости с 3D buildings.
Но какой писать куда - вопрос хороший.

Судя по практике, в level чаще пишется физический этаж, который совместим с тридэдомиками, и вообще, нечисловых значений там исчезающе мало. Между тем, у меня в доме есть этажи P2, P1, L, 1, ..., при этом P1 это уровень земли, где парковка и магазины, жилое лобби находится на одноэтажном стилобате, а первый этаж физически по факту вообще третий.

Поэтому человекочитаемую надпись (на этаже, у кнопок лифтов) предлагается писать в отдельный тег. В level:ref, level:sign или ещё как.

Вот глас разума! Мне кажется тут возможен отличный компромисс: level:ref для указания надписи, на которую нужно ориентироваться человеку (надпись на кнопке лифта), level - для указания этажа в геометрическом смысле, в большинстве случаев в России level + 1 == level:ref. При этом стоит рекомендовать в первую очередь указывать level:ref т.к. используемое людьми название этажа важнее к хранению (этот пункт впрочем спорен) и его проще определить. Если случай сложный и не понятно, какой нужно указывать level в данной ситуации, то и фиг с ним.

Какие-нибудь соображения мешают остановиться на такой трактовке? Может стоит задокументировать в русскоязычном разделе вики?

Last edited by Self-Perfection (2017-06-28 08:33:59)

Offline

#42 2017-06-28 07:29:41

Владимир К
Member
Registered: 2015-05-22
Posts: 448

Re: Поставим точку в вопросе «level=*»

а я бы предложил вместо building:levels использовать нечто с перечислением этажей вроде levels_above_ground=1-10,service,10-24 и levels_under_ground=0,-1,-2. или levels_under_ground=А,B,C. Перечисляем этажи от уровня земли вверх и вних так, как они обозначены в здании. А service, например, будет технический этаж.

Last edited by Владимир К (2017-06-28 07:36:10)

Offline

#43 2017-07-05 18:18:00

LLlypuk82
Member
From: Витебск (Беларусь)
Registered: 2012-12-23
Posts: 2,373
Website

Re: Поставим точку в вопросе «level=*»

Self-Perfection wrote:

level - для указания этажа в геометрическом смысле

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

Offline

#44 2017-07-06 00:20:38

Anton Khorev
Member
From: Санкт-Петербург
Registered: 2011-07-30
Posts: 157

Re: Поставим точку в вопросе «level=*»

Владимир К wrote:

а я бы предложил вместо building:levels использовать нечто с перечислением этажей вроде levels_above_ground=1-10,service,10-24 и levels_under_ground=0,-1,-2. или levels_under_ground=А,B,C. Перечисляем этажи от уровня земли вверх и вних так, как они обозначены в здании. А service, например, будет технический этаж.

Если "вместо", то не выйдет задать этажность, не зная обзначения этажей. Но можно это дополнительно указывать.

Offline

#45 2017-07-06 00:29:28

Anton Khorev
Member
From: Санкт-Петербург
Registered: 2011-07-30
Posts: 157

Re: Поставим точку в вопросе «level=*»

Self-Perfection wrote:

Вот глас разума! Мне кажется тут возможен отличный компромисс: level:ref для указания надписи, на которую нужно ориентироваться человеку (надпись на кнопке лифта) ...

addr:floor мне попадался в существующих данных, level:ref - нет. Если надо будет "этаж" от "уровня" отделить, тогда "level" лучше не писать в качестве части ключа обозначения этажа. addr:floor также подходит как собственно часть адреса.

Offline

#46 2017-07-28 18:42:49

b108
Member
From: Волгоградская область
Registered: 2012-04-08
Posts: 90

Re: Поставим точку в вопросе «level=*»

По-моему, предложение об использовании level:ref=* (и addr:flat) дельное. Это устранит неоднозначность в тех случаях, когда хочется только указать номер этажа POI, и нет цели построить 3D-модель здания. Правда, неоднозначность и level=* всё равно остаётся, и, похоже, мы ещё не раз к этому вернёмся :-)

Offline

#47 2018-10-03 12:11:19

Something B
Member
Registered: 2018-09-05
Posts: 322

Re: Поставим точку в вопросе «level=*»

LLlypuk82 wrote:
wowik wrote:

Во многих странах этажи нумеруются от нуля.
Наш первый - ground floor, второй - first floor.
Нам не повезло, мы не в тренде.

Так им и флаг в руки. Они ж не идиоты и не обозначают свой ground floor «1» (потому что принято у них «0»). Сгоряча кто-то там придумал, что, дескать, берём значение в привязке к уровню «земли» методом подсчёта (на кой это было приплетено — загадка для меня) (в OSM это означает «привязка ни к чему, от балды»), потому что у него не хватило соображалки проверить, а соответствует ли такое «обозначение» (потому что оно уже становится неким вычислением, судя по указанному методу!) во всём мире (по странам) и повсеместно (локально) тем картинкам на планах/схемах/реальных_этажах_и_уровнях? Оказывается — нет. Но документация уже высечена в граните и не подлежит прикосновению всяких там. Ибо надо упереться рогом в этот гранит или биться о него головой, но не признавать разжёванной тут простой вещи: значение level ни при каких обстоятельствах не должно быть вычисляемым, потому что принимает в ряде случаев нечисловые, т. е. невычислимые значения. Берётся же оно в готовом виде по месту применения, что автоматически снимает все противоречия (попутно исключая всякий бред с уровнями земли, моря и стратосферы) и даёт адекватную информацию для реального использования в приложениях (что уже есть, кстати).
Итак, необходимо: исправить вики-страницу (как минимум — русскую) и перевод подсказки-рекомендации в iD.

всё на самом деле просто. Нижний этаж из тех, которые подсчитываются для building:levels = *, отмечается как level = 0.

Offline

#48 2018-10-03 13:26:46

LLlypuk82
Member
From: Витебск (Беларусь)
Registered: 2012-12-23
Posts: 2,373
Website

Re: Поставим точку в вопросе «level=*»

LLlypuk82 wrote:

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

А building:levels является эрзацем (неполноценным, между прочим) для тэга height и с ним есть заморочки (и хитрые обозначения), связанные с пресловутым уровнем земли (которого — напомню: в OSM нет, как сущности, поскольку всё расположено на одной плоскости, как на бумажной карте).

Offline

#49 2018-10-03 13:32:03

Something B
Member
Registered: 2018-09-05
Posts: 322

Re: Поставим точку в вопросе «level=*»

LLlypuk82 wrote:
LLlypuk82 wrote:

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

А building:levels является эрзацем (неполноценным, между прочим) для тэга height и с ним есть заморочки (и хитрые обозначения), связанные с пресловутым уровнем земли (которого — напомню: в OSM нет, как сущности, поскольку всё расположено на одной плоскости, как на бумажной карте).

в OSM нет, но есть в природе.

Offline

#50 2018-10-03 13:38:41

LLlypuk82
Member
From: Витебск (Беларусь)
Registered: 2012-12-23
Posts: 2,373
Website

Re: Поставим точку в вопросе «level=*»

building:levels годится только для того, чтобы нарисовать в 3d окошки в здании и некую усреднённую высоту вывести. Никакого отношения к обозначению level этот тэг не имеет, равно и наоборот.

Offline

Board footer

Powered by FluxBB