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

Эта пока нет. Надо будет разобраться, можно ли из неё что полезного вытащить.
Хотя сама схема имхо гиблая, конечно :slight_smile:

Доброго дня!

взял из svn последнюю версию osm2mp… что то изменилось в перекодировке строк? стал выдавать такие вещи:

“\x{200e}” does not map to cp1251 at D:\Temp\OSM\soft\osm2mp.pl line 2581, <$_[…]> line 16478757

Так понял в строке присутствует символ, который не получается сконвертить из utf8 в cp1251? Как бы найти тогда это название на карте…?

И еще такой маленький вопросик. Так понял, существуют три параметра для управления обработкой строк:

  • codepage - преобразование из utf-8 в указанную кодовую страницу
  • ttable - пользовательская таблица преобразования символов
  • translit - транслитерация символов
  1. Если к примеру указаны все три параметра, в каком порядке применяются эти правила?
  2. Если указан translit, нужно ли указывать ttable (например для кодовой страницы 1250)?

Тоже получаю эту ошибку почти на всех регионах. Кто знает, в чем проблема? На ревизии 399 этого не было.

При конвертации Беларуси тоже заметил такие вещи. Когда нашел это место и посмотрел, там был маленький кусочек от Польши с их буковками, которые и были не знакомыми конвертору. Дальше на это дело забил.

Fortress, это ворнинг, что какой-то символ не конвертится в кириллицу. И в результирующий файл он будет записан как “\x{200e}”.
А дальше уже надо решать, что нужно делать с такими символами - или добавить их в таблицу дополнительной перекодировки, или исправлять надпись в базе.

Конкретно в данном случае - это символ U+200E
http://www.fileformat.info/info/unicode/char/200e/index.htm

Спасибо за инфу, посмотрел на коды своих ошибок и первое попавшееся “\x{0301}” было у точки http://www.openstreetmap.org/browse/node/341739385 там в надписи “Старый оскол” видно лишние символы. Такие штуки надо исправлять или это местные особенности написания?

\x{0301} - это знак ударения. Добавлял их кто-то не наш, так что это скорее всего копипаста.
Имхо - исправлять.

Копипаста наверняка с википедии.

1 - сначала ttable, потом translit, кодировка применяется непосредственно при записи в файл
2 - только если результат --translit чем-то не устраивает

liosha, а в каких случаях полигону place не удается сопоставить RegionName и CountryName?
Пример:


; Found city: WayID=42138469 - Николо-Павловское [ ,  ]

Страна берётся из addr:country, регион - из addr:region + addr:district

Пытаюсь собрать http://gis-lab.info/data/osm/leningrad/leningrad.osm.bz2 и http://gis-lab.info/data/osm/krasnodar/krasnodar.osm.bz2
Какие опции нужно проставить чтобы появилось полигональное море? Или дело не в опциях?

–shorelines --bpoly krasnodar.poly

Дим, гислаб в этом плане имеет очень большую проблему - карта из него получается вот такая:

с морем в виде речки…

Я буду прибрежные районы резать отдельно, чтобы не брать с гислаба.

//гислаб в этом плане имеет очень большую проблему - карта из него получается вот такая:
А как может быть иначе? Если это нарезка по областям, то и море будет в пределах области. Где то же оно должно заканчиваться :slight_smile:

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

//А я разве просил сделать иначе?
Просто привык что такая обрезка моря единственно правильная :slight_smile: У меня для мирового окияна отдельная карта)

В последней версии osm2mp.pl появилась ошибка


Processing ways...        Use of uninitialized value $param{"Label"} in string eq at osm2mp.pl line 2640, <$_[...]> line 5351638.
Use of uninitialized value $param{"Label"} in string eq at osm2mp.pl line 2640, <$_[...]> line 5371090.

Nexor, в последней ревизии я включил вывод всех ворнингов, так что всё нормально. На результат они не влияют. Буду постепенно править.

liosha,
Можно ли как-то сохранять в файл вывод конвертера на консоль? С появлением пораметра --output я подумал, что > region.txt даст мне желаемое, но не получилось. Я говорю вот об этом: