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

В карте от 06/Апр/2011 проблема не ушла :frowning:

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

Не смог воспроизвести - Ленобласть собралась корректно.
Вопрос - в проблемном mp-файле в инструменте “Правка элементов адресов” с городами тоже бардак или неправильные города появляются только в nm2?

Тоже интересно. Будем ждать ответа AlRight.

В mp-файле, на мой взгляд, всё в порядке. В GME в “Правка элементов адресов”, “Поиск по адресу” всё выглядит достаточно адекватно - в графах “city” - населенные пункты.
Такой баг только по Лен.области или еще где-то замечен? Рязань надо почекать. Она, как и Лен.область конвертится в 3.2.4

да, на всякий случай - Навител 5.0.0.1069 (для версии карт “Федеральный Округ”) с картами nm2 из OSM работает нормально. Новых глюков не замечено

Получается, ошибка в модуле экспорта GME.
Кстати, пробовал собирать сегодняшний СПб, в GME 0.66.7 экспорт не удался с ошибкой, аналогичной http://forum.openstreetmap.org/viewtopic.php?pid=128756#p128756, зато отлично собрался в GME 0.61.1

Откатись пожалуйста на предыдущую версию GME 1.0.65.0. Он нормально собирает в 3.2.6 и СПб и Рязань. Скорее всего проблема как раз в формате 3.2.4

dimuzz,
У нас сейчас платные дороги конвертируются? Всмысле, какие теги повесить на дорогу, чтобы при включенной галке “Избегать платных дорог” навител их “избегал”? :slight_smile:

По идее toll=yes на платный участок вея и barrier=toll_booth на точку въезда (сбора платы).

Конвертируются, тег toll=yes на вей.
А вот barrier=toll_booth сейчас конвертируются в запреты прямого проезда, наверное, это нужно пересматривать.

Со стандартной комплектацией всех модулей конвертится с ошибками.
Доков нет. Ошибки, не понятно как исправлять. Не все сидели с рождения на никсах.
Может, конечно, тайна какАя? Но не думаю что сдесь. ИМХО конечно.
Дайте людям инструкции, пожалуйста.

Однозначно этого не должно быть и вроде лечили, ну или в паре с access=yes

Попытка сделать документацию была здесь: http://wiki.openstreetmap.org/wiki/RU:Navitel
Я бы подсказал, но последние версии конвертера/конфигов у меня не работают, сижу пока на февральских. Могу скинуть папку с настроенными скриптами.

Если кратко описывать для винды (проверил прямо сейчас, кроме установки perl - всё работает):

  1. Устанавливаем Active Perl со всеми необходимыми модулями, как описано в http://wiki.openstreetmap.org/wiki/RU:Osm2mp#.D0.A3.D1.81.D1.82.D0.B0.D0.BD.D0.BE.D0.B2.D0.BA.D0.B0_.D0.BF.D1.80.D0.BE.D0.B3.D1.80.D0.B0.D0.BC.D0.BC.D1.8B_.D0.B2_.D1.81.D1.80.D0.B5.D0.B4.D0.B5_Windows

  2. Складываем в одну папку:
    http://osm2mp.googlecode.com/svn/trunk/getbound.pl
    http://osm2mp.googlecode.com/svn/trunk/osm2mp/osm2mp.pl
    http://osm2mp.googlecode.com/svn/trunk/osm2mp/polish-mp/output-polish.yml
    http://osm2navitel.googlecode.com/svn/trunk/navitel.yml
    http://osm2navitel.googlecode.com/svn/trunk/nodes-navitel.yml
    http://osm2navitel.googlecode.com/svn/trunk/ways-areas-navitel.yml
    http://osm2navitel.googlecode.com/svn/trunk/ways-lines-navitel.yml
    http://osm2navitel.googlecode.com/svn/trunk/ways-roads-navitel.yml
    http://osm2navitel.googlecode.com/svn/trunk/mp-postprocess-navitel.pl
    http://osm2navitel.googlecode.com/svn/trunk/iso-3166-1-a2-ru-navitel.txt

  3. В ней же создаем файл makeall.bat

getbound.pl -onering %1 > maps\%1.osm\%1.poly
osm2mp.pl --config=navitel.yml --defaultcountry=RU --defaultregion=%1 --bpoly=maps\%1.osm\%1.poly --output=maps\%1.osm\%1.mp maps\%1.osm\%1.osm
mp-postprocess-navitel.pl maps\%1.osm\%1.mp
  1. Создаем подпапку maps, в нее складываем и распаковываем в отдельные папки данные в OSM XML, скачанные с http://gis-lab.info/projects/osm-export.html , т.е. структура предполагается такая:
    <папка с конвертером><имя_региона>.osm<имя_региона>.osm

  2. Запускаем makeall.bat <имя_региона>

Fortress
Пожалуйста скиньте, для меня это очень важно.

Пожалуйста. Только помни, что конфиги уже устарели.

Внесу и я свои 5 копеек.
Так как я интересуюсь только своим Приморским краем, то и содержимое файлов соответствующее…

Так как wiki редактировать всем лень, то с п.2
Скачиваем GPSMapEdit разархивируем в любое место и запускаем 1 раз mapedit.exe, что бы прописались пути в реестре. Если установить версию с инсталятором, то соответсвенно запускать не нужно.
2.Так как все нужные файлы хранятся в репозеториях, то крайне желательно воспользоваться TortoiseSVN или ей подобной.
На примере TortoiseSVN:
2.1 Устанавливаем
2.2 Создаём папки:
getbound со ссылкой на репу http://osm-getbound.googlecode.com/svn
osm2mp со ссылкой на репу http://osm2mp.googlecode.com/svn/
osm2navitel со ссылкой на репу http://osm2navitel.googlecode.com/svn/
После синхронизации папок с репами, создаём папку, например prim, и в неё копируем
из getbound файлы getbound.pl и aliases.yml
из osm2mp osm2mp.pl и всю папку lib
из osm2navitel файл mp-postprocess-navitel.pl, и всё из подпапки cfg
3. В созданной нами папке
3.1 создаём файл main.bat с содержимым

Start /Wait wget.bat
Start /Wait 7z.bat
Start /Wait getbound.bat
Start /Wait osm2mp.bat
Start /Wait osm2mp_rt.bat
Start /Wait mp-postprocess-navitel.bat
Start /Wait ConvertToMP.vbs
Start /Wait ConvertToNM2.vbs
exit

3.2 создаём файл wget.bat с содержимым

wget -N http://data.gis-lab.info/osm_dump/dump/latest/RU-PRI.osm.bz2 -olog.txt
exit

соответственно все остальные регионы здесь
качаем http://www.interlog.com/~tcharron/wgetwin-1_5_3_1-binary.zip из архива нам нужен wget.exe
данный батник закачивает последний osm файл нужного нам региона, причём если файл не изменился, то он его закачивать не будет
3.3 создаём файл 7z.bat с содержимым

7za e RU-PRI.osm.bz2 -y
exit

качаем http://downloads.sourceforge.net/sevenzip/7za920.zip
3.4 создаём файл getbound.bat с содержимым

getbound.pl prim > prim.poly
exit

все коды можно увидеть в файле aliases.yml
3.5 создаём файл osm2mp.bat в кодировке (UTF-8 без BOM) с содержимым

chcp 65001
osm2mp.pl --config=navitel-ru.cfg --namelist label=name:ru,name --defaultcountry=RU --defaultregion="Приморский край" --bpoly=prim.poly RU-PRI.osm > RU-PRI.mp
exit

3.6 создаём файл osm2mp_rt.bat с содержимым

osm2mp.pl --config=navitel-rt-ru.cfg --nobackground --bpoly=prim.poly RU-PRI.osm > RU-PRI-rt.mp
exit

3.7 создаём файл mp-postprocess-navitel.bat с содержимым

mp-postprocess-navitel.pl RU-PRI.mp --killrouting --noshorten
mp-postprocess-navitel.pl RU-PRI-rt.mp --fixrouting --noshorten
exit

3.8 создаём файл ConvertToMP.vbs с содержимым

Option Explicit
Dim a
Set a = CreateObject ("GPSMapEdit.Application.1")
a.MinimizeWindow
Dim fso
Set fso = CreateObject ("Scripting.FileSystemObject")
Dim strRoot
strRoot = fso.GetAbsolutePathName (WScript.ScriptFullName + "\..\")
Dim pMapsFolder
Set pMapsFolder = fso.GetFolder (strRoot)
Dim pFile
For Each pFile In pMapsFolder.Files
    Dim strExt
    strExt = LCase (fso.GetExtensionName (pFile.Path))
    If strExt = "img" Or strExt = "ntm" Or strExt = "rus" Or strExt = "mp" Then
        a.Open pFile.Path, False

        Dim strOutFile
        strOutFile = fso.GetParentFolderName(pFile.Path) + "\" + fso.GetBaseName (pFile.Path) + ".mp"
        a.SaveAs strOutFile, "polish"
    End if
Next
a.Exit

3.9 создаём файл ConvertToNM2.vbs с содержимым

Option Explicit

'
' ConvertToNM2.vbs
'
' Copyright (c) Konstantin Galichsky (kg@geopainting.com), 2004-2007
' All rights reserved.
'
'
' This script uses GPSMapEdit to convert multiple maps to NM2 format.
'
' USAGE:
' Input files should be put into .\Maps folder (relative to the script file).
' Log.txt file is created to log progress.
'

    ' Connect to GPSMapEdit.
Dim a
Set a = CreateObject ("GPSMapEdit.Application.1")
a.MinimizeWindow

    ' Check version of GPSMapEdit
If a.Version < "1.0.36.0" Then
    MsgBox "Obsolete version of GPSMapEdit is used. Please upgrade."
    WScript.Quit
End If

Dim fso
Set fso = CreateObject ("Scripting.FileSystemObject")

Dim strRoot
strRoot = fso.GetAbsolutePathName (WScript.ScriptFullName + "\..\")


Dim pMapsFolder

Set pMapsFolder = fso.GetFolder (strRoot)

Dim pFile
For Each pFile In pMapsFolder.Files
    Dim strExt
    strExt = LCase (fso.GetExtensionName (pFile.Path))
    If strExt = "img" Or strExt = "ntm" Or strExt = "rus" Or strExt = "mp" Then
        a.Open pFile.Path, False

        Dim strOutFile
        strOutFile = fso.GetParentFolderName(pFile.Path) + "\" + fso.GetBaseName (pFile.Path) + ".nm2"
        a.SaveAs strOutFile, "navitel-nm2"
    End if

Next

a.Exit

Соответственно для конвертации запускаем main.bat
ЗЫ что бы было понятно где-какие файлы, выкладываю свою сборку (она немного другая чем описанная здесь, но смысл тот же)

Добавлены некоторые часто встречающиеся craft.
(At revision: 101)

Откатился. Сконвертил в 3.2.6. Проверяйте)