Господа подскажите, что за ошибка??
Processing ways…
“\x{d604}” does not map to cp1251 at osm2mp.pl line 3263, <$[…]> line 10901048.
“\x{b300}” does not map to cp1251 at osm2mp.pl line 3263, <$[…]> line 10901048.
и что сделать? спасибо!
Господа подскажите, что за ошибка??
Processing ways…
“\x{d604}” does not map to cp1251 at osm2mp.pl line 3263, <$[…]> line 10901048.
“\x{b300}” does not map to cp1251 at osm2mp.pl line 3263, <$[…]> line 10901048.
и что сделать? спасибо!
Насколько помню, ничего страшного. Просто эти символы не были найдены в cp1251 и соответственно не могут быть им интерпретированы. Могу посоветовать использовать --namelist label=name:ru,name
Если не прав, поправьте.
спасибо, но не помогло. тоже самое в том же месте
А какой регион конвертируете? Наверное, который граничит с другой страной?
А какой регион конвертируете? Наверное, который граничит с другой страной?
нет, Архангeльская область
у меня cp нигде не прописана…
Конвертация osm в navitel с отдельным файлом роутинга на примере Приморского края. О пользе отдельного файла роутинга можно почитать здесь.
- Устанавливаем 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
Скачиваем GPSMapEdit. Если выбрали версию без инсталлятора, то разархивируем в любое место и запускаем один раз mapedit.exe, что бы прописались пути в реестре.
2. создаём папку, например prim, и складируем все файлы в ней
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
http://osm2mp.googlecode.com/svn/trunk/osm2mp/cp1251.cmap
Что бы каждый раз не копировать эти файлы вручную (при их обновлении на сервере), можно использовать TortoiseSVN
Также рекомендую немного отредактировать getbound.pl: найти в нём строчку $ua->timeout( 60 ); и поменять её на $ua->timeout( 300); так получение poly файла будет более стабильным.
3. В созданной нами папке prim
3.1 создаём файл main.bat с содержимым
del *.bak
del *.htm
Start /Wait wget.bat
Start /Wait size.vbs
If Exist log.txt Exit /B
Start /Wait 7z.bat
Start /Wait getbound.bat
Start /Wait poly.vbs
Start /Wait osm2mp.bat
Start /Wait osm2mp_rt.bat
Start /Wait mp-postprocess-navitel.bat
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, который разархивируем в ту же папку prim
данный батник закачивает последний osm файл нужного нам региона, причём если файл не изменился, то он его закачивать не будет.
3.3 создаём файл size.vbs с содержимым
Dim objFso
Dim f
Set objFso = CreateObject("Scripting.FileSystemObject")
Set f = objFso.GetFile("log.txt")
if f.size > 600 then f.delete
данный скрипт нужен для автоматизации, т.е. если файл не изменился то и конвертировать ничего не надо. Размер в 600 байт выбран методом “научного тыка”, т.е. wget в случае закачки создаст log.txt размером больше 600 байт, если не закачал (файл не изменился), то файл log.txt будет размером меньше 600 байт.
3.4 создаём файл 7z.bat с содержимым
7za e prim.osm.bz2 -y
exit
качаем http://downloads.sourceforge.net/sevenzip/7za920.zip, 7za.exe из архива также разархивируем в папку prim.
3.5 создаём файл getbound.bat с содержимым
getbound.pl prim > prim.poly
exit
Очень рекомендую запустить данный батник и проследить, что бы poly файл создался.
3.6 Очень часто бывает, что poly файл в силу разных причин не создаётся (поломали релейшн, нет связи с osm и т.д. и т.п.) поэтому у меня в запасе есть более старый poly файл.
создаём файл poly.vbs с содержимым
Dim objFso
Dim f
Const OverwriteExisting = True
Set objFso = CreateObject("Scripting.FileSystemObject")
Set f = objFso.GetFile("prim.poly")
if f.size <> 0 then
objFSO.CopyFile "c:\gps\update\OSM\prim\prim.poly" , "c:\gps\update\OSM\POLY\", OverwriteExisting
Else
objFSO.CopyFile "c:\gps\update\OSM\POLY\prim.poly" , "c:\gps\update\OSM\prim\", OverwriteExisting
end if
Т.е. когда запустили getbound.bat и получили рабочий poly файл то сохраняем его в папке poly. И если при конвертации закачка poly файла будет неудачной то он будет взят из папки poly, а если закачка будет удачной то он там сохранится как более свежая версия.
3.7 файл osm2mp.bat, с ним всё более интересно. Можно не извращаться и создать его в таком виде
osm2mp.pl --config=navitel.yml --textfilter PrepareCP1251 --namelist label=name:ru,name --defaultcountry=RU --defaultregion="prim" --bpoly=prim.poly RU-PRI.osm > RU-PRI.mp
exit
Можно же немного поизвращаться и создать в виде
chcp 65001
osm2mp.pl --config=navitel.yml --textfilter PrepareCP1251 --namelist label=name:ru,name --defaultcountry=RU --defaultregion="Приморский край" --bpoly=prim.poly RU-PRI.osm > RU-PRI.mp
exit
но…
а. его нужно сохранить, например с помощью программы Notepad++ в кодировке utf-8
б. например с помощью программы XVI32 удалить первые 3 hex-символа (EF BB BF), зато потом можно использовать в --defaultregion любые символы, чем я и пользовался когда конвертировал Украину.
3.8 создаём файл osm2mp_rt.bat с содержимым
osm2mp.pl --config=navitel-rt.yml --nobackground --bpoly=prim.poly RU-PRI.osm > RU-PRI_rt.mp
exit
3.9 создаём файл mp-postprocess-navitel.bat с содержимым
mp-postprocess-navitel.pl RU-PRI.mp --killrouting --noshorten
mp-postprocess-navitel.pl RU-PRI_rt.mp --fixrouting --noshorten
exit
Если будут ошибки роутинга, то постпроцессор попытается их исправить и запишет их в файл RU-PRI_rt.mp.err.htm. Если же постпроцессор не смог исправить все ошибки, то на последующем шаге конвертация вылетит и ошибки придётся исправлять вручную по этому методу.
3.10 создаём файл ConvertToNM2.vbs с содержимым
Option Explicit
On Error Resume Next
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) + ".nm2"
a.SaveAs strOutFile, "navitel-nm2"
End if
Next
a.Exit
Соответственно для конвертации нужно запустить main.bat
Данный скрипт у меня работал на WinXP SP3, а сейчас успешно работает под Win7.
to Paspartu:
спасибо, все перепробовал, ошибка одна и та же.
Што там за символы нечитаемые непонятно!
при попытке использовать cp1251
выдает вот такую ошибку
Can’t locate PerlIO/via/PrepareCP1251.pm in @INC (@INC contains: C:/Perl64/Navitel_Convert/___test C:/Perl64/site/lib C:/Perl64/lib .) at (eval 147) line 2.
где его взять и куда положить подскажите пжлста
скачал. спс.
ОШИБКА ОСТАЛАСЬ! ну что же это такое то блин!
а можно как то вычислить, что это за символы и где они?
Только что отконвертировал, не одной ошибки.
Только что отконвертировал, не одной ошибки.
вот я и не понимаю, с чем это связано
Тук, тук, тук!
Простите, что помешал, но можно ли как-нибудь обновить Финляндию, все-таки? А?
Тук, тук, тук!
Простите, что помешал, но можно ли как-нибудь обновить Финляндию, все-таки? А?
Финляндия 54224
1 Лапландия 1724359
2 Похьойс-Похьянмаа 1724360
3 Кайнуу 1997164
4 Похьойс-Карьяла 1999428
5 Северное Саво 918898
6 Этеля-Саво 918897
7 Этеля-Похьянмаа 1702263
8 Похьянмаа 2000320
9 Пирканмаа 1701741
10 Сатакунта 2000361
11 Кески-Похьянмаа 1702330
12 Центральная Финляндия 1701740
13 Варсинайс-Суоми 38092
14 Этеля-Карьяла ?
15 Пяйят-Хяме 1703362
16 Канта-Хяме 1473990
17 Уусимаа 37355
18 Кюменлааксо ?
19 Аландские острова 1650407
Fortress начал рисовать границу между оставшимся областями, но почему то остановился.
Я могу настроить конвертацию, но т.к. Вы явно лучше меня знаете Финляндию, Вам задача - дорисовать границу между оставшимся областями.
Было свободное время как раз хотел пересобрать Финляндию по всем правилам. Начал рисовать границы. Времени не хватило, поэтому пока зависло…
Было свободное время как раз хотел пересобрать Финляндию по всем правилам. Начал рисовать границы. Времени не хватило, поэтому пока зависло…
надо тебе подготовить to-do список для желающих помочь, но незнающих чем
тогда, глядишь, и дело пойдет быстрее
надо тебе подготовить to-do список для желающих помочь, но незнающих чем
тогда, глядишь, и дело пойдет быстрее
Это да.
А что можно сделать, чтобы мусульманские и православные кладбища отображались по-разному? Сейчас они отображаются одинаково - тип, вроде, 0x1a … т.е. тэг religion = muslim не учитывается…?
А что можно сделать, чтобы мусульманские и православные кладбища отображались по-разному? Сейчас они отображаются одинаково - тип, вроде, 0x1a … т.е. тэг religion = muslim не учитывается…?
Чтобы отображались по-разному - никак. НН не поддерживает кастомных типов.
Религию в принципе можно дописывать в примечание (Text), но оно будет видно только при просмотре полной информации об объекте.
Насчёт Финляндии. Заметил ошибку в нарезки на области. Область Уусимаа сейчас больше за счёт Восточной Уусимаа. Карта на русской википедии неверна, т.е по этой карте область Уусимаа сейчас собой представляет 17+18 область.
Сделал временный релейшин temp, с помощью него сегодня ночью попробую отконвертировать всю Финляндию.
Коллеги, подскажите мне, наивному человеку, Карты для Навитела, выкладываемые на Рамблере http://navitel.osm.rambler.ru/ собираются с помощью этих конфигов http://osm2navitel.googlecode.com/svn/trunk/ ?