Конвертер OSM -> MP

addressing.yml - отвечает за формирование адреса. Убрав admin_level=2 ( level : country) видимо потеряем в адресных списках Страну.

settings.yml - говорит о том какие теги пользователь для подстановки значения.

nodes.yml - определяет какие точки показать на карте. Place = country ( type: 0x1400/или 1500 ) отвечает за отображение точки Страна.

ways-areas.yml - определяет какие полигоны отображать. Здесь Страны вроде и нет. Но как знать, могли и добавить.

Так что смотря что вы хотите отключить.

Приветствую всех!
Коллеги, а средствами oas2mp можно перевести opening_hours на русский? Чтобы вместо Мo-Sa было Пн-Сб?
Я что-то никак придумать не могу…

Найти и Заменить разве не сработает.

Слишком много вариантов что менять…
Мне кажется, что на этапе осм → мр это было бы более логично.

Всего же 7 дней недели. Или я чего-то не понял.

Месяца, времена года, общенациональные выходные, день/ночь, рассвет/закат,…

Это всё равно штучно. Да и их настолько мало, что можно и оставить как есть, если написание ещё 15 правил замены выглядит сложным.

Перечитал тему по картам Ситигида, там упоминаетя постпроцессор для навитела https://forum.openstreetmap.org/viewtopic.php?pid=333253#p333253
Весь постпроцессор не нужен, но вот если кто мог бы оттуда кусок про перевод дней недели вынести, и вписать его в settings-mp.yml как функцию !!perl/code (аналогично тому как сделано для Floors) - было бы очень и очень здорово.
Сам я ни разу не программист, мне даже батники с трудом даются…

        if ( $line =~ /^(Text)=/i ) { #часы работы
            $line =~ s/Mo/Пн/;
            $line =~ s/Tu/Вт/;
            $line =~ s/We/Ср/;
            $line =~ s/Th/Чт/;
            $line =~ s/Fr/Пт/;
            $line =~ s/Sa/Сб/;
            $line =~ s/Su/Вс/;
        }

Кто нибудь собирал свежий getbound.exe? Тот который есть у меня ругается на сертификаты -Can’t connect to overpass.kumi.systems:443 (certificate ver
ify failed) сервера перебрал все, везде 443.

Ошибки типа:

Argument “” isn’t numeric in numeric lt (<) at (eval 83) line 12.
Argument “” isn’t numeric in numeric lt (<) at (eval 83) line 12.
Argument “” isn’t numeric in numeric lt (<) at (eval 83) line 12.

Это отсутствие - lanes при наличии:
lanes:backward - есть
lanes:forward - есть

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

Эти ошибки - ошибки restriction.

Use of uninitialized value in hash element at osm2mp/osm2mp.pl line 1362.
Use of uninitialized value in hash element at osm2mp/osm2mp.pl line 1367.
Use of uninitialized value in hash element at osm2mp/osm2mp.pl line 1382.
Use of uninitialized value in hash element at osm2mp/osm2mp.pl line 1382.
Но чем они отличаются от тех что проходят гладко понять не получается:
Вот Ивано-Франковск в районе Лицея 25:


Три restriction=no_u_turn свиду похожие друг на друга. Но один выдаёт ошибку(и).
Ліцей №25 | OpenStreetMap

Маклимально исправил по России и Украине. Если где остались единичные недочеты, надо доустранить. Конвертер теперь в этом плане работает без фиксации такой ошибки.

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

Может может. Правда в точке два разворотных запрета. А сбоит только один.
Но надо перепроверить.

Перепроверился. Действительно сбоит это отношение:


А это не сбоит:

Запреты одинаковые, в одной точке. Разница только в направлениях.
Больше разницы не вижу. А значит и искать аналогичные ошибки “по признаку” не возможно. Ну или я не вижу как. А искать каждую ошибку сужением области уонтроля, каторга.

Заменил сбойный “запрет на разворот” “разрешением только прямо”:


Ошибок ещё больше:

Для полноты эксперимента проделал туже операцию с:

что запрет разворота, что движение только прямо - ошибок нет!
А вот здесь:

что запред разворота - ошибки, что движение только прямо - ещё больше ошибок?!

Ошибка в скрипте выглядит именно как ошибка логики работы (сбой), какая-то переменная не инициализирована, а не предупреждение, что проблема в данных.

Когда я убираю именно это конкретное ограничение, ошибка исчезает.
Следовательно сбой - продукт этого ограничения…

Всем добрый день!
Случайно натолкнулся на проблему следующего характера:

Спойлер
; WayID = 1137893376:0
; highway = primary
; lanes = 3
; maxspeed = 40
; oneway = yes
[POLYLINE]
Data0=(67.567529,33.353087),(67.5672374,33.3536716),(67.5669906,33.3541706),(67.5669522,33.3542483),(67.5668785,33.3544031)
RoadID=86
DirIndicator=1
RouteParams=2,3,1,0,0,0,0,0,0,0,0,0
Type=0x04
Label=Жемчужная улица
CityName=Апатиты
CountryName=Россия
LegalSpeed=40
RegionName=Мурманская область муниципальный округ Апатиты
StreetDesc=Жемчужная улица
TrafficLanes=2,0,0,1,0,0
TurnLanes=reverse|left|through
Nod0=0,502,0
Nod1=1,353,0
Nod2=3,82,0
Nod3=4,334,0
[END]

Если присмотреться то наверное удивит значение TrafficLanes=2,0,0,1,0,0:
по теории первая цифра - количество полос в прямом направлении,
четвёртая цифра - количество полос в обратном направлении
Всё бы ничего если бы не:
oneway = yes
RouteParams=2,3,1,0,0,0,0,0,0,0,0,0

Не знаю как конвертер формирует эти значения, однако очень похоже за это деяние отвечает запись в settings-navitel.yml:

Спойлер
  TrafficLanes: !!perl/code |-
    {
      my $tags = shift()->{tag};
      my $lt = extract_number($tags->{'lanes'}) // q{};
      my $lf = extract_number($tags->{'lanes:forward'}) // q{};
      my $lb = extract_number($tags->{'lanes:backward'}) // q{};

      if ( $lt ) {
          $lf = length $lb ? $lt-$lb : int($lt/2+0.5)  if !length $lf;
          $lb = length $lf ? $lt-$lf : int($lt/2)      if !length $lb;
      }

      return undef  if !length $lf || !length $lb || $lt<0 || $lb<0;
      return "$lf,0,0,$lb,0,0";
    }

Вопрос - это проблема? Или так и должно быть? Если проблема то может это только у меня? Если не только у меня может есть решение по исправлению этого недочета?
Спасибо!