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

эта информация дает возможность показывать планы этажей в виде стека слоев и перебирать их вверх/вниз. Пример - Indoor mode в Vespucci.

На сложном рельефе - относительно нижней точки рельефа. Форма здания в данной схеме ни на что не влияет, т.к. учитывается вертикальный разрез. Наличие/отсутствие окон не имеет значения в данной схеме.

Это будет работать корректно только при условии точной информации и возможности её верификации. Но в реальных условиях здания имеют сложную конфигурацию (в том числе и взаиморасположение этажей с учётом их высоты, даже если их основание на одном уровне), а рельеф не отстаёт по сложности. Поэтому о точности и верифицируемости даже заикаться не стоит. Об адекватном применении, соответственно — тоже. Так что существующие Indoor-сервисы лишь имитируют (иногда корректно, при тепличных уловиях или удачном совпадении) послойность планов этажей.

Форма и окна влияют на физическую возможность определить точку отсчёта (раз вы настаиваете на счёте).
Ладно, заканчиваю с объяснением достаточно очевидных и разжёванных тут вещей. Вам удачи с Indoor-левелингом. Поймите, наконец: не получится у вас никакого левелинга на сложном рельефе (почему — на разные лады тут объяснялось и не раз).

Большинство зданий отвечают принципам послойности. Вы приводите некий рафинированный случай, далекий от реальности. (Если такие необычные здания и бывают, то очень редко). Никто не требует от какой-либо схемы тегирования покрывать все 100% случаев. Для условных 99% зданий эта схема подходит. Локальные обозначения можно наносить независимо от данной схемы, в level:ref = *.

такие здания кривой формы без дверей и окон, стоящие на крутом склоне мне, к счастью, не попадались :slight_smile: В остальных случаях определить точку отсчета (хотя-бы условно) можно. Спасибо за дискуссию.

господи давно надо было глянуть страничку RU:Key:level
там красивый абзац от AMDmi3 начинающийся со слов “Эта схема неработоспособна…” от 2013 года. еще один гвоздик в гроб это тега пятилетней давности.
расходимся господа.

Level indicates the floor level, can be used for ways and amenities that are tied to a floor level of a multilevel building [1]
Вот для чего британцы (или кто там) придумывали этот тег. Для такой привязки используется исключительно маркировка по месту. Всяческие способы исчисления (от земли, неба, ещё чего-то) только в отдельных случаях и в отдельных странах могут совпасть с данным методом привязки (когда символы совпадут).
Это, видимо, дошло до западных коллег и они добавили на страницу [2] с красивыми картинками ещё и level:ref. Единственное, чего они не поняли — то, что тогда надо заодно перетегировать и все level на level:ref, но гораздо логичнее и проще привести страницу справки в адекватное общемировой практике состояние (то бишь универсальное, а не местечковое).
Просто ребята в размышлениях зациклились на том, как они называют и считают этажи. В то время как это не имеет ровно никакого значения, если мы хотим: смотри первую англоязычную цитату в сообщении (а именно этого мы и хотим, так ведь?).
Уверен, что не найдётся ни одного такого здания, где оказалось бы 2 вида маркировки: один для подсчитанных «от земли» этажей (надо, якобы, обозначить level=0, level=-2 и т. д.), а второй — для принятого обозначения на объекте (тут уже, якобы, следует применить level:ref=K, level:ref=E, level:ref=3 и т. д.)
А всё, что ребятам надо было сделать — написать: «если вы хотите внести значение тега level, то зайдите внутрь и прочитайте табличку». Но их переклинило на граунд, сэконд и прочий бэйсмэнт (к делу не имеющий отношения). Отсюда и вся эта чехарда.

Тогда ответь на вопрос, этаж K выше или ниже этажа 3 и где находится этаж E ?

А вот для этого и нужен специальный тег, роль которого вполне успешно отыгрывает layer, который учитывает только взаиморасположение объектов.

а большинство то не знает как правильно :slight_smile:

роль “этого специального тега” играет level = * (и играл изначально!). К сожалению, туда пихают что-попало.

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

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

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

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

Есть две “нумерации”,

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

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

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


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

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

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

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

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

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

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