You are not logged in.
- Topics: Active | Unanswered
Announcement
Please create new topics on the new site at community.openstreetmap.org. We expect the migration of data will take a few weeks, you can follow its progress here.***
#651 2010-03-06 05:59:28
- dimuzz
- Member
- From: Екатеринбург
- Registered: 2009-09-10
- Posts: 1,843
Re: Конвертация OSM в Navitel
юзаю поиск по адресу
город - Екатеринбург
улица - Щербаковакак только щелкаю по Щербакова, чтобы ввести номер дома - вместо домов появляются какие-то улицы и переулки
причем так у любого адреса
в чем причина?
dedNikifor, это не бага, это фича ![]()
На Щербакова нет ни одного обозначенного здания с адресом.
Именно для этого случая и добавлен поиск по перекресткам от St_Ranger.
Выложил на http://fmesh.ru/osm/navitel/sverdl-osm-nm2.7z вариант карты Свердловской области, обработанный нормализатором улиц и перекрестков. Info.txt так и не подхватился :-(
Лог переименований улиц здесь: http://sderni.ru/77286
Файл в польском здесь: http://sderni.ru/77285
St_Ranger, нормализатор улиц не изменил названия улиц в адресах домов (поле StreetDesc в полигонах и, возможно, точках), поэтому при поиске по адресу многие улицы по-прежнему встречаются по два раза раза :-(
Конфигурация нормализатора улиц использована такая:
PolylineType=0x1|0x2|0x3|0x4|0x5|0x6|0x7|0xa|0x16|0x42
ал.|ал|аллея
бул.|бул|бульвар|бульв.
мкр.|мкр|м-он|мк-он|микрорайон
пл.|пл|площадь|площ.
пер.|пер|переулок
пр-д|проезд
просп.|пр.|пр|пр-т|пр-кт|п-кт|проспект|просп
тракт
тр.|тр|трасса
туп.|туп|тупик
ул.|ул|улица
ш.|ш|шоссеPOI перекрестков добавляются только для городских улиц:
TypeCross=0x2800
Filter=0x4,0x5,0x6Last edited by dimuzz (2010-03-06 07:40:09)
Offline
#652 2010-03-06 08:24:20
- Ivan Komarov
- Member

- Registered: 2008-10-02
- Posts: 1,050
Re: Конвертация OSM в Navitel
Запустил новый вариант странички ![]()
Offline
#653 2010-03-06 08:37:16
- St_Ranger
- Member
- From: Караганда
- Registered: 2010-03-02
- Posts: 20
Re: Конвертация OSM в Navitel
St_Ranger, нормализатор улиц не изменил названия улиц в адресах домов (поле StreetDesc в полигонах и, возможно, точках), поэтому при поиске по адресу многие улицы по-прежнему встречаются по два раза раза :-(
Да чёт я лоханулся. Скрипт исправляет только названия полилиний и то, только тех, которые указаны в фильтре. Подумаю немного и исправлю
Last edited by St_Ranger (2010-03-06 08:40:58)
Offline
#654 2010-03-06 09:37:45
- dimuzz
- Member
- From: Екатеринбург
- Registered: 2009-09-10
- Posts: 1,843
Re: Конвертация OSM в Navitel
Если я правильно понял, StreetDesc надо менять во всех типах - это "уличная часть" адреса, а Label - только у полилиний указанных типов.
Ivan Komarov, чем мой Info.txt провинился, что не отображается? Я честно списал его у Fortress'а :-)
Offline
#655 2010-03-06 09:40:18
- St_Ranger
- Member
- From: Караганда
- Registered: 2010-03-02
- Posts: 20
Re: Конвертация OSM в Navitel
Если я правильно понял, StreetDesc надо менять во всех типах - это "уличная часть" адреса, а Label - только у полилиний указанных типов.
Да, примерно так и будет. Cмотрю немного дальше, вдруг захочется причесать названия точек и полигонов, надо заложить в алгоритм сразу, чтобы потом много не переделывать. Может ли кто выложить карту (или кусок карты) в mp-формате, в которой есть чего переделать в названиях. Мне так было бы легче отлаживаться наживую, потому что те карты, которые у меня есть изначально создавались "правильно" ![]()
Last edited by St_Ranger (2010-03-06 10:51:22)
Offline
#656 2010-03-06 10:46:39
- dimuzz
- Member
- From: Екатеринбург
- Registered: 2009-09-10
- Posts: 1,843
Re: Конвертация OSM в Navitel
Вот mp-файл Свердловской области непосредственно после конвертации из OSM: http://sderni.ru/77304
На всякий случай - командная строка osm2mp:
perl osm2mp.pl --config=navitel.yml --bpoly=sverdl.poly --navitel --disableuturns --nodestsigns --poiregion --defaultcountry=RU --defaultregion="Свердловская область" sverdl.osm > sverdl.mpOffline
#657 2010-03-06 10:51:32
- St_Ranger
- Member
- From: Караганда
- Registered: 2010-03-02
- Posts: 20
Re: Конвертация OSM в Navitel
Вот исправленный вариант http://sderni.ru/77317 (если кто успел скачать версию 1.5a, сотрите, там ошибка)
Изменения по сравнению с предыдущей версией: анализирует и при необходимости изменяет все поля StreetDesc= (не зависимо от типа объекта POI, POLYLINE или POLYGON), поля Label= обрабатывает только если это полилиния указанного в конфигурационном файле типа. Если в конфигурационном файле отсутствует строка PolylineType=, поле Label= анализируется во всех полилиниях
Last edited by St_Ranger (2010-03-06 12:18:24)
Offline
#658 2010-03-06 12:00:21
- St_Ranger
- Member
- From: Караганда
- Registered: 2010-03-02
- Posts: 20
Re: Конвертация OSM в Navitel
Вот mp-файл Свердловской области
Спасибо, потестил свой скрипт, получил хороший результат. Для проверки на выходной файл карты натравил ещё раз скрипт:
StrNamePref_1.6a.pl sverdl_pref.mp
файл изменений оказался пустым, входная и выходная карта одинаковыми, что говорит о том, что менять там уже больше нечего.
Нашёл на карте несколько интересных названий:
Памятник Клавиатуре - координаты 56.832539,60.607620
ул. Большой Шарташский каменный карьер - реально так улица называется? ![]()
Бульвар Культуры - вопрос, слово Бульвар написано с большой буквы, это означает, что оно входит в название этой улицы? Или можно преобразовать в Культуры бул.? Почему спрашиваю, потому что у нас в городе есть проспект Бульвар Мира, где слово Бульвар является частью названия.
Если на карте есть названия улиц, в которых тип улицы является её названием, то в файле StrNamePref.ini надо написать их названия целиком, например:
PolylineType=0x1|0x2|0x3|0x4|0x5|0x6|0x7|0xa|0x16|0x42
ал.|ал|аллея
бул.|бул|бульвар
мкр.|мкр|м-он|мк-он|микрорайон
пер.|пер|переулок
пр-д|проезд
пр.|пр|пр-т|пр-кт|п-кт|проспект|просп
тракт
тр.|тр|трасса
туп.|туп|тупик
ул.|ул|улица
ш.|ш|шоссе
Бульвар Культуры
тогда они не будут преобразованы.
Можно, конечно, поизвращаться и вставить правило, что если первая буква заглавная, а остальные маленькие, то не преобразовывать, но этот вариант мне не нравится.
Во-первых, заглавной буква может оказаться случайно, например умная клавиатура или программа, делающая первую букву предложения заглавной, или сам человек по запарке так написал.
Во-вторых, в каждом городе таких названий всего по нескольку штук и наберётся, добавить в исключения будет не сложно.
Last edited by St_Ranger (2010-03-06 12:17:51)
Offline
#659 2010-03-06 17:54:21
- Ivan Komarov
- Member

- Registered: 2008-10-02
- Posts: 1,050
Re: Конвертация OSM в Navitel
Ivan Komarov, чем мой Info.txt провинился, что не отображается? Я честно списал его у Fortress'а :-)
щаз гляну
Upd: пока изучал, оно заработало. Видимо, сказывается моя сиволапость в области php ![]()
А почему Fortress в авторах?
Last edited by Ivan Komarov (2010-03-06 18:00:50)
Offline
#660 2010-03-06 19:25:33
- Fortress
- Member

- From: Russia, Saint-Petersburg
- Registered: 2009-07-09
- Posts: 1,109
Re: Конвертация OSM в Navitel
Прошу прощения, это мой скрипт залил файлы пачкой на сервер. Уберу sverdl из конвертации. P/S: проблема с нечитаемым Info.txt может быть в регистре первой буквы... У меня info.txt с маленькой буквы...
Offline
#661 2010-03-06 20:48:12
- dimuzz
- Member
- From: Екатеринбург
- Registered: 2009-09-10
- Posts: 1,843
Re: Конвертация OSM в Navitel
Нашёл на карте несколько интересных названий:
Памятник Клавиатуре - координаты 56.832539,60.607620
ул. Большой Шарташский каменный карьер - реально так улица называется?Бульвар Культуры - вопрос, слово Бульвар написано с большой буквы, это означает, что оно входит в название этой улицы? Или можно преобразовать в Культуры бул.? Почему спрашиваю, потому что у нас в городе есть проспект Бульвар Мира, где слово Бульвар является частью названия.
Памятник Клавиатуре - это действительно памятник клавиатуре ;-)
Улицы "Большой Шарташский каменный карьер" нет, это каменный карьер (вот и ошибочка нашлась).
"Бульвар" в названии "Бульвар Культуры" - не часть названия, а статусная часть. Будем менять.
Но всё завтра - посещение концерта Bondage Fairies отняло последние силы :-)
Offline
#662 2010-03-07 17:31:11
- dimuzz
- Member
- From: Екатеринбург
- Registered: 2009-09-10
- Posts: 1,843
Re: Конвертация OSM в Navitel
Обновлены конфигурационные файлы до версии r19.
Добавлены типы POI, в частности, домов, не выражающихся в масштабе карты (точка building=yes), обозначения видов леса (хвойный, лиственный, смешанный), некоторых POI и природных объектов.
Классы (приоритеты) маршрутов для развязок сделаны аналогичными конфигурации для Garmin (т.е. класс развязки равен классу соединяемого шоссе) в надежде на улучшение качества маршрутизации. Правда, знакомые мне маршруты по Свердловской области после изменения конфигурации остались прежними, но, как минимум, в теории "быстрый" маршрут должен чаще придерживаться шоссе.
Сконвертированные файлы рекомендую обрабатывать программами от St_Ranger - нормализатором названий улиц StrNamePref_1.6a и поиском перекрестков MPCross_1.2a
Offline
#663 2010-03-07 18:32:18
- St_Ranger
- Member
- From: Караганда
- Registered: 2010-03-02
- Posts: 20
Re: Конвертация OSM в Navitel
http://sderni.ru/77625 - добавил в нормализатор больше информативности. Теперь на выходе создаются следующие файлы:
имякарты_2pref.txt - улицы, в которых 2 и более префиксов, типа Бульвар Юности ул.
имякарты_2word.txt - улицы название которых состоит из 2 и более слов, для анализа регистра букв
имякарты_all.txt - названия всех улиц так, как они записаны в исходнике
имякарты_nopref.txt - названия всех улиц отсортированные без учета префиксов
имякарты_repl.txt - произведённые изменения (попросили добавить поле RoadID)
В файл StrNamePref.ini добавил популярные опечатки, когда вместо точки пишут букву ю, типа улю
В результате нашёл ещё несколько ошибок:
Брусницина
Брусницына
Бульвар Юности ул.
ул. Корабельный Проезд
ул. Спутников ул.
Last edited by St_Ranger (2010-03-07 19:34:12)
Offline
#664 2010-03-07 21:51:06
- dedNikifor
- Member

- From: Белгород
- Registered: 2009-09-11
- Posts: 3,419
Re: Конвертация OSM в Navitel
//Info.txt так и не подхватился :-(
счас он подхватился, но ссылка на юзера (dimuzz) не работает - т.к. в файлике он (юзер) указан с опечаткой (Dimuzz вместо dimuzz)
еще заметил крайне неприятный баг:
hw=service area=yes обрабатывается как замкнутая дорога. бывают случаи, когда эта "дорога" лежит сама по себе - не имея общих точек с другими дорогами
так вот, если ИЗ такого "замкнутого круга" проложить маршрут куда-нибудь - маршрут не проложиться. вернее проложиться "прямой зеленой стрелкой"
предлагаю данное сочетание тегов вообще не конвертировать. либо конвертировать в полигон, а не в вей
Offline
#665 2010-03-08 05:54:39
- Andron
- Member
- Registered: 2009-10-18
- Posts: 38
Re: Конвертация OSM в Navitel
http://sderni.ru/77625
ул. Спутников ул.
Поправил (мой косяк).
Offline
#666 2010-03-08 08:11:16
- St_Ranger
- Member
- From: Караганда
- Registered: 2010-03-02
- Posts: 20
Re: Конвертация OSM в Navitel
Мой скрипт можно также использовать для вылечивания регистров букв, правда пока в ручном режиме
Допустим, в исходнике существует несколько неправильных вариантов, типа:
25 лет октября
25 ЛЕТ оКТЯБРЯ
25 лет Октября улю
25 Лет октября
25 ЛЕТ ОКТЯБРЯ
В файле StrNamePref.ini пришем:
25 лет Октября ул.|25 лет Октября улю|25 лет Октября
и все неправильные варианты будут заменены на 25 лет Октября ул.
Offline
#667 2010-03-08 10:51:31
- dimuzz
- Member
- From: Екатеринбург
- Registered: 2009-09-10
- Posts: 1,843
Re: Конвертация OSM в Navitel
Выпадают куски полигонов. Карта получается как бы порезаная на квадраты (если присмотреться,- видно линии)... по этим линиям бывают непрокрашенные полигоны (лес, например, или озеро), причем если у полигона есть name=, то название дублируется в каждом квадрате. На экране, при определенном масштабе, 5-8 названий озера или города может присутствовать...
Проблема с ошибкой отображения полигонов при нарезке в nm2 воспроизвелась, в том числе и на официальных картах и даже на map.navitel.su. Например, вот здесь: http://map.navitel.su/?lat=56.79834&lon … 35&zoom=14 на других масштабах лесной массив виден полностью. В автонавигаторе карта этого места ведет себя точно так же.
В обсуждении на форуме НН есть примеры и поярче: http://forum.navitel.su/index.php?showt … ntry163823 или http://forum.navitel.su/index.php?showt … ntry164237
В общем, данный эффект - однозначно баг формата карт или движка Навитела.
Есть, однако, один нюанс: если большой полигон в некотором месте один (например, одиночное озеро) - ошибок нарезки я не встречал. Если же имеет место наложение полигонов (например, пересекаются лесной массив и полигон городской застройки) - похоже, что порядок их отображения случаен. То ли это баг движка, то ли порядок слоев вообще не определен стандартом отрисовки (т.е. сверху может быть как город, так и лес).
Если это действительно ошибка наложения полигонов - принципиально проблему можно, видимо, поправить в исходнике (в любой точке оставлять только один полигон), но как это сделать - непонятно. Разве что как-то вырезать куски в полигоне бОльшей площади...
Last edited by dimuzz (2010-03-08 11:17:46)
Offline
#668 2010-03-08 17:17:38
- Pavlo
- Member

- From: Снежинск
- Registered: 2010-01-31
- Posts: 150
Re: Конвертация OSM в Navitel
.......Если же имеет место наложение полигонов (например, пересекаются лесной массив и полигон городской застройки) - похоже, что порядок их отображения случаен. То ли это баг движка, то ли порядок слоев вообще не определен стандартом отрисовки (т.е. сверху может быть как город, так и лес).
Если это действительно ошибка наложения полигонов - принципиально проблему можно, видимо, поправить в исходнике (в любой точке оставлять только один полигон), но как это сделать - непонятно. Разве что как-то вырезать куски в полигоне бОльшей площади...
Поэкспериментировал.. Всё так и есть... Если делать мультиполигоны, то всё отображается правильно, без "пропавших" кусков... Например, в полигоне города начинают корректно отображаться газоны, лесопосадки и т.д.
Но мультиполигоны, я думаю, это слишком заморочено...
А с дублированием name у полигонов ничего не поделать? Ошибка где-то у нас, т.к. на официальных картах этого нет...
Offline
#669 2010-03-08 17:41:25
- zgremlin
- Member
- Registered: 2008-07-31
- Posts: 332
Re: Конвертация OSM в Navitel
В общем, данный эффект - однозначно баг формата карт или движка Навитела.
Есть, однако, один нюанс: если большой полигон в некотором месте один (например, одиночное озеро) - ошибок нарезки я не встречал. Если же имеет место наложение полигонов (например, пересекаются лесной массив и полигон городской застройки) - похоже, что порядок их отображения случаен. То ли это баг движка, то ли порядок слоев вообще не определен стандартом отрисовки (т.е. сверху может быть как город, так и лес).
Если это действительно ошибка наложения полигонов - принципиально проблему можно, видимо, поправить в исходнике (в любой точке оставлять только один полигон), но как это сделать - непонятно. Разве что как-то вырезать куски в полигоне бОльшей площади...
Все очень просто - Навител (как, похоже, и гармин без typ-файла, задающего порядок), отрисовывает полигоны в порядке уменьшения площадей (т.е. сначала самый большой, а поверх него поменьше)... И все бы хорошо, но при нарезке большого полигона на мелкие - получившиеся огрызки могут быть меньше огрызков от другого полигона, и порядок отрисовки получается хаотичным. Об этом неоднократно писалось на форуме того же навитела, и рекомендовалось резать везде дыры. Как вариант, можно реализовать предобработку полигонов на одном из этапов, например обработать mp-файл по аналогии с нормализацией имен.
Offline
#670 2010-03-08 17:52:59
- dedNikifor
- Member

- From: Белгород
- Registered: 2009-09-11
- Posts: 3,419
Re: Конвертация OSM в Navitel
Мой скрипт можно также использовать для вылечивания регистров букв, правда пока в ручном режиме
Допустим, в исходнике существует несколько неправильных вариантов, типа:
25 лет октября
25 ЛЕТ оКТЯБРЯ
25 лет Октября улю
25 Лет октября
25 ЛЕТ ОКТЯБРЯВ файле StrNamePref.ini пришем:
25 лет Октября ул.|25 лет Октября улю|25 лет Октябряи все неправильные варианты будут заменены на 25 лет Октября ул.
это все нужно фиксить в OSM, а не в получаемом mp
Offline
#671 2010-03-08 17:55:12
- dedNikifor
- Member

- From: Белгород
- Registered: 2009-09-11
- Posts: 3,419
Re: Конвертация OSM в Navitel
еще у меня такой вопрос
пытаюсь периодически корректировать роутинг по знакомым маршрутам
можно ли где-то наглядно посмотреть индексы скорости у дорог? может быть кто-то уже поднял подобный рендерер?
Last edited by dedNikifor (2010-03-08 20:28:37)
Offline
#672 2010-03-08 18:28:57
- Pavlo
- Member

- From: Снежинск
- Registered: 2010-01-31
- Posts: 150
Re: Конвертация OSM в Navitel
С полигонами, вроде, теперь всё понятно ![]()
А на каком этапе конвертации из OSM данных полигоны режутся на квадраты и каждому присваивается name полигона? Или это сам движок Навитела режет/именует? И как это обойти? (или это фирменный секрет навителовцев?
)
P.S. пока писал это длинное сообщение, выяснил, что нарезаются полигоны и дублируются имена при конвертации из GPSMapEdit (т.е. и при конвертации mp из OSM и при рисовании полигонов в самом MapEdit'e)
Может, это фича not registred версии, коей подавляющее большенство пользуется?
Offline
#673 2010-03-08 18:54:29
- zgremlin
- Member
- Registered: 2008-07-31
- Posts: 332
Re: Конвертация OSM в Navitel
С полигонами, вроде, теперь всё понятно
А на каком этапе конвертации из OSM данных полигоны режутся на квадраты и каждому присваивается name полигона? Или это сам движок Навитела режет/именует? И как это обойти? (или это фирменный секрет навителовцев?)
Эта "фича" подгоняет здоровенные (мульти-)полигоны под то, что способен переварить крохотный мозг прибора
. Кроме того это позволяет запихнуть все объекты в небольшие квадратики, и движку при отрисовке смотреть только на то, что может оказаться на экране.
Так что обходить придется не только в конверторе, но и в формате, программе отображения, и железе, чтобы оно осилило непорезанную на тайлы базу.
Offline
#674 2010-03-08 19:49:00
- dimuzz
- Member
- From: Екатеринбург
- Registered: 2009-09-10
- Posts: 1,843
Re: Конвертация OSM в Navitel
Если делать мультиполигоны, то всё отображается правильно, без "пропавших" кусков... Например, в полигоне города начинают корректно отображаться газоны, лесопосадки и т.д.
Можно подробнее - какому полигону какую роль нужно присваивать? В "фоновом режиме" можно было бы делать (если, конечно, нет противопоказаний с точки зрения "OSM best practices").
А с дублированием name у полигонов ничего не поделать? Ошибка где-то у нас, т.к. на официальных картах этого нет...
А эту проблему не смог воспроизвести :-(
Offline
#675 2010-03-08 19:52:32
- dimuzz
- Member
- From: Екатеринбург
- Registered: 2009-09-10
- Posts: 1,843
Re: Конвертация OSM в Navitel
//Info.txt так и не подхватился :-(
счас он подхватился, но ссылка на юзера (dimuzz) не работает - т.к. в файлике он (юзер) указан с опечаткой (Dimuzz вместо dimuzz)
Моя ошибка, исправлю при следующей конвертации.
еще заметил крайне неприятный баг:
hw=service area=yes обрабатывается как замкнутая дорога. бывают случаи, когда эта "дорога" лежит сама по себе - не имея общих точек с другими дорогами
так вот, если ИЗ такого "замкнутого круга" проложить маршрут куда-нибудь - маршрут не проложиться. вернее проложиться "прямой зеленой стрелкой"предлагаю данное сочетание тегов вообще не конвертировать. либо конвертировать в полигон, а не в вей
Сочетания пока не обрабатываются osm2mp :-(
Offline