You are not logged in.

Announcement

*** NOTICE: forum.openstreetmap.org is being retired. Please request a category for your community in the new ones as soon as possible using this process, which will allow you to propose your community moderators.
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 wrote:

юзаю поиск по адресу
город - Екатеринбург
улица - Щербакова

как только щелкаю по Щербакова, чтобы ввести номер дома - вместо домов появляются какие-то улицы и переулки

причем так у любого адреса
в чем причина?

dedNikifor, это не бага, это фича smile
На Щербакова нет ни одного обозначенного здания с адресом.
Именно для этого случая и добавлен поиск по перекресткам от 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,0x6

Last 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

Запустил новый вариант странички cool

Offline

#653 2010-03-06 08:37:16

St_Ranger
Member
From: Караганда
Registered: 2010-03-02
Posts: 20

Re: Конвертация OSM в Navitel

dimuzz wrote:

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

dimuzz wrote:

Если я правильно понял, StreetDesc надо менять во всех типах - это "уличная часть" адреса, а Label - только у полилиний указанных типов.

Да, примерно так и будет. Cмотрю немного дальше, вдруг захочется причесать названия точек и полигонов, надо заложить в алгоритм сразу, чтобы потом много не переделывать. Может ли кто выложить карту (или кусок карты) в mp-формате, в которой есть чего переделать в названиях. Мне так было бы легче отлаживаться наживую, потому что те карты, которые у меня есть изначально создавались "правильно" smile

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.mp

Offline

#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

dimuzz wrote:

Вот mp-файл Свердловской области

Спасибо, потестил свой скрипт, получил хороший результат. Для проверки на выходной файл карты натравил ещё раз скрипт:

StrNamePref_1.6a.pl sverdl_pref.mp

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

Нашёл на карте несколько интересных названий:

Памятник Клавиатуре - координаты 56.832539,60.607620

ул. Большой Шарташский каменный карьер - реально так улица называется? smile

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

Если на карте есть названия улиц, в которых тип улицы является её названием, то в файле 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

dimuzz wrote:

Ivan Komarov, чем мой Info.txt провинился, что не отображается? Я честно списал его у Fortress'а :-)

щаз гляну
Upd: пока изучал, оно заработало. Видимо, сказывается моя сиволапость в области php smile
А почему 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

St_Ranger wrote:

Нашёл на карте несколько интересных названий:
Памятник Клавиатуре - координаты 56.832539,60.607620
ул. Большой Шарташский каменный карьер - реально так улица называется? smile

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

Памятник Клавиатуре - это действительно памятник клавиатуре ;-)
betonius-3.jpg
Улицы "Большой Шарташский каменный карьер" нет, это каменный карьер (вот и ошибочка нашлась).
"Бульвар" в названии "Бульвар Культуры" - не часть названия, а статусная часть. Будем менять.
Но всё завтра - посещение концерта 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

St_Ranger wrote:

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

Pavlo wrote:

Выпадают куски полигонов. Карта получается как бы порезаная на квадраты (если присмотреться,- видно линии)... по этим линиям бывают непрокрашенные полигоны (лес, например, или озеро), причем если у полигона есть 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

dimuzz wrote:

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

Поэкспериментировал.. Всё так и есть... Если делать мультиполигоны, то всё отображается правильно, без "пропавших" кусков... Например, в полигоне города начинают корректно отображаться газоны, лесопосадки и т.д.
Но мультиполигоны, я думаю, это слишком заморочено...
А с дублированием name у полигонов ничего не поделать? Ошибка где-то у нас, т.к. на официальных картах этого нет...

Offline

#669 2010-03-08 17:41:25

zgremlin
Member
Registered: 2008-07-31
Posts: 332

Re: Конвертация OSM в Navitel

dimuzz wrote:

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

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

Offline

#670 2010-03-08 17:52:59

dedNikifor
Member
From: Белгород
Registered: 2009-09-11
Posts: 3,419

Re: Конвертация OSM в Navitel

St_Ranger wrote:

Мой скрипт можно также использовать для вылечивания регистров букв, правда пока в ручном режиме

Допустим, в исходнике существует несколько неправильных вариантов, типа:

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

С полигонами, вроде, теперь всё понятно smile
А на каком этапе конвертации из OSM данных полигоны режутся на квадраты и каждому присваивается name полигона? Или это сам движок Навитела режет/именует? И как это обойти? (или это фирменный секрет навителовцев? smile )
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

Pavlo wrote:

С полигонами, вроде, теперь всё понятно smile
А на каком этапе конвертации из OSM данных полигоны режутся на квадраты и каждому присваивается name полигона? Или это сам движок Навитела режет/именует? И как это обойти? (или это фирменный секрет навителовцев? smile )

Эта "фича" подгоняет здоровенные (мульти-)полигоны под то, что способен переварить крохотный мозг прибора smile. Кроме того это позволяет запихнуть все объекты в небольшие квадратики, и движку при отрисовке смотреть только на то, что может оказаться на экране.
Так что обходить придется не только в конверторе, но и в формате, программе отображения, и железе, чтобы оно осилило непорезанную на тайлы базу.

Offline

#674 2010-03-08 19:49:00

dimuzz
Member
From: Екатеринбург
Registered: 2009-09-10
Posts: 1,843

Re: Конвертация OSM в Navitel

Pavlo wrote:

Если делать мультиполигоны, то всё отображается правильно, без "пропавших" кусков... Например, в полигоне города начинают корректно отображаться газоны, лесопосадки и т.д.

Можно подробнее - какому полигону какую роль нужно присваивать? В "фоновом режиме" можно было бы делать (если, конечно, нет противопоказаний с точки зрения "OSM best practices").

Pavlo wrote:

А с дублированием name у полигонов ничего не поделать? Ошибка где-то у нас, т.к. на официальных картах этого нет...

А эту проблему не смог воспроизвести :-(

Offline

#675 2010-03-08 19:52:32

dimuzz
Member
From: Екатеринбург
Registered: 2009-09-10
Posts: 1,843

Re: Конвертация OSM в Navitel

dedNikifor wrote:

//Info.txt так и не подхватился :-(
счас он подхватился, но ссылка на юзера (dimuzz) не работает - т.к. в файлике он (юзер) указан с опечаткой (Dimuzz вместо dimuzz)

Моя ошибка, исправлю при следующей конвертации.

dedNikifor wrote:

еще заметил крайне неприятный баг:
hw=service area=yes обрабатывается как замкнутая дорога. бывают случаи, когда эта "дорога" лежит сама по себе - не имея общих точек с другими дорогами
так вот, если ИЗ такого "замкнутого круга" проложить маршрут куда-нибудь - маршрут не проложиться. вернее проложиться "прямой зеленой стрелкой"

предлагаю данное сочетание тегов вообще не конвертировать. либо конвертировать в полигон, а не в вей

Сочетания пока не обрабатываются osm2mp :-(

Offline

Board footer

Powered by FluxBB