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

Попытка сделать документацию была здесь: 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. Проверяйте)

Все хорошо, спасибо.

й-и-хоу! Московская область сконвертилась (с этой реутовской парковкой … шоб ей :)). Спасибо, dimuzz. Оказывается, я самый главный yml для этого не обновил в прошлый раз … :slight_smile:

интересную ссылку нашел яндекс
http://www.map4gps.ru/suhoj-log/navitel

п.с.: скриншот правильный. может быть не самый актуальный, но правильный

контактов на сайте не нашел. что предпримем? )

п.п.с.: на fmesh, кстати, сноска присутствует

Вообще говоря, там только ссылка на файл. Файл же при ближайшем рассмотрении взят c fmesh и сконвертирован лично МНОЙ, что подтверждает info.txt

Перестало отображатся Рыбинское водохранилище в Навителе, наверно после переноса тегов на мультиполигон, можно починить? (отображение)

Сори за повтор, но думаю тут правильное место для замечания:

тег “opening_hours” со значение “24/7” в навителе (5.0) уже ни как не показывается, как будто их не обозначили вообще
другие варианты типа “Mo-Su 09:00-22:00” в навителе показываются корректно.

хм… у меня тоже 5.0.0.1069, только для Симбы
а это 24/7 точно в теге opening_hours а не в каких нибудь примичаниях???
я бы и без картинок поверил. Поверь и мне, у меня не отображается.
Банкомат добавлял я сам лично, и сразу же ставил этот тег, но вот банкомат есть а 24/7 нет :frowning:

SevenMag, в текущей конфигурации opening_hours не подставляется банкоматам. Добавлю.

Да, я понял разницу, точнее подумал на эту разницу что там магазин у меня банкомат… я в городе стараюсь добавлять всем аптекам и банкоматам время работы, т.к. есть банкоматы круглосуточные, т.к. на улице, а есть внутри магазина.
Спасибо.

Добавлено время работы банкоматов и других POI.
(At revision: 102)

И это… зимники из роутинга не пора выкашивать? :wink:

бегрепорт:

не работает запрет проезда через закрытый для транспорта ж\д переезд
при установленном motor_vehicle=no
http://www.openstreetmap.org/browse/node/989445039

сейчас добавил barrier=block с обеих сторон, но все же ошибка имеет место быть

Конвертирую Германию. Процесс на последней стадии (mp->nm2). Ошибок очень много, поэтому получается по одному району в день. Требуются добровольцы, желающие помочь с конвертированием. MP-файлы лежат здесь. Просьба отметиться здесь, кто что себе взял, а готовые файлы nm2 в архивах залить на народ. Ссылки на файлы nm2 можно добавлять там же в spreadsheet. Спасибо.