OpenStreetMap Forum

The Free Wiki World Map

You are not logged in.

#76 2018-10-03 23:57:49

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

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

Something B wrote:

роль "этого специального тега" играет level

И делает это из рук вон плохо.

Something B wrote:

и играл изначально!

С чего вы это взяли?
Зато layer успешно применяется и не имеет ни логических, ни проблем верифицируемости (поскольку берётся конкретное относительное взаиморасположение, а не сферически подсчитанные этажи в вакууме). Прежде, чем что-то считать — надо иметь внятную точку отсчёта (которая для вашего видения level на практике не прослеживается от слова «совсем»).

Offline

#77 2018-10-04 00:02:51

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

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

LLlypuk82 wrote:
Something B wrote:

роль "этого специального тега" играет level

И делает это из рук вон плохо.

Something B wrote:

и играл изначально!

С чего вы это взяли?
Зато layer успешно применяется и не имеет ни логических, ни проблем верифицируемости (поскольку берётся конкретное относительное взаиморасположение, а не сферически подсчитанные этажи в вакууме). Прежде, чем что-то считать — надо иметь внятную точку отсчёта (которая для вашего видения level на практике не прослеживается от слова «совсем»).

Вы или не понимаете принципов lndoor tagging, или просто троллите. Видение не "мое", а общепринятое Посмотрите страницы вики по lndoor tagging.

Offline

#78 2018-10-04 00:08:06

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

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

https://wiki.openstreetmap.org/wiki/Sim … or_Tagging Там всё подробно расписано, даже схемы есть!

Offline

#79 2018-10-04 06:21:05

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

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

Есть две "нумерации",
1) для поддержания внутренней связи между объектами, то есть привязки объектов к одному level. Тут номер не очень важно как считать, отчего бы и не с нуля, главное, чтобы не было расхождений у разных объектов на одном этаже.
2) для пользователей, та, что пользователи видят на планах зданий, кнопках лифта. Тут вообще могут быть не только номера, но и буквы и т.п.

level:ref=*     the number or code of the level. This models the level numbering scheme as it is displayed in the building
itself, e.g. on floor plans or elevator buttons, which may be different from the level=* value.

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

Online

#80 2018-10-04 06:30:13

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

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

LLlypuk82 wrote:

И делает это из рук вон плохо.

Вполне нормально, первый этаж над землёй нулевой, выше него в положительную сторону нумеруются, ниже - в отрицательную. Алгоритм прост до безобразия, или есть кто его не может понять?.
А надписи на этажах это в другой тег. В итоге схема позволяет пользователю показать приемлемую схему с сортировкой по этажам.

Машинное; Человеческое
3 -> M
2 -> 3
1 -> 2
0 -> P
--------
-1 -> G
-2 -> G2

Offline

#81 2018-10-04 14:02:26

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

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

wowik wrote:

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

Совершенно справедливое замечание. И эти считалки «от земли» (абсолютно бессмысленные в данном контексте) спутали все карты в итоге.

freeExec wrote:

В итоге схема позволяет пользователю показать приемлемую схему с сортировкой по этажам.

Проблема в том, что изначально не было такой (раздельной) схемы, не было level:ref. И по факту люди отмечали интуитивно понятные (в каждой местности по-своему, но смысл вкладывали один и тот же) обозначения этажей. Поэтому считаю нелогичным и чрезмерно трудоёмким перетегирование значений level для относительного ранжира (выше/ниже) с плясками «от земли»+введение нового тега сугубо для маркировки, в то время как данные уже внесены по маркировке и осталось добавить уже существующий собственно для таких же (выше/ниже) целей тэг layer.
И очень важным нахожу отказ от выискивания уровней земли (вообще какая-либо концентрация внимания на этом вредна) при получении данных для заполнения тега level или layer.

Last edited by LLlypuk82 (2018-10-05 13:40:10)

Offline

#82 2018-10-05 08:55:32

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

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

LLlypuk82 wrote:

Поэтому считаю нелогичным и чрезмерно трудоёмким перетегирование значений level для относительного ранжира (выше/ниже) с плясками «от земли»+введение нового тега сугубо для маркировки, в то время как данные уже внесены по маркировке и осталось добавить уже существующий собственно для таких же (выше/ниже) целей тэг layer.

Скажите это разработчикам lndoor-проектов.

LLlypuk82 wrote:
wowik wrote:

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

Совершенно справедливое замечание. И эти считалки «от земли» (абсолютно бессмысленные в данном контексте) спутали все карты в итоге.

Разделение этажей на подземные и все остальные (хотя-бы условно) является осмысленным: если в здании есть подвал, у него level = -1, а этаж выше level = 0; если подвала нет, нижний этаж level = 0, этаж выше level=1, еще выше level = 2, и т.д. Разве не очевидно?

LLlypuk82 wrote:

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

Вы предлагаете записывать произвольные значения с табличек в тег, где должны быть только числа. Это аналогично highway = улица Иванова. На табличках же нет resedential!

Last edited by Something B (2018-10-05 09:47:32)

Offline

#83 2018-10-05 09:11:52

fserges
Member
From: St.Petersburg/Russia
Registered: 2010-11-08
Posts: 3,785

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

В некоторых странах, например, нет 13-го этажа. Т.е. вычисляемый от земли номер этажа не всегда соответствует табличке этажа. https://en.wikipedia.org/wiki/Thirteenth_floor - тут описаны вырианты обозначения. У нас такой ерунды нет, но ОСМ проект международный и приходится заморачиваться и на такие вещи.


Бывший участник ОСМ

Offline

#84 2018-10-05 09:31:23

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

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

fserges wrote:

В некоторых странах, например, нет 13-го этажа. Т.е. вычисляемый от земли номер этажа не всегда соответствует табличке этажа. https://en.wikipedia.org/wiki/Thirteenth_floor - тут описаны вырианты обозначения. У нас такой ерунды нет, но ОСМ проект международный и приходится заморачиваться и на такие вещи.

есть такой костыль, non_existent_levels = *. Туда пишутся пропущенные номера этажей, через точку с запятой. Если Вы желаете проставлять нумерацию с единицы, пожалуйста ставьте non_existent_levels = 0. Но не проставляйте level = подвал, даже если есть табличка с такой надписью, пожалуйста! В идеале будет проставление и level, и level:ref. Например:
level = 0,1,2,3,4,5
level:ref = 0,1,2,3,5,6
В данном примере этаж #4 исключен из  нумерации на табличках.

Last edited by Something B (2018-10-05 09:41:27)

Offline

#85 2018-10-05 13:50:49

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

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

Something B wrote:

Разве не очевидно?

Очевидно то, что для

Something B wrote:

показывать планы этажей в виде стека слоев и перебирать их вверх/вниз.

нет никакой необходимости бегать вокруг здания и определять «землю» (а потом привязывать к ней иерархию этажей). Это само по себе нетривиальная задача в ряде случаев. А достаточно для этого указать layer, который присваивается по принципу «число больше/меньше<->этаж выше/ниже», что можно легко проверить на месте и внести/исправить данные. Напрочь выбросить из головы «уровень земли» (ибо это корень путаницы и неверифицируемости, к тому же).

Something B wrote:

Скажите это разработчикам lndoor-проектов.

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

Offline

#86 2018-10-05 14:35:14

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

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

Для меня определение "земли" - тривиальная задача в 99% случаев. Свои мысли Вы до меня донесли, но моя позиция не поменялась.
Прямое назначение level = нумерация этажей, а не занесение обозначений с табличек и лифтовых кнопок. Напротив, для внутренних обозначений этажей существует level:ref = *.

Offline

#87 Today 13:39:14

batyrmastyr
Member
Registered: 2018-06-27
Posts: 6

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

Something B wrote:

level = * унифицированное упорядоченное обозначение этажа.

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

Я вот знаю как минимум один ТЦ в который войти можно со стоянки (-2 этаж), с -1 этажа и с первого (нулевого этажа нет). Все они "на уровне земли", просто уровень понижается. Заставлять всех помнить, что -2 этаж это level=0 удел мазохистов, а лепить пару тегов на каждую точку внутри - лишняя работа и бессмысленное дублирование.

Something B wrote:

Прямое назначение level = нумерация этажей

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

Something B wrote:

Отношения не имеет. Но:
( 1) в building:levels учитываются все неподземные этажи;
(2) нижний неподземный этаж считается как level = 0.

Т.е. для наземных порядок уже есть building:levels и человеческих этажей более чем достаточно. Если заглянуть в Relations/Proposed/Level_Map, то можно увидеть levels (такой же, как building:levels, только для всех этажей и с парой малополезных плюшек).
Казалось бы, для полного счастья нужно только указать, какой из этажей считать за первый и всё, можно даже "несуществующие этажи" удалять без проблем, даже объём можно нарисовать.

Something B wrote:

К сожалению, туда пихают что-попало.

Это уже вина авторов Simple Indoor Tagging - они либо не прочли четыре имевшихся тогда стандарта, либо решили всем подпакостить, но в трёх предложениях уже использовали тег level, но не требовали наличия нулевого этажа. Да и сейчас по Indoor_Mapping первый этаж можно называть первым: "in some cultures base level is indicated by level 0, in other cultures ground floor is level 1 (or A)".

Как по мне, в "сишных этажах" смысла и логики ещё меньше, чем в использовании what3words и гугловых плюскодов вместо стандартных координат.

Last edited by batyrmastyr (Today 13:42:07)

Offline

#88 Today 13:45:54

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

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

Допустимо нумеровать этажи  с единицы (с простановкой non_existent_levels = 0). Проблемы начинаются тогда, когда пишут нечисловые значения в level=*, например "level = подвал", потому что "так на табличке/кнопке лифта".
P.S. за центральным входом не может быть -1 этаж, минимум нулевой (или первый, если так нравится) - отрицательные номера могут быть только у подвальных этажей. Исключение может быть только тогда, когда центральный вход ведёт в подвал.

Last edited by Something B (Today 14:20:44)

Offline

#89 Today 13:50:39

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

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

batyrmastyr wrote:

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

Великолепная аналогия! Именно это и предлагается делать с level (который следует отображать в свойствах и делать это адекватно). А для порядка следования давно есть layer (который показывать никому не надо, а только учитывать при рендеринге, и определяется он на раз-два).

Last edited by LLlypuk82 (Today 13:53:19)

Offline

#90 Today 13:54:42

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

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

LLlypuk82 wrote:
batyrmastyr wrote:

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

Великолепная аналогия! Именно это и предлагается делать с level. А для порядка следования давно есть layer.

осмелюсь предположить, что автор amenity = Дом культуры (sic!) мог рассуждать так же.
P.S. Желаете предложить альтернативное применение для level=* — пишите пропозал. Или хотя бы в профильный раздел этого форума.

Last edited by Something B (Today 16:29:12)

Offline

#91 Today 15:40:58

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

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

На что хочется обратить внимание. Indoor tagging будет работать при условии наличия в level=* только чисел, не букв. Порядок нумерации - вещь условная. Нумерация может начинается и с "1", и с "-2" (как в примере выше). Но номера должны быть числами. level=1, level=-2 — пожалуйста. level=стоянка, level=подвал - это как "highway = улица Иванова".

Last edited by Something B (Today 16:26:56)

Offline

#92 Today 16:31:16

pfg21
Member
From: Чебоксары
Registered: 2012-10-18
Posts: 3,061

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

а если имя этажа текстовое ??
автостоянка находится на цокольном этаже, и при этом он не имеет числовых определений ??
К примеру, если показать пользователю в параметре пои "этаж - цокольный" он будет общаться с обслуживающим персоналом на одном языке - т.е. употребляя понятное им название "цокольный этаж" вместо -1 или что пододбное.

читаем https://en.wikipedia.org/wiki/Storey#Numbering
смотрим красивую фотку реальной ситуации
50px-Odd_lift_buttons.jpg

Offline

#93 Today 16:33:44

batyrmastyr
Member
Registered: 2018-06-27
Posts: 6

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

Something B wrote:

Indoor tagging будет работать при условии наличия в level=* только чисел

Простите, но вы путаете Indoor tagging и Simple Indoor Tagging. В нормальной схеме требование только одно: "номера должны идти по возрастанию".

Indoor tagging wrote:

<n> - обычно целое число из одной-двух цифр, но может встречаться комбинация из цифр и букв (e.g. A,B,C,1,2,3).
иногда этажи обозначают дробным числом (e.g. level=2.5) в качестве "промежуточных этажей" (например, лестничные пролёты).

В английской то же самое написали ещё в 2010 году, почти сразу после создания статьи.

Ладно, давайте сделаю обзор остальных схем:

Relations/Proposed/Level wrote:

Relation
    Type=site
    site=level
    level=-1 (number of basement floor)
    name=SubwaystationName,Levelname
...

While the layer tag is a rule for the renderer which object shall be printed on top, the level represents a floor.

"Пиши этаж в level", никаких ограничений по значениям.

User:Jongleur/MultiLevel_Building_Shapes wrote:

building:levels=n The number of the level above the highest level of the building.
building:min_level=m The number of the lowest level of the building. If not specified, defaults to 0.
building:ground_level=g The number of the level which is the "ground floor" of the building. If not specified, defaults to 0.

n, m, and g need not be integers


A house with two levels total, one of which is partially below ground. building:levels=2 building:ground_level=0.5 with building=entrance building:levels=0 nodes for entrances to the lower floor with stairs tagged on the footway leading to it

Видимо, это дедушка текущего building:levels. Как-то поддерживался четырьмя рендерами.


Relations/Proposed/Level_Map wrote:

The most important tag in a level map relation is the levels=* tag. Its content defines the (short) names of all levels and their order, from bottom to top. For example, the relation for a simple four storey building with a basement in England would be tagged "levels=B;G;1-3" (for "Basement", "Ground floor", "1st", "2nd" and "3rd". The level names should reflect the local signs, such as buttons in the elevator. So same building in Germany would probably be tagged "levels=U;E;1-3".

A general level height information (a relative vertical position, not the vertical size of an object) can optionally be added, separated by an "@" sign: "levels=B=Basement@-4;G=Ground floor@0;1@5;2@9;3=Roof garden@13". 0 is the street level (if available) or the main ground level otherwise. All height details are in metres if not coded otherwise ("@10 ft"). This general height information can be overriden in a level assignment, so levels don't need to be absolutely flat.

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

Proposed_features/indoor wrote:

0b7057bac2.png

Тут уж простите, немецким не владею, ограничусь картинкой на которой явно видно отношение "уровень" с названием для человека. Да, в теге level число, но тут соотношение "сортировка - название по плану" задаётся один раз, деление что есть что очевидно и не вызывает вопросов, его можно адаптировать через name:lang.

Итого: 4 схемы согласны на truth from the ground в теге level, две хотят видеть там числа (но одна явно отделается от всех чтобы ничего не сломать). Пока только SITхи вмешиваются в нормальную работу других схем.

Last edited by batyrmastyr (Today 16:34:02)

Offline

#94 Today 17:14:53

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

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

pfg21 wrote:

а если имя этажа текстовое ??
автостоянка находится на цокольном этаже, и при этом он не имеет числовых определений ??
К примеру, если показать пользователю в параметре пои "этаж - цокольный" он будет общаться с обслуживающим персоналом на одном языке - т.е. употребляя понятное им название "цокольный этаж" вместо -1 или что подобное.

так есть же level:ref = *. Значения произвольные (в т.ч. текст).

Offline

#95 Today 17:25:21

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

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

batyrmastyr
Только SIT считается актуальной схемой. Подтверждение https://wiki.openstreetmap.org/wiki/Indoor_Mapping

Last edited by Something B (Today 17:35:06)

Offline

Board footer

Powered by FluxBB