Конвертації в формати навігаторів

вибачаюсь, доступний якщо качати wget’ом, а через браузер - ні

Схоже, що через перевірку Referer. Якщо урл скопіювати і вставити в нову табу - скачується і браузером.

del

А я зараз налагоджую bat-файл для автоматичної конвертації карти Харківської обл. під Навітел.
Хочу зробити так, щоби можна було запустити один батнік та забути про нього. А воно само скачає з дані гіслаба, виріже область, сконвертує у mp, потім у навітелівський nm2 та завантажить на сайт. Заодно щоби в описі карти на сайті оновилася б дата конвертації.

Будуть також на всяк випадок окремі батніки на окремі етапи: звантаження та розархівування, вирізання, конвертація, архівація та аплоад.
Треба буде ще передбачити якесь повідомлення на випадок критичних помилок у карті, коли GPSmapEdit відмовляється конвертувати карту.

Ось такий батнік. Він працює. Хоча й з деякими зауваженнями.

c:
cd c:\OSM
REM Downloading and unpacking UA.OSM
erase /f /q Maps\UA.osm.bz2
"c:\Program Files\GnuWin32\bin\wget.exe" -P Maps\  http://data.gis-lab.info/osm_dump/dump/latest/UA.osm.bz2 
if not exist Maps\UA.osm.bz2 echo ERROR! Can not get map data from GIS-lab >>log.txt
if not exist Maps\UA.osm.bz2 goto exit
erase Maps\UA.osm
"c:\Program Files\Winrar\winrar" e Maps\UA.osm.bz2 .\Maps\

REM Cutting UA-KHR
if not exist Maps\UA.osm echo ERROR! Unable to unpack map data from archive >>log.txt
if not exist Maps\UA.osm goto exit
erase Maps\UA-KHR.osm
call c:\osmosis-0.41\bin\osmosis.bat --read-xml file=Maps\UA.osm --bp file=UA-KHR.poly completeWays=yes  completeRelations=yes --write-xml file=Maps\UA-KHR.osm 

REM Converting UA-KHR.osm to mp
if not exist Maps\UA-KHR.osm echo ERROR! Can not cut UA-KHR from unpacked map data >>log.txt
if not exist Maps\UA-KHR.osm goto exit
erase Maps\OSM-UA-KHR.mp
c:\Perl\site\osm2mp\osm2mp.pl  --config=c:\Perl\site\osm2mp\cfg-navitel\navitel-uk.cfg  --target-lang=uk --default-lang=uk  --bpoly UA-KHR.poly  --defaultcountry="UA"  -o Maps\OSM-UA-KHR.mp Maps\UA-KHR.osm

REM Converting mp to nm2
if not exist Maps\OSM-UA-KHR.mp echo ERROR! Can not convert osm to mp >>log.txt
if not exist Maps\OSM-UA-KHR.mp goto exit
erase Maps\OSM-UA-KHR.nm2
ConvertToNM2.vbs

REM Upload nm2 to host server
if not exist Maps\OSM-UA-KHR.nm2 echo ERROR! Can not make nm2 map file OSM-UA-KHR >>log.txt
if not exist Maps\OSM-UA-KHR.nm2 goto exit
erase /f /q Maps\osm-ua-khr.rar
"c:\Program Files\WinRAR\rar.exe" a Maps\osm-ua-khr.rar Maps\osm-ua-khr.nm2
date /T >date_of_convertation.htm
time /T >>date_of_convertation.htm
ftp.exe -s:ftp_params.txt
:exit
pause

Нюанси:
1)Треба створити папки c:\OSM\ та c:\OSM\Maps
2) Треба установити програму wget. Батнік хоче бачити її за адресою c:\Program Files\GnuWin32\bin\wget.exe
3) Скрипт використовує архіватор WinRAR. Незареєстрована shareware версія начебто згодиться. Вибачте, згодиться лише для розархівації. А для упакування треба буде прикрутити інший архіватор :frowning:
Батнік хоче бачити вінрар за адресою c:\Program Files\Winrar\winrar
4) Треба встановити osmosis. Батнік хоче бачити осмозіс за адресою c:\osmosis-0.41\bin\osmosis.bat
5) Треба встановити інтерпретатор Perl, а також програмні пакети, які потрібні для osm2mp
6) Треба встановити osm2mp. Батнік хоче бачити його за адресою c:\Perl\site\osm2mp\osm2mp.pl
7) Треба встановити GPSmapEdit. Достатньо незереєстрованої версії. Ламати не треба.
8) Скрипт ConvertToNM2.vbs треба покласти у c:\OSM\ та закоментуватиу ньому останній рядок
(поставити одинарну лапку ’ перед MsgBox “Converting maps is completed!”)
9) Для аплоаду використовуємо віндовозну програму ftp.exe. Параметри доступу до FTP-сервера вказуємо у текстовому файлі ftp_params.txt Приклад такого файлу нижче
10) Скрипт зроблено для Харкывськоъ областы. Для ынших областей треба доробляти.
11) poly-файл для обрізування слід покласти у c:\OSM
12) В перший раз батнік буде тихенько лаятися у консоль на відсутність файлів карт.
13) Батнік використовує український конфіг для osm2mp (тут його вже десь викладували)
14) Рекомендую вказати у конфігах osm2pm (cfg-navitel\output-polish.yml) бітність нульового рівня не 24, а 25. А то будиночки криві виходять.

open 31.170.164.90
dimonster
********
binary
put Maps\osm-ua-khr.rar
put date_of_convertation.htm
quit

open 31.170.164.90 - вказуємо айпішник або адресу сервера
dimonster - вказуємо логін
******* - вказуємо пароль (свій пароль світити не буду)
(тут можна вказати команду переходу у певну папку на сервері. Але я завантажує у корінь)
binary - вказує на перехід на бінарний режим
put Maps\osm-ua-khr.rar - команда для аплоаду карти з папки Maps на сервер
put date_of_convertation.htm - команда для аплоаду файла з датою конвертації не сервер
quit - вихід з ftp .exe

До речі, а яким конвертером користуються мапери з інших країн? Усякі там німці та французи? Невже вони теж мучаються з osm2mp? Чи там крім Гарміна та mkgmap інших програм не використовують?

Гармин Нуви 2370
Адресного поиска нет.
Маршрут прокладывает.
При определенном увеличении масштаба маленькая речка показывается черным цветом.

ЛЭП при любом масштабе показывает жирной красной линией - красивее было бы потоньше…


Приятно увидеть свои “художества” в навигаторе.:slight_smile:

файл не знайдено, де взяти?

У цьому архіві http://sendfile.su/753520
addressing-uk.yml, navitel-uk.cfg, rename-country.yml, rename-region.yml - запхати у osm2mp\cfg-navitel
nodes-navitel.yml - запхати у osm2mp\cfg-navitel\polish-mp\ (рекомендую передивитися цей файл. У мене є деякі сумніви.)

Трохи розбирався з Навітелом, подивіться,плз сюди: http://larry0ua.koding.com/navi/index.php. Там само - посилання на сьогоднішній гармін.

Про червоні лінії не можу нічого сказати, на моєму пристрої вони не товсті, і про струмки також. Потрібна більша вибірка.

В чому саме?

Не годиться. У картах не працює адресний пошук. Карти мають “хвости” у сусідні області та країни

Незрозумілими мені відмінностями від льошиного оригіналу

І далі у файлі ще є відмінність в обробці подвійних адрес.

До речі, я трохи виправив свій скрипт. Він неправильно поводився у випадку можливих збоїв при конвертації. Мені соромно :roll_eyes:
http://forum.openstreetmap.org/viewtopic.php?pid=308572#p308572

А ще треба буде замінити архіватор WinRAR на безкоштовний 7z. Як для розпакування osm.bz2, так і для створення zip-архіва з готовими картами. Бо використовувати ламаний софт у відкритому проекті - якось “не комільфо” :roll_eyes:

Ой, ще одна прикра маненька помилочка. Виправив.

У файлі nodes-common.yml (з комплекту osm2mp) та nodes-navitel.yml (з osm2navitel) такий рядок теж є.

Обробка addr2:* в останній версій nodes-navitel.yml закоментована - напевно, поки що не працює (глянув mp-файл, сконвертований з моїм nodes-navitel.yml - точки з подвійною адресацією теж немає).
Конфіги однак доведеться адаптувати до нових версій скрипта - там багато змінилось. До речі, через це й можуть бути некоректності у файлах, сконвертованих Larry0ua (використовувався скрипт версії 725).

То Льоша щось постійно оновлює та підправляє. В мене ревізія 719. Адресний пошук працює.
А може, Larry0ua забув вказати --defaultregion=“UA”. А може, обрізка трохи корява.
Увечорі спробую нову ревізію. Вже у svn лежить 726 версія.

726 в мене сварився на якийсь відсутній метод, який на цій ревізії і видалили. саме тому я використовував 725. Можливо, через ці версії можуть бути проблеми. Обрізка точно корява, це в планах на майбутнє :slight_smile:

Так, але, скажу, що в наданому скрипті цього ключа теж не було :wink: Перед додаванням цього ключа не було міст в списку міст в адресному пошуку, тепер є. В наступній конвертації це буде враховано

Шо? Як це не було? Ой, я мав на увазі --defaultcountry=“UA” :roll_eyes:

тоді дивно, чому з defaultregion воно виглядає краще… глянь, плз - http://velo.kr.ua/media/osm/Navitel-UA-KH.zip (обрізка все ще крива)
підозрюю, що в defaultregion треба було писати щось на зразок Kharkivska obl, але там зараз UA

Я вказую лише --defaultcountry=“UA”, а defaultregion не вказую взагалі. І все нормально виходить.
Думаю, у вас проблеми з обрізанням області. Оновіть полі-файл кордонів області.
Зараз у адресному пошуку по вашій карті села видно отак: “Кицівка, UA Печенізький район, Україна”. А має бути “Кицівка, Харківська область Печенізький район, Україна”.

До речі, як я зрозумів, GPSmapEdit не знає поняття district, а знає лише поняття region. Тому конвертор замість створення одного region “Харківська область” створює декілька region “Харківська область Дергачівський район”, “Харківська область Зміївський район”, дописуючи назву району до назви області.

; NodeID = 337558289
; population = 32117
; place = town
[POI]
Data0=(49.4628203,36.8786912)
EndLevel=3
Type=0x0800
Label=Балаклія
City=Y
CityName=Балаклія
CountryName=Україна
RegionName=Харківська область Балаклійський район
[END]