Карты OSM для Garmin (osm2mp+cgpsmapper)

Судя по всему, оно уже не за горами…

Вот чтобы он не стал таким, и сделана вики с рекомендациями, выстраданными на основе консенсуса :slight_smile:

Есть действительно объекты, к которым применение жёсткого правила “в name только имя собственное” спорно (по причине того, что непонятно, можно ли считать общеупотребительное название собственным) и по факту не применяется: больницы, школы, университеты и т. п. Но вот с выходами со станций метро прямо и чётко указано, что название станции в name выхода писать не надо. Вроде бы разногласий быть не должно.

Опять же ситуация с пересадками: если через вход можно попасть на 3 станции, какую запишем в name? Ту, что на вывеске? Так это чисто метрополитеновская бюрократия - там написана та единственная станция, к которой по документам относится этот вестибюль. Для пассажира это никакой полезной информации не несёт. Если и отражать внутриметрополитеновские заморочки, то явно в name, а в более специфичном теге.

Вот стоит точка (с именем) на входе в вестибюль станции (а не на входе в подземный переход из которого можно пройти еще на три станции), кому это мешает, зачем убирать. Ну сделали отношения, а старое зачем портить. У многих все настроено работает, нет давай срочно сломаем и пусть народ крутится, а то засиделись.
На ангельской вики сказано не рекомендуется, на русской с правой стороны уточняющие теги name=* (про однозначный запрет ни там, ни там ни слова). Так зачем сносить? Лучше ввести уточнение что ставить на вход в вестибюль станции, а не на вход в подземный переход. И если в других позициях ОСМ России не придерживается иностранных правил, почему здесь нельзя?
Сейчас если отрендерить карту с отношением то из входа в подземный переход который ведет еще на три станции получим или одну точку на первую попавшуюся станцию или затроение точек на все станции (а если еще и переход рендериться …), а ведь не у всех самые мощные планшеты, а и старенькие приборы до сих пор в ходу, а им перегруженную карту ворочать тяжело.

К сожалению, если погружаться в детали, из шкафа начинают вываливаться скелеты.

  1. Переносить все теги не вариант: в отношение могут входить линии, точки, другие отношения с совершенно различными ролями. Что получится, если сделать “все для всех”, предсказать сложно. Даже если для конкретного отношения это будет работать сейчас, никто не гарантирует, что завтра не придумают новую роль для членов отношения, и у нас все вдруг пойдет наперекосяк.
  2. Объект может входить в несколько отношений, причем одного и того же типа.
  3. osm2mp хранит объекты аналогично тому, как это сделано в OSM, т.е. отношение “знает” какие объекты в него входят, а объект “не знает”, в какие отношения он может входить. Операция поиска родителя получается довольно дорогой.

Изначально я предполагал создать некий универсальный action (скажем copy_name_to_entrances), и тогда можно было бы сделать сответствующие правила в конфигах для интересующих отношений, чтобы перенести имя с отношения на всех членов типа entrance. Уперся в то, что osm2mp работает с отношениями несколько иначе, чем с точками и линиями. Вернусь к этому варианту, если будет спрос на подобную штуку.

А пока я добавил кусок кода для обрабоки конкретно отношений public_transport и выходов из метро. Сегодня карты уже собираются с этой опцией. Проблему существования одного входа для двух станций не решал.

Мне кажется этой проблемы и нет, всегда конкретный вход относился к определенной станции, хотя войдя в него можно было попасть и на другую станцию пересадки.

Ну и порядок, наверно)

Да, чего-то я широковато замахнулся :smiley:
И смешал две разных задачи - 1) поиск участника отношения (или вея) по тегам родительского и дочернего объекта и 2) вытаскивание из родительского объекта произвольного значения какого-то тега (в нашем случае речь о name) и присвоение его дочернему.

С первым, кажется, проще должно быть. Как я понимаю, искать нужно не родителя, а наоборот дочерний объект.
В mapcss-стиле для josm это так и работает, я думаю: Childselector

Доброго времени суток! А скачивать с http://garmin.gis-lab.info/# в формате “mp” или обычные куски карт?

В формате IMG, конечно. Речь в инструкции о том, как собрать мапсет из разных карт.
Файл osm.mp создаётся в процессе, это исходник превью-файла для MapSource.

За несколько часов на коленке написал стиль для жосма, все желающие могут включить и опробовать https://josm.openstreetmap.de/wiki/Styles/RU-SubwayEntranceLabeling Из известных багов: берется название из первого попавшегося отношения, а не из всех. Пока не допилят mapcss/josm[1][2] так и будет.
Кому больше нравится в виде запроса в оверпас турбо, есть и такой. В нём выводятся названия всех станций, к которым есть доступ из входа: https://forum.openstreetmap.org/viewtopic.php?pid=684527#p684527
Третий вариант, где это уже реализовано, — свежий османд.

Ну, да. Вы почему-то считаете, что лучше “подкрутить” базу (которая используется не только для карт, но и не для единственного их вида), чем рендер, чтобы получить готовую по вашим понятиям карту. И что 10 раз повторенное выдуманное название “Охотный ряд” в базе это лучше, чем взять его со станции, а потом подставить на выходы в момент вывода данных на карту. “Накостылим данные, чтобы не улучшать рендеры”.

Только в моём примере всё же именно входы в метро, а не в подземный переход. В городской/метрошной навигации им присовены номера (и не присвоены названия). И я почти уверен, что этот “переход” на балансе именно у метрополитена, а не у города. Вы же там сами выше писали перечень, что относится к станции. А теперь у вас “входы с поверхности земли” не часть станций. =/

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

P.S. Прошу прощения за оффтоп. Может эти сообщения про именования выходов в отдельную темы вычленить?

Молодец. Ты наверное программист, а теперь помоги мне и набросай стиль для программы MKGMAP , а то до этого у меня все работало. Но я не программист и иностранных языков не знаю, что бы к автору программы обратиться. Пожалуйста. Я карту на домашнем компьютере собираю, нет у меня арендованных серверов.

А маршрут почему этим способом прокладывается между Москвой и областью в навигаторе, а если клеить куски просто с помощью MapSource или BaseCamp то не может проложить - в чем подвох-то? Куски ведь одни и те же.

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

Посмотрите, пожалуйста, запустился ли процесс для февральской сборки Lithuania(lt) ? Спасибо.

запустил

Добрый день.
Хотел бы попросить Вас добавить отображение границ муниципальных районов:
boundary=administrative + admin_level=6

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

Потому я и рассуждал выше, что неплохо бы научить конвертер наследовать свойства родительских объектов и фильтровать их.

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

Смотрю сейчас текущий список карт.
Сборка Архангельской области почему-то датирована 2018-02-19, хотя все остальные карты - не старее конца февраля. Боюсь, что в сборку СЗФО уже вошла эта старая версия, и в общую карту России также она попадет.

И заодно уж. Когда ожидать очередную версию сборки России?

Да, видел

Как обычно: сразу после сборки других стран