OpenStreetMap Forum

The Free Wiki World Map

You are not logged in.

#326 2017-07-28 15:58:05

Eugeny_B
Member
Registered: 2014-11-30
Posts: 259

Re: Mkgmap

LLlypuk82, я наткнулся на эту тему около полутора лет назад. А сейчас (когда Garmin 1,5 года не обновляет карт) она становится актуальной. Какие-то успехи есть и поиск работает иногда лучше чем у velo100 и MapTourist. Но я не программист и не владею английским (ну яндекс или гугл переводчики это мы могем). Мне бы перевод руководства по стилям...размечтался.
Ну про алгоритм, я могу рассказать. И поделиться именно для тех в ком чай заваривают smile
1. Это надо создать структуру папок - чтобы все по полочкам лежало и легко можно было работать. Создаем корневую (основную) папку OSM. В ней создаем шесть папок: _Maps, elevation, poly, styles, tools, work. Если Вы не хотите создавать ТОРО карты то папка содержащая данные высот elevation Вам не нужна. Папка tools содержит шесть папок с программами mkgmap, osmconvert, osmfilter, osmosis, splitter, wget. Все для создания карт больше программ кроме текстового редактора Notepad++ (или подобного) ничего не надо.
2. Сам алгоритм:
2.1. Загрузка данных OSM и сопутствующих файлов с помощью программы wget.
2.2. Вырезание из данных высот необходимой области с помощью программы osmosis.
2.3. Вырезание из данных OSM этой-же области с помощью программы osmosis.
2.4. Соединение вырезанных данных высот и OSM с помощью программы osmosis.
2.5. Создание файлов границ с помощью программ osmconvert, osmfilter, osmosis и mkgmap (я еще не понял, что лучше самому границы создавать или пользоваться готовыми)
2.6. Разрезание данных OSM нашей области на части с помощью программы splitter.
2.7. Непосредственно создание карты имя.gmap для MapSource и BaseCamp, а также gmapsupp.img для прибора с помощью программы mkgmap.
2.8. Забрать готовые карты из папки _Maps.
Это алгоритм в кратце.
А вот его исполнение (займет здесь много места), первоначально у меня было так https://www.gpspower.net/creating-maps/ … links.html увидишь там мое сообщение, в нем файлик OSM.rar
Сейчас по другому, но понять и изменить что нужно, можно. Я писал себе батники для выполнения программ.
Не знаю как тут прицепить архив к сообщению, может каждый файл в отдельном сообщении расписать.

Папка styles содержит папки с разными стилями, я их по интернету собирал.

Это второй Вариант (папки с описанными не совпадают)

Создание карты Garmin из данных OSM с помощью Mkgmap
Создание карты Garmin из данных OSM с помощью Mkgmap происходит в 5 этапов:
1.	Загрузка данных OSM и сопутствующих файлов.
2.	Вырезание из данных OSM необходимой области.
3.	Создание файлов границ.
4.	Разрезание данных OSM необходимой области на части.
5.	Непосредственно создание карты.
Некоторые этапы (2, 3, 4) могут быть пропущены или заменены специальными файлами.
Я буду описывать как я создаю карты под системой Windows 7, 10 64-разрядной. Разница с 32-разрядной заключается в количестве выделяемой памяти и соответственно разрядности приложения JAVA.


Загрузка данных OSM и сопутствующих файлов.
Загрузку я осуществляю с помощью программы wget запуская 1_run_download.bat файл.
Ссылку на весь комплект программ я приведу ниже или можете самостоятельно поискать в интернете.
@echo off
set BASEDIR=%CD%
:: =============================================================
echo .
echo .   OSM data download files
echo .
cd %BASEDIR%\input
rem Скачиваем файл данных OSM с http://download.geofabrik.de/index.html
 "%BASEDIR%\wget\bin\wget.exe" "http://download.geofabrik.de/russia-latest.osm.pbf" –N

rem Скачиваем файл данных OSM с http://gis-lab.info/projects/osm_dump/
 "%BASEDIR%\wget\bin\wget.exe" "http://data.gis-lab.info/osm_dump/dump/latest/local.osm.pbf" –N

rem Скачиваем файлы данных границ и береговых линий
 "%BASEDIR%\wget\bin\wget.exe" "http://osm2.pleiades.uni-wuppertal.de/bounds/latest/bounds.zip" -N
 "%BASEDIR%\wget\bin\wget.exe" "http://osm2.pleiades.uni-wuppertal.de/sea/latest/sea.zip" –N
 
rem Скачиваем файлы данных географических имен (нужен какой-нибудь один, а можно и никакой)
 "%BASEDIR%\wget\bin\wget.exe" "http://download.geonames.org/export/dump/cities1000.zip" -N
 "%BASEDIR%\wget\bin\wget.exe" "http://download.geonames.org/export/dump/cities5000.zip" -N
 "%BASEDIR%\wget\bin\wget.exe" "http://download.geonames.org/export/dump/cities15000.zip" -N
 "%BASEDIR%\wget\bin\wget.exe" "http://download.geonames.org/export/dump/RU.zip" –N

Вы можете закоментировать строки с ненужными файлами или добавить по данному шаблону свои регионы. Я скачиваю всю Россию, а потом вырезаю из нее то что мне надо (два федеральных округа или набор областей). Вы вольны выбирать то что Вам надо зайдя на сайты gis-lab.info или download.geofabrik.de и затем изменив названия файлов в 1_run_download.bat скачивать только то что надо


Вырезание из данных OSM необходимой области.
С помощью программы osmosis запуская файл 2_run_cut_poly.bat вырезаем нужную нам область (территорию).
@echo off
set BASEDIR=%CD%
:: =============================================================
cls
echo .
echo .
echo Введите номер - соответствующей выбранной территории
echo 1 - Северо-Западный Федеральный округ и Тверская область
echo 2 - Северо-Западный и Центральный Федеральные округа
echo 3 - области: Ленинградская, Псковская, Новгородская, Тверская и Карелия
echo 4 - 8 областей - 5 областей + Вологодская, Ярославская и Московская
echo 5 - 11 областей - 8 областей + Костромская, Ивановская и Владимирская
echo 0 - Exit -
echo .
set /p pset="Enter № My-Poly - "
echo My-Poly is - %pset%
if %pset%==1 set MYPOLY=szfo_tve.poly
if %pset%==2 set MYPOLY=szfo_cfo.poly
if %pset%==3 set MYPOLY=5-obl-buf20.poly
if %pset%==4 set MYPOLY=8-obl-buf20.poly
if %pset%==5 set MYPOLY=11-obl-buf20.poly
if %pset%==0 goto EOS
:: =============================================================
rem Вырезаем из файла OSM данных нужную площадь
echo .
echo .   cut out the desired data file OSM area
echo .
 call %BASEDIR%\osmosis\bin\osmosis ^
   --read-pbf file=%BASEDIR%\input\local.osm.pbf ^
   --bounding-polygon file=%BASEDIR%\poly\%MYPOLY% completeWays=yes ^
   --write-pbf file=%BASEDIR%\input\MAP.osm.pbf

Обратите внимание на строку    --read-pbf file=%BASEDIR%\input\local.osm.pbf ^
Здесь вместо local.osm.pbf надо указать то имя файла которое Вам надо. 
Например russia-latest.osm.pbf
Poly файлы можно скачать с http://be.gis-lab.info/data/osm_dump/poly/ или сделать самостоятельно.
Чтобы создать самостоятельно, надо в навигаторе или программах BaseCamp или MapSource создать маршрут по границе территории которая Вам нужна и сохранить в формате GPX. Затем зайти на сайт по ссылке http://www.geocaching-dresden.de/tools/gpx-to-poly/index.php и преобразовать маршрут в poly файл. Маршрут должен быть кольцевым (замкнутым, первая точка, она-же и последняя)


Создание файлов границ.
Я создаю файлы границ с помощью программ osmosis и mkgmap запуская файл 3_run_boundary.bat,
@echo off
 set BASEDIR=%CD%
:: =============================================================
rem Очистка целевых каталогов
echo .
echo .   Cleaning the target directory
echo .
 del /q /s %BASEDIR%\boundary\*.*
:: =============================================================
rem Создаём файлы границ из данных OSM Osmosis.
echo .
echo .   Osmosis create boundary out of file OSM data
echo .

call %BASEDIR%\osmosis\bin\osmosis ^
   --read-pbf file=%BASEDIR%\input\MAP.osm.pbf outPipe.0=1 ^
   --buffer inPipe.0=1 outPipe.0=2 ^
   --tag-filter reject-relations inPipe.0=2 outPipe.0=3 ^
   --tag-filter accept-ways boundary=administrative,postal_code inPipe.0=3 outPipe.0=4 ^
   --used-node inPipe.0=4 outPipe.0=5 ^
   ^
   --read-pbf file=%BASEDIR%\input\MAP.osm.pbf outPipe.0=6 ^
   --buffer inPipe.0=6 outPipe.0=7 ^
   --tag-filter accept-relations boundary=administrative,postal_code inPipe.0=7 outPipe.0=8 ^
   --used-way inPipe.0=8 outPipe.0=9 ^
   --used-node inPipe.0=9 outPipe.0=10 ^
   ^
   --merge inPipe.0=5 inPipe.1=10 outPipe.0=11 ^
   --write-pbf file=%BASEDIR%\boundary\local-boundaries.osm.pbf omitmetadata=true compress=deflate inPipe.0=11 

 java -cp %BASEDIR%\mkgmap\mkgmap.jar ^
     uk.me.parabola.mkgmap.reader.osm.boundary.BoundaryPreprocessor ^
     %BASEDIR%\boundary\local-boundaries.osm.pbf %BASEDIR%\boundary\local

 но можно и воспользоваться уже готовым файлом bounds.zip и переименовав в папке styles файл optionsfile3.args или optionsfile4.args в optionsfile.args


Разрезание данных OSM необходимой области на части.
Бывают довольно большие osm-файлы, mkgmap на них будет ругаться, с сообщением:
There is not enough room in a single garmin map for all the input data
   The .osm file should be split into smaller pieces first.
Такие файлы предварительно надо нарезать splitter-ом
Я это делаю запустив 4_run_splitting.bat.
@echo off
set BASEDIR=%CD%
:: =============================================================
rem Очистка целевых каталогов
echo .
echo .   Cleaning the target directory
echo .
 del /q /s %BASEDIR%\output\*.*
 del /q /s %BASEDIR%\tiles\*.*
:: =============================================================
rem Разбиваем файл данных OSM на плитки Splitter-ом.
echo .
echo .   Splitting a file OSM data
echo .
rem java -Xmx512m -jar %BASEDIR%\splitter\splitter.jar ^
 java -Xmx3G -jar %BASEDIR%\splitter\splitter.jar ^
  --max-nodes=1600000 ^
  --overlap=0 ^
  --output-dir=%BASEDIR%\output ^
  --write-kml=%BASEDIR%\tiles\tiles.kml ^
  --output=pbf ^
  --keep-complete=true ^
  --no-trim ^
  %BASEDIR%\input\MAP.osm.pbf > %BASEDIR%\splitter\logs\splitter.log

 "%PROGRAMFILES(x86)%\GPSBabel\gpsbabel" -i kml -o osm -f %BASEDIR%\tiles\tiles.kml -F %BASEDIR%\tiles\tiles.osm
 "%PROGRAMFILES(x86)%\GPSBabel\gpsbabel" -i kml -o gpx -f %BASEDIR%\tiles\tiles.kml -F %BASEDIR%\tiles\tiles.gpx
 "%PROGRAMFILES(x86)%\GPSBabel\gpsbabel" -i kml -o gdb -f %BASEDIR%\tiles\tiles.kml -F %BASEDIR%\tiles\tiles.gdb

Если Вам не нужны (для исследования) файлы tiles.* то надо удалить последние строки начинающиеся с  "%PROGRAMFILES(x86)%\GPSBabel\gpsbabel"….,
 а также строку   --write-kml=%BASEDIR%\tiles\tiles.kml ^ 
Для использования геоданных надо добавить в параметры следующую строку
--geonames-file=%BASEDIR%\input\cities15000.zip ^
Или cities1000.zip, или cities5000.zip, или RU.zip – кому что нравится

Создание карты.
Запускаем 5_run_create.bat.
@echo off
 set BASEDIR=%CD%
:: =============================================================
echo .
echo .
echo Введите номер - соответствующего выбранного стиля
echo создоваемой карты
echo 1 - maptourist - стиль карт с http://maptourist.org/file/category/3-garmin/
echo 2 - stranger - стиль карт с http://velo100.ru/gps/download
echo 3 - My-style - стиль карт Mkgmap default + J-Typ-v161.typ
echo .
set /p NAME="Enter NAME Style - "
echo NAME Style is - %NAME%
if %NAME%==1 goto style1
if %NAME%==2 goto style2
if %NAME%==3 goto style3

goto EOS

rem set MYSTYLE=      - Имя папки со стилем, имя стиля
rem set MYFID=        - FID карты
rem set MYTYP=        - Имя TYP файла без расширения

:style1
 set MYSTYLE=maptourist
 set MYFID=480
 set MYTYP=M00001e0
goto pusk

:style2
 set MYSTYLE=stranger
 set MYFID=43
 set MYTYP=M000002b
goto pusk

:style3
 set MYSTYLE=My-style
 set MYFID=1000
 set MYTYP=J-Typ-v161
goto pusk


:default
 set MYSTYLE=%MYSTYLE%
 set MYFID=%MYFID%
 set MYTYP=%MYTYP%

:pusk
:: =============================================================
rem Очистка целевых каталогов
echo .
echo .    Cleaning the target directory for Creating.
echo .
 del /q /s %BASEDIR%\_Garmin\%MYSTYLE%.img
 del /q /s %BASEDIR%\_MapSource\%MYSTYLE%\*.*
 rmdir /q %BASEDIR%\_MapSource\%MYSTYLE%\
 mkdir %BASEDIR%\_MapSource\%MYSTYLE%
:: =============================================================
rem Создаем карту с помощью MKGMAP
echo .
echo .    Create a map using MKGMAP...
echo .
 cd "%BASEDIR%\output\"
rem java -Xmx1024m -jar "%BASEDIR%\mkgmap\mkgmap.jar" ^
 java -Xmx3G -jar "%BASEDIR%\mkgmap\mkgmap.jar" ^
 --output-dir=%BASEDIR%\_MapSource\%MYSTYLE% ^
 --description="OSM %MYSTYLE% v. %DATE%" ^
 --family-name="OpenStreetMap + %MYSTYLE%" ^
 --series-name="Russia" ^
 --overview-mapname="OSM_%MYSTYLE%" ^
 --area-name="OSM %DATE%" ^
 --copyright-message="OpenStreetMap CC-BY-SA 2.0, ST-GIS CC-BY-SA 3.0, %MYSTYLE%" ^
 --family-id=%MYFID% ^
 --keep-going ^
 --read-config=%BASEDIR%\styles\optionsfile.args ^
 --style-file=%BASEDIR%\styles\%MYSTYLE% ^
 -c %BASEDIR%\output\template.args %BASEDIR%\styles\%MYSTYLE%\%MYTYP%.typ 
pause
:: =============================================================
rem Копирование карт в выходные каталоги
echo .
echo .    Copying gmapsupp.img into output...
echo .
 cd "%BASEDIR%"
 move /y %BASEDIR%\_MapSource\%MYSTYLE%\gmapsupp.img %BASEDIR%\_Garmin
 rename %BASEDIR%\_Garmin\gmapsupp.img %MYSTYLE%.img

Вы можете изменить опции в файле %BASEDIR%\styles\optionsfile.args


Не забывам забирать готовые карты в папках:
	_Garmin		Для прибора
	_MapSource	Для программ MapSource и BaseCamp

Теперь надо поблагодарить создателей программ, скриптов и всех создавших и поддерживающих проект OpenStreetMap.

Stranger (by Max Vasilev: http://forum.openstreetmap.org/viewtopic.php?id=15613 ) за предоставленный Стиль карт для Garmin сайта velo100.ru https://github.com/MaksVasilev/stranger-garmin 
На счет вопросов распостранения карт, сгенерированных с этим стилем - обязательно консультируйтесь с автором.

Maptourist (by ValentinAK: http://forum.openstreetmap.org/viewtopic.php?id=13875  ) за предоставленный Стиль карт для Garmin сайта http://maptourist.org/file/category/3-garmin 
На счет вопросов распостранения карт, сгенерированных с этим стилем - обязательно консультируйтесь с автором.

Коллектив ( http://forum.openstreetmap.org/viewtopic.php?id=13884 )  за предоставленный Стиль карт для Garmin сайта http://freizeitkarte-osm.de/

Программа mkgmap http://www.mkgmap.org.uk/download/mkgmap.html 
Программа splitter http://www.mkgmap.org.uk/download/splitter.html 
Программа osmosis http://bretth.dev.openstreetmap.org/osmosis-build/osmosis-latest.zip 
Программа wget http://www.gnu.org/software/wget/ 
Проект OSM https://ru.wikipedia.org/wiki/OpenStreetMap 
Русскоязычный форум http://forum.openstreetmap.org/viewforum.php?id=21 

Дальше продолжу позже.

Last edited by Eugeny_B (2017-07-28 17:40:19)

Offline

#327 2017-07-28 16:10:57

Eugeny_B
Member
Registered: 2014-11-30
Posts: 259

Re: Mkgmap

Вот батфайл для вырезания прямоугольных областей из данных OSM (пригодится тем у кого в приборах маленький объем памяти. например Etrex-10)

@echo off

 set BASEDIR=%CD%

:: =============================================================
cls
echo .
echo .   Select name data download files
echo .   Выбор OSM данных для обработки
echo .
echo Введите номер - соответствующей выбранной территории
echo 1 - Данные с Gis-Lab
echo 2 - Данные с Geofabrik
echo 0 - Exit -
echo .
set /p sour="Enter source from - "
echo Enter source is - %sour%
if %sour%==1 set MYFILE=local.osm.pbf
if %sour%==2 set MYFILE=russia-latest.osm.pbf
if %sour%==0 goto EOS


:: =============================================================
cls
echo .
echo .
echo Для вырезания прямоугольной области
echo Введите координаты в формате гг.гггг
echo Северной границы территории
echo Западной границы территории
echo Южной границы территории
echo Восточной границы территории
echo .
set /p top="координаты Северной границы гг.гггг - "
echo Северная граница - %top%
set /p left="координаты Западной границы гг.гггг - "
echo Западная граница - %left%
set /p bottom="координаты Южной границы гг.гггг - "
echo Южная граница - %bottom%
set /p right="координаты Восточной границы гг.гггг - "
echo Восточная граница - %right%

pause
:: =============================================================
rem Вырезаем из файла OSM данных нужную площадь
echo .
echo .   cut out the desired data file OSM area
echo .

 call %BASEDIR%\tools\osmosis\bin\osmosis ^
   --read-pbf file=%BASEDIR%\work\input\%MYFILE% ^
   --bounding-box top=%top% left=%left% bottom=%bottom% right=%right% completeWays=yes ^
   --write-pbf file=%BASEDIR%\work\input\MAP.osm.pbf

Offline

#328 2017-07-28 16:28:08

LLlypuk82
Member
From: Витебск (Беларусь)
Registered: 2012-12-23
Posts: 2,373
Website

Re: Mkgmap

Благодарю, буду пробовать/тренироваться, а вдруг прокатит big_smile

Offline

#329 2017-07-28 16:39:03

Eugeny_B
Member
Registered: 2014-11-30
Posts: 259

Re: Mkgmap

Сейчас я создаю для своих нужд две карты в двух вариантах (ТОРО с высотами и простую, на территорию северо-запада и западной части России). На этом примере можно делать свои карты.
1. Файл 01_cut_elevation_my_poly.bat запускается только один раз (так как данные высот не меняются) Осторожно! Подредактируйте файл, так как данные высот бывшего СССР с шагом 20м занимают 4Гб, а с шагом 10м - 8Гб.
Скачиваются данные высот, и из них вырезается территория заданная файлами Russia_NW.poly и Russia_EU.poly одновременно (можно вместо них указать свои, добавить еще *.poly с изменением параметра   --tee 2 ^ или убавить до одного и удалить этот параметр.
Так же можно удалить одну из секций вырезания площади из данных высот с шагом 10 или 20 метров.

@echo off

 set START=%TIME%
 set BASEDIR=%CD%

 set WGET="%BASEDIR%"\tools\wget\bin\wget.exe
 set OSMCONVERT="%BASEDIR%"\tools\osmconvert\osmconvert64
 set OSMFILTER="%BASEDIR%"\tools\osmfilter\osmfilter
 set OSMOSIS="%BASEDIR%"\tools\osmosis\bin\osmosis
 set MKGMAP="%BASEDIR%"\tools\mkgmap\mkgmap.jar
 set SPLITTER="%BASEDIR%"\tools\splitter\splitter.jar
 set GPSBABEL="%PROGRAMFILES(x86)%"\GPSBabel\gpsbabel

:: =============================================================
rem Скачиваем файл данных OSM с http://develop.freizeitkarte-osm.de/
echo =============================================================
echo .
echo .   OSM data download files
echo .
echo . Скачиваем файл данных OSM с http://develop.freizeitkarte-osm.de/
echo .
 cd %BASEDIR%\elevation
 %WGET% -O ele_20_USSR.osm.pbf "http://develop.freizeitkarte-osm.de/ele_20_100_500/Hoehendaten_Freizeitkarte_USSR.osm.pbf"
 %WGET% -O ele_10_USSR.osm.pbf "http://develop.freizeitkarte-osm.de/ele_10_100_200/Hoehendaten_Freizeitkarte_USSR.osm.pbf"

:: =============================================================
rem Вырезаем из файла OSM данных нужную площадь
echo =============================================================
echo .
echo .   cut out the desired data file OSM area
echo .
echo . Вырезаем из файла OSM данных нужную площадь
echo .
 call %OSMOSIS% ^
   --read-pbf file=ele_10_USSR.osm.pbf ^
   --tee 2 ^
   --bounding-polygon file=..\poly\Russia_NW.poly completeWays=yes ^
   --write-pbf file=ele_10_Russia_NW.osm.pbf omitmetadata=true ^
   --bounding-polygon file=..\poly\Russia_EU.poly completeWays=yes ^
   --write-pbf file=ele_10_Russia_EU.osm.pbf omitmetadata=true


:: =============================================================
rem Вырезаем из файла OSM данных нужную площадь
echo =============================================================
echo .
echo .   cut out the desired data file OSM area
echo .
echo . Вырезаем из файла OSM данных нужную площадь
echo .
 call %OSMOSIS% ^
   --read-pbf file=ele_20_USSR.osm.pbf ^
   --tee 2 ^
   --bounding-polygon file=..\poly\Russia_NW.poly completeWays=yes ^
   --write-pbf file=ele_20_Russia_NW.osm.pbf omitmetadata=true ^
   --bounding-polygon file=..\poly\Russia_EU.poly completeWays=yes ^
   --write-pbf file=ele_20_Russia_EU.osm.pbf omitmetadata=true

echo Start:%START%, Ende:%TIME%
pause

Offline

#330 2017-07-28 16:49:06

Eugeny_B
Member
Registered: 2014-11-30
Posts: 259

Re: Mkgmap

2. Скажем так, раз в неделю запускаем файл 02__download_osm_cut_All_poly_join_ele.bat Который скачивает свежие данные OSM (по этому можно запускать сколько хочешь, качает только обновленные файлы) Создает границы подменяя админ-левел для улучшения поиска, вырезает из данных нужную область и соединяет данные OSM с данными высот (если высоты не нужны, удалить последнюю секцию)

@echo off

 set START=%TIME%
 set BASEDIR=%CD%

 set WGET="%BASEDIR%"\tools\wget\bin\wget.exe
 set OSMCONVERT="%BASEDIR%"\tools\osmconvert\osmconvert64
 set OSMFILTER="%BASEDIR%"\tools\osmfilter\osmfilter
 set OSMOSIS="%BASEDIR%"\tools\osmosis\bin\osmosis
 set MKGMAP="%BASEDIR%"\tools\mkgmap\mkgmap.jar
 set SPLITTER="%BASEDIR%"\tools\splitter\splitter.jar
 set GPSBABEL="%PROGRAMFILES(x86)%"\GPSBabel\gpsbabel

:: =============================================================
rem cls
echo .
echo .
echo Введите номер - соответствующий шагу выбранных высот
echo 1 - ele_10_100_200
echo 2 - ele_20_100_500
echo 0 - Exit -
echo .
set /p hset="Enter № My-Ele - "
if %hset%==1 set MYELE=ele_10
if %hset%==2 set MYELE=ele_20
if %hset%==0 goto EOS
echo My-Ele is - %MYELE%

:: =============================================================

:: =============================================================
rem Скачиваем файл данных OSM с http://gis-lab.info/projects/osm_dump/
echo =============================================================
echo .
echo .   OSM data download files
echo .
echo . Скачиваем файл данных OSM с http://gis-lab.info/projects/osm_dump/
echo .
 cd "%BASEDIR%\work\input"
 %WGET% "http://osm2.pleiades.uni-wuppertal.de/bounds/latest/bounds.zip" -N
 %WGET% "http://osm2.pleiades.uni-wuppertal.de/sea/latest/sea.zip" -N
 %WGET% "http://download.geonames.org/export/dump/cities1000.zip" -N
rem %WGET% "http://download.geonames.org/export/dump/cities5000.zip" -N
rem %WGET% "http://download.geonames.org/export/dump/cities15000.zip" -N
 %WGET% "http://data.gis-lab.info/osm_dump/dump/latest/local.osm.pbf" -N


:: =============================================================
rem Очистка целевых каталогов
echo .
echo .   Cleaning the target directory
echo .
 del /q /s "%BASEDIR%\work\boundary\*.*"

:: =============================================================
rem Создаём файлы границ из данных OSM Osmosis.
echo .
echo .   Osmosis create boundary out of file OSM data
echo .
 cd "%BASEDIR%\work\input"
 %OSMCONVERT% local.osm.pbf --out-o5m >..\output\USSR.o5m
 cd "%BASEDIR%\work\output"
 %OSMFILTER% USSR.o5m --keep-nodes= --keep-ways-relations="boundary=administrative =postal_code postal_code= place=" --out-o5m >ru-boundaries.o5m
 %OSMCONVERT% ru-boundaries.o5m --out-pbf -o=ru-boundaries.pbf

rem TODO: --tee instead of reading twice
rem Задачи: --tee вместо того, чтобы читать дважды
call %OSMOSIS% ^
 --read-pbf file=ru-boundaries.pbf outPipe.0=data1 ^
 --read-pbf file=ru-boundaries.pbf outPipe.0=data2 ^
 --tag-transform file=..\..\tools\transform_places.xml inPipe.0=data1 outPipe.0=5 ^
 --tag-filter accept-relations boundary=administrative,postal_code inPipe.0=5 outPipe.0=6 ^
 --used-way inPipe.0=6 outPipe.0=7 ^
 --tag-transform file=..\..\tools\transform_places.xml inPipe.0=data2 outPipe.0=8.1 ^
 --tag-filter reject-relations inPipe.0=8.1 outPipe.0=8 ^
 --tag-filter accept-ways boundary=administrative,postal_code inPipe.0=8 outPipe.0=9 ^
 --used-node inPipe.0=9 outPipe.0=10 ^
 --used-node inPipe.0=7 outPipe.0=11 ^
 --merge inPipe.0=10 inPipe.1=11 outPipe.0=12 ^
 --write-pbf file=ru-boundaries.osm.pbf omitmetadata=false compress=deflate inPipe.0=12 

echo .
echo Making bounds with mkgmap...
echo .
 java -cp %MKGMAP% ^
     uk.me.parabola.mkgmap.reader.osm.boundary.BoundaryPreprocessor ^
     ru-boundaries.osm.pbf ..\boundary
 del /q /s USSR.o5m
 del /q /s ru-boundaries.*


:: =============================================================
rem Добавляет поддельный тег admin_level для всех полигонов place Osmosis.
echo .
echo .   Osmosis 
echo .
echo . Adds fake admin_level tag for all place polygons.
echo . This is needed for better search generation after creating borders with mkgmap
echo .
echo . Добавляет поддельный тег admin_level для всех полигонов place.
echo . Это необходимо для лучшего поиска после создания границ с помощью mkgmap
echo .
 cd "%BASEDIR%\work\input"
call %OSMOSIS% ^
 --read-pbf file=local.osm.pbf  ^
 --tag-transform file=..\..\tools\transform_places.xml ^
 --write-pbf file=..\output\USSR.osm.pbf
rem --write-pbf file=..\output\USSR.pbf omitmetadata=true
rem --write-pbf file=..\output\USSR.pbf omitmetadata=false compress=deflate 


:: =============================================================
rem Вырезаем из файла OSM данных нужную площадь
echo =============================================================
echo .
echo .   cut out the desired data file OSM area
echo .
echo . Вырезаем из файла OSM данных нужную площадь
echo .
 cd "%BASEDIR%\work\output"
 call %OSMOSIS% ^
   --read-pbf file=USSR.osm.pbf ^
   --tee 2 ^
   --bounding-polygon file=..\..\poly\Russia_NW.poly completeWays=yes ^
   --write-pbf file=Russia_NW.osm.pbf omitmetadata=true ^
   --bounding-polygon file=..\..\poly\Russia_EU.poly completeWays=yes ^
   --write-pbf file=Russia_EU.osm.pbf omitmetadata=true


:: =============================================================
rem Joining map and elevation data ...
rem Cоединить данные OSM и данные рельефа
echo =============================================================
echo .
echo .   join OSM and elevation data
echo .
echo . Cоединить данные OSM и данные рельефа
echo .
 call %OSMOSIS% ^
   --read-pbf file=Russia_NW.osm.pbf ^
   --read-pbf file=..\..\elevation\%MYELE%_Russia_NW.osm.pbf ^
   --merge ^
   --write-pbf file=Topo_Ru_NW.osm.pbf omitmetadata=true

 call %OSMOSIS% ^
   --read-pbf file=Russia_EU.osm.pbf ^
   --read-pbf file=..\..\elevation\%MYELE%_Russia_EU.osm.pbf ^
   --merge ^
   --write-pbf file=Topo_Ru_EU.osm.pbf omitmetadata=true


echo .
echo .
echo Start:%START%, Ende:%TIME%
pause

Offline

#331 2017-07-28 16:58:22

Eugeny_B
Member
Registered: 2014-11-30
Posts: 259

Re: Mkgmap

3. В конце запускаем файл 03__splitting_create.bat который создает карту. Но предварительно попросит Вас сделать выбор. И чтобы выбор работал Вам надо подредактировать его (обзавестись стилями, вспомнил!!!! не назвал еще одну программу для редактирования TYP файлов - понадобится!!! Вписать соответствующие имена (поймете)

@echo off

 set START=%TIME%
 set BASEDIR=%CD%
 set VERSION=%date:~8%%date:~3,-5%

 set WGET="%BASEDIR%"\tools\wget\bin\wget.exe
 set OSMCONVERT="%BASEDIR%"\tools\osmconvert\osmconvert64
 set OSMFILTER="%BASEDIR%"\tools\osmfilter\osmfilter
 set OSMOSIS="%BASEDIR%"\tools\osmosis\bin\osmosis
 set MKGMAP="%BASEDIR%"\tools\mkgmap\mkgmap.jar
 set SPLITTER="%BASEDIR%"\tools\splitter\splitter.jar
 set GPSBABEL="%PROGRAMFILES(x86)%"\GPSBabel\gpsbabel

:: ================================================================================
rem cls
echo .
echo .
echo Введите номер - соответствующей карты
echo 1 - Карта Северо-Запада России
echo 2 - Карта Европейской части России
echo 3 - Топографическая карта Северо-Запада России
echo 4 - Топографическая карта Европейской части России
echo 0 - Exit -
echo .
set /p pset="Enter № My-Map - "
if %pset%==1 set MYMAP=Russia_NW
if %pset%==2 set MYMAP=Russia_EU
if %pset%==3 set MYMAP=Topo_Ru_NW
if %pset%==4 set MYMAP=Topo_Ru_EU
if %pset%==0 goto EOS
echo My-Map is - %MYMAP%


:: ================================================================================
echo .
echo .
echo Введите номер - соответствующего выбранного стиля
echo создоваемой карты
echo 1 - My-style -
echo 2 - default -
echo 3 - My-default -
echo 4 - Maptourist -
echo 5 - Stranger -
echo 6 - Stranger_M -
echo 7 - ________ -
echo 8 - Auto_Tour -
echo 9 - fzk -
echo 0 - Exit -
echo .
set /p NAME="Enter NAME Style - "
echo NAME Style is - %NAME%
if %NAME%==1 goto style1
if %NAME%==2 goto style2
if %NAME%==3 goto style3
if %NAME%==4 goto style4
if %NAME%==5 goto style5
if %NAME%==6 goto style6
if %NAME%==7 goto style7
if %NAME%==8 goto style8
if %NAME%==9 goto style9

goto EOS

rem set MYSTYLE=      - Имя папки со стилем, имя стиля
rem set MYFID=        - FID карты

:style1
 set MYSTYLE=My-style
 set MYFID=1000
goto pusk

:style2
 set MYSTYLE=default
 set MYFID=4000
goto pusk

:style3
 set MYSTYLE=My-default
 set MYFID=4600
goto pusk

:style4
 set MYSTYLE=Maptourist
 set MYFID=4200
goto pusk

:style5
 set MYSTYLE=Stranger
 set MYFID=4300
goto pusk

:style6
 set MYSTYLE=Stranger_M
 set MYFID=4400
goto pusk

:style7
 set MYSTYLE=%MYSTYLE%
 set MYFID=%MYFID%
goto pusk

:style8
 set MYSTYLE=Auto_Tour
 set MYFID=4700
cls
echo ==============================================================================
echo . Вы выбрали стиль Auto_Tour
echo . http://www.freizeitkarte-osm.de/garmin/en/index.html
echo Введите номер - выбранного TYP-файла создаваемой карты
echo 1 - freizeit.TYP - Дизайн "отдых":
echo     Стандартное исполнение всех Freizeitkarten карт проекта, который легко
echo     использовать на ПК (Basecamp, QLandkarte), а также устройствах GPS.
echo     Для многих областей используются "бледные" цвета с контрастированием
echo     "среднего". Улицы, дороги и важные символы представлены более
echo     "значительно". В целом, дизайн основан на Mapnik стиле OpenStreetMap.
echo     Важные объекты находятся в "чистых" цветах. Эти карты "легко" читать
echo     для людей с дефектным цветовым зрением. Автор: Клаус
echo 2 - contrast.TYP - Дизайн "контраст":
echo     Основное применение этой конструкции является портативное устройство GPS.
echo     Цвета "сильнее" по сравнению с расчетной "Freizeit". Области лучше видно
echo     на сенсорных портативных устройствах GPS.
echo     Кроме того, были усилены контуры дорог. Автор: Стефан
echo 3 - outdoor.TYP - Дизайн "на открытом воздухе":
echo     Дизайн оптимизирован для использования на карманных устройствах GPS
echo     (проверено с Garmin GPSMAP 62s). Все районы отмечены в "бледных" цветах с
echo     "средним" контрастом. Улицы, дороги и важные иконки значительно
echo     отображаются. В целом, дизайн основан на "Top50" и карт "ИКАО". Важные
echo     объекты находятся в "чистых" цветах. Эти карты "легко" читать для людей с
echo     дефектным цветовым зрением. Автор: Роман
echo 4 - outdoorc.TYP - Дизайн "контраст на открытом воздухе":
echo     Дизайн происходит от "контраста" Улучшенная контраст между землей и дорог.
echo     Чтобы выделить треки и важные символы участки unicolored.
echo     Т.е. никаких символов на площадях не включаются (например, смешанный лес).
echo     Дорожки и тропинки нарисованы сильнее. Автор: SwissPoPo
echo 5 - outdoorl.TYP - Дизайн "наружного света":
echo     Дизайн происходит от "на открытом воздухе". Улучшенная контраст между
echo     землей и дорог. Чтобы выделить треки и важные символы участки unicolored.
echo     Т.е. никаких символов на площадях не включаются (например, смешанный лес).
echo     Автор: Роман
echo 6 - small.TYP - Дизайн "маленький":
echo     Конструкция оптимизирована для портативных GPS устройств, предпочтительно
echo     с небольшим дисплеем. Характеристики: Цвета "сильнее" по сравнению с
echo     расчетной "Freizeit". Области лучше видно на сенсорных портативных
echo     устройствах GPS. Кроме того, были усилены контуры дорог. Равномерно
echo     отображаются на дорогах и пути. Т.е. они не различают "узкой", "средний"
echo     Дороги показаны в виде черной сплошной линии
echo     и "широкий". и линий в виде пунктирной черной линией. Походные тропы имеют
echo     альтернативный цвет (синий = T1 / T2, красный = T3 / T4, серый = T5 / T6 /
echo     через феррата). Автор: Стефан
echo .
set /p TYPE="Enter TYPE Style - "
echo TYPE Style is - %TYPE%
 cd "%BASEDIR%\styles\%MYSTYLE%"
if %TYPE%==1 copy /y freizeit.TYP %MYFID%.TYP
if %TYPE%==2 copy /y contrast.TYP %MYFID%.TYP
if %TYPE%==3 copy /y outdoor.TYP %MYFID%.TYP
if %TYPE%==4 copy /y outdoorc.TYP %MYFID%.TYP
if %TYPE%==5 copy /y outdoorl.TYP %MYFID%.TYP
if %TYPE%==6 copy /y small.TYP %MYFID%.TYP
goto pusk

:style9
 set MYSTYLE=fzk
 set MYFID=4100
cls
echo ==============================================================================
echo . Вы выбрали стиль Freizeitkarte
echo . http://www.freizeitkarte-osm.de/garmin/en/index.html
echo Введите номер - выбранного TYP-файла создаваемой карты
echo 1 - freizeit.TYP - Дизайн "отдых":
echo     Стандартное исполнение всех Freizeitkarten карт проекта, который легко
echo     использовать на ПК (Basecamp, QLandkarte), а также устройствах GPS.
echo     Для многих областей используются "бледные" цвета с контрастированием
echo     "среднего". Улицы, дороги и важные символы представлены более
echo     "значительно". В целом, дизайн основан на Mapnik стиле OpenStreetMap.
echo     Важные объекты находятся в "чистых" цветах. Эти карты "легко" читать
echo     для людей с дефектным цветовым зрением. Автор: Клаус
echo 2 - contrast.TYP - Дизайн "контраст":
echo     Основное применение этой конструкции является портативное устройство GPS.
echo     Цвета "сильнее" по сравнению с расчетной "Freizeit". Области лучше видно
echo     на сенсорных портативных устройствах GPS.
echo     Кроме того, были усилены контуры дорог. Автор: Стефан
echo 3 - outdoor.TYP - Дизайн "на открытом воздухе":
echo     Дизайн оптимизирован для использования на карманных устройствах GPS
echo     (проверено с Garmin GPSMAP 62s). Все районы отмечены в "бледных" цветах с
echo     "средним" контрастом. Улицы, дороги и важные иконки значительно
echo     отображаются. В целом, дизайн основан на "Top50" и карт "ИКАО". Важные
echo     объекты находятся в "чистых" цветах. Эти карты "легко" читать для людей с
echo     дефектным цветовым зрением. Автор: Роман
echo 4 - outdoorc.TYP - Дизайн "контраст на открытом воздухе":
echo     Дизайн происходит от "контраста" Улучшенная контраст между землей и дорог.
echo     Чтобы выделить треки и важные символы участки unicolored.
echo     Т.е. никаких символов на площадях не включаются (например, смешанный лес).
echo     Дорожки и тропинки нарисованы сильнее. Автор: SwissPoPo
echo 5 - outdoorl.TYP - Дизайн "наружного света":
echo     Дизайн происходит от "на открытом воздухе". Улучшенная контраст между
echo     землей и дорог. Чтобы выделить треки и важные символы участки unicolored.
echo     Т.е. никаких символов на площадях не включаются (например, смешанный лес).
echo     Автор: Роман
echo 6 - small.TYP - Дизайн "маленький":
echo     Конструкция оптимизирована для портативных GPS устройств, предпочтительно
echo     с небольшим дисплеем. Характеристики: Цвета "сильнее" по сравнению с
echo     расчетной "Freizeit". Области лучше видно на сенсорных портативных
echo     устройствах GPS. Кроме того, были усилены контуры дорог. Равномерно
echo     отображаются на дорогах и пути. Т.е. они не различают "узкой", "средний"
echo     Дороги показаны в виде черной сплошной линии
echo     и "широкий". и линий в виде пунктирной черной линией. Походные тропы имеют
echo     альтернативный цвет (синий = T1 / T2, красный = T3 / T4, серый = T5 / T6 /
echo     через феррата). Автор: Стефан
echo .
set /p TYPE="Enter TYPE Style - "
echo TYPE Style is - %TYPE%
 cd "%BASEDIR%\styles\%MYSTYLE%"
if %TYPE%==1 copy /y freizeit.TYP %MYFID%.TYP
if %TYPE%==2 copy /y contrast.TYP %MYFID%.TYP
if %TYPE%==3 copy /y outdoor.TYP %MYFID%.TYP
if %TYPE%==4 copy /y outdoorc.TYP %MYFID%.TYP
if %TYPE%==5 copy /y outdoorl.TYP %MYFID%.TYP
if %TYPE%==6 copy /y small.TYP %MYFID%.TYP
goto pusk

:default
 set MYSTYLE=%MYSTYLE%
 set MYFID=%MYFID%

:pusk
 cd "%BASEDIR%"
cls
echo ==============================================================================
echo MY-FID = %MYFID%    MY-STYLE = %MYSTYLE%
echo MY-TYP = %MYFID%    MY-MAP   = %MYMAP%
echo ==============================================================================

 set DESCRIPTION=%MYMAP%
 set FAMILY=%MYSTYLE%
 set SERIES=%MYSTYLE%
 set OVERVIEW=%MYMAP%

:: ================================================================================
rem Очистка целевых каталогов
echo ==============================================================================
echo .
echo .   Cleaning the target directory
echo .
echo . Очистка целевых каталогов
echo .
 rmdir /q /s "%BASEDIR%\work\%MYSTYLE%"
 rmdir /q /s "%BASEDIR%\_Maps\%FAMILY%.gmap"
   del /q /s "%BASEDIR%\_Maps\%MYSTYLE%.img"

:: ================================================================================
rem Разбиваем файл данных OSM на плитки Splitter-ом.
echo ==============================================================================
echo .
echo .   Splitting a file OSM data
echo .
echo . Разбиваем файл данных OSM на плитки Splitter-ом.
echo .
echo ==============================================================================
echo MY-FID = %MYFID%    MY-STYLE = %MYSTYLE%
echo MY-TYP = %MYFID%    MY-MAP   = %MYMAP%
echo ==============================================================================
 mkdir "%BASEDIR%\work\%MYSTYLE%\logs"
 mkdir "%BASEDIR%\work\%MYSTYLE%\tiles"
 mkdir "%BASEDIR%\work\%MYSTYLE%\splitted"

 java -Xmx3G -jar %SPLITTER% ^
 --max-threads=2 ^
 --description="%DESCRIPTION%-%MYSTYLE% v. %DATE%" ^
 --no-trim ^
 --precomp-sea="%BASEDIR%\work\input\sea.zip" ^
 --keep-complete=true ^
 --mapid=%MYFID%0001 ^
 --max-nodes=1600000 ^
 --geonames-file="%BASEDIR%\work\input\cities1000.zip" ^
 --write-kml="%BASEDIR%\work\%MYSTYLE%\tiles\tiles.kml" ^
 --output=pbf ^
 --output-dir="%BASEDIR%\work\%MYSTYLE%\splitted" ^
  "%BASEDIR%\work\output\%MYMAP%.osm.pbf" > "%BASEDIR%\work\%MYSTYLE%\logs\splitter.log"

:: ================================================================================

 cd "%BASEDIR%\work\%MYSTYLE%\tiles"
 %GPSBABEL% -i kml -o osm -f tiles.kml -F tiles.osm
 %GPSBABEL% -i kml -o gpx -f tiles.kml -F tiles.gpx
 %GPSBABEL% -i kml -o gdb -f tiles.kml -F tiles.gdb

:: ================================================================================
rem Создаем карту gmap (для BaseCamp и MapSource) с помощью MKGMAP
echo ==============================================================================
echo .
echo .    Create a gmap (for BaseCamp and MapSource) using MKGMAP...
echo .
echo . Создаем карту gmap (для BaseCamp и MapSource) с помощью MKGMAP
echo .
echo . build map files (img, mdx, tdb) and gmap
echo .
echo ==============================================================================
echo MY-FID = %MYFID%    MY-STYLE = %MYSTYLE%
echo MY-TYP = %MYFID%    MY-MAP   = %MYMAP%
echo ==============================================================================

rem copy /y "%BASEDIR%\tools\logging.properties" "%BASEDIR%\work\%MYSTYLE%\splitted"
:: ================================================================================

 cd "%BASEDIR%\work\%MYSTYLE%\splitted"
 mkdir "%BASEDIR%\work\%MYSTYLE%\_MapSource"

rem java -Xmx3G -Dlog.config=logging.properties -jar %MKGMAP% ^
 java -Xmx3G -jar %MKGMAP% ^
 --max-jobs=2 ^
 --code-page=1251 ^
 --family-id=%MYFID% ^
 --family-name="%FAMILY%" ^
 --series-name="%SERIES%" ^
 --description="%DESCRIPTION%-%MYSTYLE% v. %DATE%" ^
 --overview-mapname="%OVERVIEW%" ^
 --overview-mapnumber=%MYFID%0000 ^
 --product-version=%VERSION% ^
 --product-id=1 ^
 --gmapi ^
 --style-file="%BASEDIR%\styles\%MYSTYLE%" ^
 --output-dir="%BASEDIR%\work\%MYSTYLE%\_MapSource" ^
 --read-config="%BASEDIR%\styles\optionsfile.args" ^
 -c "%BASEDIR%\work\%MYSTYLE%\splitted\template.args" "%BASEDIR%\styles\%MYSTYLE%\%MYFID%.typ" ^
 --check-styles > "%BASEDIR%\work\%MYSTYLE%\logs\mkgmap.stdout" 2>"%BASEDIR%\work\%MYSTYLE%\logs\mkgmap.stderr"


:: ================================================================================
rem Создать образ gmapsupp (для GPS приемника)
echo ==============================================================================
echo .
echo .    Create gmapsupp.img (for GPS receiver)...
echo .
echo . Создаем gmapsupp.img (для GPS приемника)
echo .
echo ==============================================================================
echo MY-FID = %MYFID%    MY-STYLE = %MYSTYLE%
echo MY-TYP = %MYFID%    MY-MAP   = %MYMAP%
echo ==============================================================================
 cd "%BASEDIR%\work\%MYSTYLE%\_MapSource"

 java -Xmx3G -jar %MKGMAP% ^
 --max-jobs=2 ^
 --code-page=1251 ^
 --family-id=%MYFID% ^
 --family-name="%FAMILY%" ^
 --series-name="%SERIES%" ^
 --description="%DESCRIPTION%-%MYSTYLE% v. %DATE%" ^
 --overview-mapname="%OVERVIEW%" ^
 --overview-mapnumber=%MYFID%0000 ^
 --product-version=%VERSION% ^
 --product-id=1 ^
 --index ^
 --x-split-name-index ^
 --gmapsupp %MYFID%*.img "%BASEDIR%\styles\%MYSTYLE%\%MYFID%.typ"

 rename gmapsupp.img "%MYSTYLE%.img"
 move /y "%MYSTYLE%.img" "%BASEDIR%\_Maps"
 move /y "%FAMILY%.gmap" "%BASEDIR%\_Maps"

:: mkdir - создаёт папку
:: rmdir - удаляет папку

echo ==============================================================================
echo . 
echo .           Не забудьте забрать карты:
echo . Для прибора из папки %BASEDIR%\_Maps\%MYSTYLE%.img
echo . Для BaseCamp и MapSource папку %BASEDIR%\_Maps\%FAMILY%.gmap
echo .
echo ==============================================================================
echo MY-FID = %MYFID%    MY-MAP   = %MYMAP%
echo ==============================================================================

echo .
echo Start:%START%, Ende:%TIME%
echo .
pause

 rmdir /q /s "%BASEDIR%\work\%MYSTYLE%"
rem rmdir /q /s "%BASEDIR%\work\%MYSTYLE%\_MapSource"
rem rmdir /q /s "%BASEDIR%\work\%MYSTYLE%\splitted"

Offline

#332 2017-07-28 17:18:19

Eugeny_B
Member
Registered: 2014-11-30
Posts: 259

Re: Mkgmap

Иногда строку --read-config="%BASEDIR%\styles\optionsfile.args" ^
Я меняю на --read-config="%BASEDIR%\styles\optionsfile2.args" ^
Я продолжаю экспериментировать но не так часто, как хотелось. Надо работать со стилем, с TYPфайлом с опциями запуска программ дабы получить приличную карту. Про хорошую не говорю - так как адресный поиск в OSM России сделан... (Даже Париж в России пишется через Ж...)
Ну и секрет (хотя его уже озвучил - подмена админ-левелов.
Файл transform_places.xml

  <?xml version="1.0" ?> 
- <translations>
- <translation>
  <name>Fake admin_level=7</name> 
  <description>Adds fake admin_level tag for all place polygons. This is needed for better search generation after creating borders with mkgmap</description> 
- <match>
  <tag k="place" match_id="place" v="city|town" /> 
  </match>
- <output>
  <copy-all /> 
  <tag from_match="place" k="admin_level" v="7" /> 
  <tag from_match="place" k="boundary" v="administrative" /> 
  <tag from_match="place" k="type" v="boundary" /> 
  </output>
  </translation>
- <translation>
  <name>Fake admin_level=11</name> 
  <description>Adds fake admin_level tag for all place polygons. This is needed for better search generation after creating borders with mkgmap</description> 
- <match>
  <tag k="place" match_id="place" v="village|hamlet" /> 
  </match>
- <output>
  <copy-all /> 
  <tag from_match="place" k="admin_level" v="11" /> 
  <tag from_match="place" k="boundary" v="administrative" /> 
  <tag from_match="place" k="type" v="boundary" /> 
  </output>
  </translation>
  </translations>

Файл optionsfile2.args

# ------------------------------------------------------------------------------
# Purpose   : mkgmap-configuration file
# Version   : 1.3.13 - 2016/11/11
# Generated : Mon Nov 21 19:45:35 2016
# ------------------------------------------------------------------------------

# General options:
# ---------------

# File options:
# ------------

# --description=text
#   Устанавливает описательный текст для карты. Это может быть отображено в QLandkarte,
#   MapSource или на GPS, где она обычно показанной ниже family-name. 
#   Пример: --description="Германия, Дания" 
#   Обратите внимание: если вы используете splitter.jar для построения файла template.args
#   и использовать -c template.args, то этот файл может содержать «description»,
#   которые переопределяют этот параметр.
#   Используйте "--description" в splitter.jar чтобы изменить описание в файле template.args.
# description="RUS (Release 17.01)"

# --country-name=name
#   Sets the map's country name. The default is "COUNTRY".
#   Задает название страны на карте. По умолчанию "COUNTRY".
 country-name=Российская Федерация
# country-name=Россия
# country-name=Русь

# --country-abbr=abbreviation
#   Sets the map's abbreviated country name. The default is "ABC".
#   Задает Сокращенное наименование страны на карте. По умолчанию "ABC".
 country-abbr=RUS

# -- mapname=name
#   Установить имя карте. Garmin карты названы 8 значным numbersList.
#   По умолчанию 63240001. Если вы собираетесь делать карту для других пользователей,
#   лучше использовать другое имя, так что-бы оно было уникальным и не конфликтовало с другими.
# mapname=63240001

# Label options:
# -------------

# --latin1
#   Это эквивалентно --code-page=1252.
# --unicode
#   Это эквивалентно --code-page=65001. Отметим, что только новые устройства поддерживают Unicode.
# --code-page=number
#   Эта опция позволяет использовать международные символы.
#   Только 8 битовых кодировок поддерживается, и поэтому вы должны указать кодовую страницу,
#   которую вы хотите использовать. --code-page=1251
#   Это полностью зависит от прошивки устройства, которые поддерживаются кодовые страницы.
# code-page=1251

# --lower-case
#   Разрешить меткам содержать строчные буквы. Заметим, что большинство или все устройства Garmin
#   не способны отображать строчные буквы под углом так-что, эта опция как правило, бесполезна.
 lower-case

# Address search options:
# ----------------------

# --index
#   Generate a global index that can be used with MapSource.
#   Makes the find places functions in MapSource available.
#   The index consists of two files named osmmap.mdx and osmmap_mdr.img
#   by default.  The overview-mapname can be used to change the name.
#   If the mapset is sent to the device from MapSource, it will enable
#   find by name and address search on the GPS.
# --index
#   Создание индекса глобального адресного поиска. Если опция --gmapsupp также дается,
#   то индекс создается в результатирующем файле gmapsupp.img, так что поиск адреса
#   будет работать на устройстве GPS.
#   Если вместо --index задана опция --tdbfile, то индекс состоит из двух файлов,
#   названных osmmap.mdx и osmmap_mdr.img которые могут быть использованы с MapSource.
#   (Для совместимости, вам не нужно задавать опцию --tdbfile если опция --gmapsupp не задана).
#   Если наряду с --index опцией заданы обе опции --gmapsupp и --tdbfile,
#   то будет создано оба индекса. Заметим, что это потребует примерно вдвое больше памяти.
#   Опция --overview-mapname может быть использована для изменения имен файлов osmmap.mdx и osmmap_mdr.img.
#   Если MAPSET посылается на устройство с MapSource, это позволит найти по названию и поиск адреса по GPS.
#   Поля адреса присваиваются специальными mkgmap тегами адресов с использованием файла стиля:
#    mkgmap:country      - страна
#    mkgmap:region       - регион
#    mkgmap:city         - город
#    mkgmap:postal_code  - почтовый индекс
#    mkgmap:street       - улица
#    mkgmap:housenumber  - номер дома
#    mkgmap:phone        - телефон
#    (Mkgmap:is_in - используется по местоположению-автозаполнение location-autofill=is_in)
#   Если индекс создается из ранее собранных .img файлов, то та же самая кодовая страница и опции сортировки
#   (например --code-page, --latin1) должны использоваться какие были использованы для компиляции
#   отдельных фрагментов карты.
index

# --split-name-index
#   Временная опция для того, чтобы индексировать каждую часть названия улицы отдельно.
#   Так, например, если на улице "Александра Gryglewskiego", то вы сможете найти его
#   и как "Aleksandra" и как "Gryglewskiego". Это также приведет к увеличению размера индекса.
#   Полезно в странах, где поиск первого слова в имени идет неправильно.
split-name-index

# --bounds=directory
#   The directory that contains the preprocessed bounds files.
#   Default: bounds
# --bounds=directory|zipfile
#   Каталог или архивный файл, содержащий файлы предварительно обработанный границы.
#   Bounds файлы в виде архива должны быть расположены в корневом каталоге ZIP-файла.
#   Предпроцессированные границы используются для добавления специальных тегов для всех элементов
#   (точек, линий и полигонов), содержащих информацию о местоположении.
#   Файл стиля может быть использован для назначения адреса метки mkgmap: страна, mkgmap: регион и т.д.,
#   используя эти значения.
#   Следующие специальные метки добавляются:
#     mkgmap:admin_level2:   Название admin_level=2 границы 
#     mkgmap:admin_level3:   Название admin_level=3 границы
#     ..
#     mkgmap:admin_level11
#     mkgmap: postcode        Почтовый индекс: значение postal_code
#   Предпроцессированные границы могут быть созданы с помощью следующей команды:
#      Java -cp mkgmap.jar 
#         uk.me.parabola.mkgmap.reader.osm.boundary.BoundaryPreprocessor
#         <Входной_файл> <boundsdir>
#   Входной файл должен содержать границы, которые должны быть предварительно обработаны.
#   Он может иметь OSM, PBF или формат O5M файла. Рекомендуется, что он содержит только
#   граничные данные чтобы избежать очень высокой загрузки памяти.
#   Boundsdir - это каталог, в котором обработанные файлы хранятся.
#   Этот каталог может быть использован в качестве --bounds параметр с mkgmap.
# bounds=..\..\..\work\input\bounds.zip
 bounds=..\..\..\work\boundary
# bounds=..\..\boundary\local


# --location-autofill=[option1,[option2]]
#   Controls how country, region, city and zip info is gathered for
#   cities, streets and pois.
#   Default: bounds
#
#   bounds  The preprocessed boundaries are used to mark all points,
#           lines and polygons within a boundary with the special tag:
#           mkgmap:admin_level2 : Name of the admin_level=2 boundary
#           mkgmap:admin_level3 : Name of the admin_level=3 boundary
#           ..
#           mkgmap:admin_level11
#           mkgmap:postcode : the postal_code value
#
#           The style file can be used to assign the address tags mkgmap:country,
#           mkgmap:region etc. with these values.
#
#   is_in   The is_in tag is analyzed for country and region information.
#           This is done only for address tags that are not defined by the
#           style rules.
#
#   nearest If all methods before fail the city/hamlet points that are
#           closest to the element are used to assign the missing address tags.
#           Warning: elements may end up in the wrong country/region/city.
# --location-autofill=[option1,[option2]]
#   Управляет адресные поля для страны, региона, города и почтовый индекс данные собраны автоматически,
#   если поля не установлены, используя теги специальный mkgmap адресов
#   (например mkgmap: город - см индекса опция).
#   Внимание: автоматическое назначение адресов полей как-то догадка.
#   is_in
#   Is_in тег анализируется для получения информации страны и региона.
#   nearest 
#   Город/Деревня city/hamlet точки, которые ближе всего к элементу используются для назначения
#   недостающие поля адреса. Учтите, что города, расположенные в том же плитки используются только.
#   Таким образом, результаты, близкие к границе плитки имеют меньше качества.
 location-autofill=bounds 
# location-autofill=is_in,nearest

#--housenumbers
#  Enables house number search for OSM input files.
#  All nodes and polygons having addr:housenumber and addr:street set are matched
#  to streets. A match between house number element and street is created if
#  the street is located within a radius of 150m and the addr:street tag of the
#  house number element
#    - equals the mgkmap:street tag of the street. mkgmap:streets should be set
#      in the style file.
#    - or it equals the name of the street stripped by garmin shields and all text
#      within round brackets.
#  Example:
#     Node -  addr:street=Main Street addr:housenumber=2
#     Way 1 - mkgmap:street=Main Street
#     Way 2 - name=Main Street (A504)
#     Way 3 - mkgmap:street=Mainstreet
#     Way 4 - name=Main Street [A504]
#    The node matches to way 1 and way 2 but not to way 3 (does not equal exactly)
#    and not to way 4 (only text in round brackets is ignored)
# --housenumbers
#   Позволяет поиск номера дома входных файлов OSM. Все точки и полигоны, имеющие addr:housenumber набор,
#   сопоставляются с улицами. Соответствие между элементом номер дома и улица создается,
#   если улица находится в радиусе 150 метров и значение tag addr:street номер дома элемента равен
#   значению тега mgkmap:street улицы. Признак mkgmap:street должен быть добавлен к улице в файле стиля.
#   Для оптимальных результатов признаки mkgmap:city и mkgmap:postal_code должны быть установлены
#   для housenumber элемента. Если улица соединяет два или более городов, это позволяет
#   найти все адреса вдоль дороги, даже если они имеют тот же номер.
#   Пример данного названия улицы:
#       Node - addr:street=Main Street addr:housenumber=2
#       Way 1 - name=Main Street
#       Way 2 - name=Main Street, mkgmap:street=Main Street
#       Way 3 - mkgmap:street=Mainstreet
#       Way 4 - name=Main Street [A504] 
#   Узел соответствует к Пути 2. Она имеет mkgmap:street набор с значением,
#   равное значению тега addr:street узла номера дома.
#   Если улица не дана с addr:housenumber, mkgmap использует эвристику, чтобы найти лучшее соответствие.
 housenumbers

# Overview map options:
# ---------------------

# --overview-mapname=name
#   If --tdbfile is enabled, this gives the name of the overview
#   .img and .tdb files. The default map name is osmmap.
# --overview-mapname=name
#   Если --tdbfile включена, это дает имя обзорной .img и .tdb файлов.
#   Название карты по умолчанию osmmap.
# overview-mapname=RUS-Test
# overview-mapname=Overview-Test

# --overview-mapnumber=8 digit number
#   If --tdbfile is enabled, this gives the internal 8 digit
#   number used in the overview map and tdb file. The default
#   number is 63240000.
# --overview-mapnumber=8 digit number
#   Если --tdbfile включена, это дает внутренний номер из 8 цифр,
#   используемый в обзорной карте и .tdb файла. Значение по умолчанию 63240000.
# overview-mapnumber=63240000

#--overview-levels
#  like levels, specifies additional levels that are to be written to the
#  overview map. Counting of the levels should continue. Up to 8 additional
#  levels may be specified, but the lowest usable resolution with MapSource
#  seems to be 11. The hard coded default is empty.
# --overview-levels
#   Как и levels, определяет дополнительные уровни, которые должны быть записаны
#   на обзорной карте. Подсчет уровней должен быть продолжен. До 8 дополнительных
#   уровней могут быть определены, но минимальным используемым разрешение с MapSource,
#   кажется, 11. жестко по умолчанию является пустым.

#--remove-ovm-work-files
#  If overview-levels is used, mkgmap creates one additional file
#  with the prefix ovm_ for each map (*.img) file.
#  These files are used to create the overview map.
#  With option --remove-ovm-work-files=true the files are removed
#  after the overview map was created. The default is to keep the files.
# --remove-ovm-work-files
#   Если используется overview-levels, mkgmap создает один дополнительный файл
#   с префиксом ovm_ для каждой карты (* .img). Эти файлы используются для создания обзорной карты.
#   С опцией --remove-ovm-work-files=true файлы удаляются после того как обзорная карта была создана.
#   По умолчанию файлы сохраняются.
 remove-ovm-work-files

# Style options:
# -------------

# --style-file=file
#   Specify an external file to obtain the style from.  'file' can
#   be a directory containing files such as info, lines, options
#   (see resources/styles/default for an example).  The directory
#   path must be absolute or relative to the current working
#   directory when mkgmap is invoked.
# --style-file=file
#   Укажите внешний файл для получения стиль. «file» может быть каталог, содержащий файлы,
#   такие как info, lines, options (см. resources/styles/default для примера).
#   Путь к каталогу должен быть абсолютным или относительным к текущей рабочей директории при вызове mkgmap.
#   Файл может быть архивный файл, содержащий файлы вместо каталога.
#   Файлы могут быть на самом высоком уровне или содержится в папке внутри архива.
#   Если файл ZIP содержит более одной папки верхнего уровня, то каждая папка - это имя стиля,
#   который может быть выбран с --style option.
#   Аргументом может также быть URL, который определяет местоположение файла стиля.
# style-file=..\..\..\styles\default

# --name-tag-list=list
#   Changes the tag that will be used to supply the name, normally it is just 'name'.
#   Useful for language variations. You can supply a list and the first one will be used.
#   Example: --name-tag-list=name:en,int_name,name
# --name-tag-list
#   Получить тег, который будет использоваться для предоставления имени.
#   Полезно для языковых вариаций. Вы можете предоставить список и первый из них будет использоваться.
#   Например: --name-tag-list=name:en,int_name,name
 name-tag-list=name:ru,name,name:en,int_name

# Product description options:
# ---------------------------

# --family-id
#   This is an integer that identifies a family of products.
# --family-id
#   Это целое число, которое идентифицирует семейство продуктов.
#   Диапазон: [1..9999] Mkgmap по умолчанию: 6324
# family-id=6324

# --family-name
#   If you build several maps, this option describes the
#   family name of all of your maps. Garmin will display this
#   in the map selection screen.
# --family-name
#   Если вы построите несколько карт, эта опция описывается family-name всех ваших карт.
#   Гармин будет отображать в экране выбора карты.
#   Пример: --family-name = "OpenStreetMap mkgmap XL 2019"
# family-name=RUS-Test
# family-name=Family-Test

# --product-id
#   This is an integer that identifies a product within a family.
#   It is often just 1, which is the default.
# --product-id
#   Это представляет собой целое число, которое идентифицирует продукт в семье.
#   Это часто просто 1, который является по умолчанию.
# product-id=1

# --product-version
#   The version of the product. Default value is 1.
# --product-version
#   Версия продукта. Значение по умолчанию равно 1.
# product-version=1701

# --series-name
#   This name will be displayed in MapSource in the map selection
#   drop-down. The default is "OSM map".
# --series-name
#   Это имя будет отображаться в mapsource раскрывающийся список выбора карты.
#   Значение по умолчанию - "OSM map".
# series-name=RUS-Test
# series-name=Series-Test

# --copyright-message=note
#   Specify a copyright message for files that do not contain one.
# --copyright-message=note
#   Укажите информацию об авторских правах для файлов, которые не содержат его.
 copyright-message = "Map: ESB project ; Map Data: OSM contributors; Contour Data: U.S. Geological Survey or J. de Ferranti"

# --copyright-file=file
#   Укажите авторского права сообщения из файла.
#   Обратите внимание, что первое сообщение об авторских правах не отображается на устройстве,
#   но это показано в basecamp. Авторское право-файл должен включать по крайней мере две строки.

# --license-file=file
#   Specify a file which content will be added as license. Every
#   line is one entry. All entrys of all maps will be merged, unified
#   and shown in random order.
# --license-file=file
#   Укажите файл, в котором контент будет добавлен в качестве лицензионного.
#   Все записи всех карты будут объединены в обзорной карте.
# license-file=NW_RUSSIA.license

# Optimization options:
# --------------------

# Miscellaneous options:
# ---------------------

# --route
#   Experimental: Create maps that support routing. This implies --net
#   (so that --net need not be given if --route is given).
#   Экспериментальный: создание карт, которые поддерживают маршрутизацию.
#   Это означает --net
#   (так что --net, не требуется, если ... --route дается).
#   Создание карт, которые поддерживают маршрутизацию.
 route

# --drive-on-left
# --drive-on-right
#   Explicitly specify which side of the road vehicles are
#   expected to drive on. If neither of these options are
#   specified, it is assumed that vehicles drive on the right
#   unless --check-roundabouts is specified and the first
#   roundabout processed is clockwise.
#   Явно указать какую сторону дорожных транспортных средств, 
#   как ожидается, ехать дальше. Если первый вариант обнаружения, 
#   программа пытается выяснить правильный флаг. 
#   Если это обнаружение терпит неудачу, используется второе значение 
#   (или вправо, если иное не указано). С OSM данных в качестве входных данных, 
#   обнаружение пытается выяснить страну Каждая дорога в и сравнивает 
#   число привода на левых дорогах с остальными. 
#   Используйте --bounds опцию, чтобы убедиться, что обнаружение находит правильную страну.
 drive-on=right

# --preserve-element-order
#   Process the map elements (nodes, ways, relations) in the order
#   in which they appear in the OSM input. Without this option,
#   the order in which the elements are processed is not defined.
#   Процесс элементы карты (узлы, пути, отношения) в том порядке,
#   в котором они появляются на входе OSM. Без этой опции, порядок,
#   в котором обрабатываются элементы не определен.
 preserve-element-order

# --add-pois-to-lines
#   Создать POI, для линий. Для каждой линии (не должна быть закрыта) POI,
#   создаются в нескольких точках линии. Каждый POI помечен с теми же метками,
#   как линии и дополнительных тегов, добавленных mkgmap: 
#   mkgmap:line2poi=true и тегом mkgmap:line2poitype принимает следующие значения:
#   	start - начать - Первая точка линии
#   	end - Конец - Последний пункт линии
#   	inner - Внутренний - Каждая точка линии за исключением первого и последнего
#   	mid - середина - средняя точка
# add-pois-to-lines

# --add-pois-to-areas
#   Generate a POI for each area. The POIs are created after the
#   style is applied and only for polygon types that have a
#   reasonable point equivalent.
# --add-pois-to-areas
#   Создать пои для каждого полигона и мультиполигон.
#   На объекты инфраструктуры, созданные после relation style, но, прежде чем другие стили применяются.
#   Каждый POI помечены с теми же тегами area/multipolygon.
#   Кроме того, тег mkgmap:area2poi= true истина устанавливается таким образом,
#   что можно использовать эту информацию в файле points style. Искусственные полигоны,
#   созданные multipolyon обработки не используются. Точки создаются в следующих местах
#   (первое правило, которое применяется):
#   polygons:
#   Первое правило, которое применяется в
#   	первый узел пометить тегом, определенным pois-to-areas-placement
#   	центральная точка
#   multipolygons:
#   Первое правило, которое применяется в
#   	узел с role=label
#   	центральная точка самая большая площадь
 add-pois-to-areas

# --precomp-sea=directoryname
#   Defines the directory that contains the precompiled sea tiles.
#   When this option is defined all natural=coastline tags from the
#   input OSM tiles are removed and the precompiled data is used instead.
#   This option can be combined with the generate-sea options
#   multipolygon, polygons and land-tag. The coastlinefile option
#   is ignored if precomp-sea is set.
# --precomp-sea=directory|zipfile
#   Определяет каталог или архивный файл, содержащий скомпилированные море плитки.
#   Sea файлы в виде архива должны быть расположены в корневом каталоге архива или в подкаталоге sea.
#   Когда эта опция определена все natural=coastline теги входных OSM плитки удаляются
#   и скомпилированных данных используется вместо.
#   Эта опция может быть скомбинирована с опцией generate-sea мультиполигонов,
#   полигонов и land-tag. Опция coastlinefile игнорируется, если precomp-sea устанавливается.
 precomp-sea=..\..\..\work\input\sea.zip

# --generate-sea[=ValueList]
#   Generate sea polygons. ValueList is an optional comma
#   separated list of values:
#   Сформировать морские полигоны. ValueList является 
#   необязательным разделенный запятыми список значений:
#
# multipolygon
#   generate the sea using a multipolygon (the default
#   behaviour so this really doesn't need to be specified).
#   генерировать море с помощью MultiPolygon (поведение по умолчанию,
#   так это на самом деле не нужно уточнить).
#
# no-sea-sectors
#   disable the generation of "sea sectors" when the
#   coastline fails to reach the tile's boundary.
#   отключить генерацию "морских секторов",
#   когда береговая линия не доходит до границы в плитке.
#
# extend-sea-sectors
#   same as no-sea-sectors. Additional adds a point so
#   coastline reaches the nearest tile boundary.
#   так же, как no-sea-sectors. Дополнительная добавляет точку,
#   так береговой линии достигает ближайшей границы плитки.
#
# land-tag=TAG=VAL
#   tag to use for land polygons (default natural=land).
#   тег использовать для наземных полигонов (по умолчанию natural=land).
#
# close-gaps=NUM
#   close gaps in coastline that are less than this distance (metres)
#   близкие пробелы в береговой линии, которые меньше, чем это расстояние (в метрах)
#
#
# --generate-sea[=ValueList]
#   Генерация море полигоны. ValueList является необязательным запятыми список значений:
#
# multipolygon 
#   генерировать море с использованием MultiPolygon (поведение по умолчанию так что это действительно
#   не нужно быть указаны).
#
# polygons | no-mp
#   не порождают море с использованием MultiPolygon - вместо этого генерировать фон морской полигон
#   плюс отдельные земельные полигоны с тегом natural=land. Это требует подходящего типа земля полигона,
#   которые будут определены в файле стиля (предлагается тип 0x010100) и полигон должен быть определен
#   в файле TYP как имеющие более высокий уровень рисования, чем тип морского полигона.
#
# no-sea-sectors
#   отключить генерацию "морских секторов", когда береговая линия не достигнет границы плитки.
#
# extend-sea-sectors
#   так же, как no-sea-sectors. Дополнительная добавляет точку, так побережье достигает
#   ближайшей границы плитки.
#
# land-tag=TAG=VAL
#   Тег использовать для земельных полигонов (по умолчанию natural=land).
#
# close-gaps=NUM
#   устранения пробелов в береговой линии, которые меньше этого расстояния (в метрах)
#
# floodblocker
#   включить блокатор наводнения, который предотвращает наводнение земли, проверяя,
#   содержат ли морские полигоны улицы (работает только с обработкой мультиполигона)
#
# fbgap=NUM
#   наводнения блокатор разрыв в метр (по умолчанию 40) points,
#   которые находятся ближе к sea polygon не блокируют
#
# fbthres=NUM
#   По крайней мере так много highway points должны содержаться в sea polygon,
#   так что она может быть удалена в результате наводнения блокатора (по умолчанию 20)
#
# fbratio=NUM
#   только sea polygons с более высоким соотношением (highway points * 100000 / polygon size)
#   удаляются (по умолчанию 0.5)
#
# fbdebug
#   переключатели на отладку наводнения блокатора генерирует GPX-файлы для каждого полигона
#   проверяется наводнения блокатора
 generate-sea=land-tag=natural=land

# --make-poi-index
#   Generate the POI index (not yet useful). 
# --make-poi-index
#   Генерация индекса POI (еще не полезно). 
 make-poi-index

# --link-pois-to-ways
#   If this option is enabled, POIs that are situated at a point
#   in a way will be associated with that way and may modify the
#   way's properties. Currently supported are POIs that restrict
#   access (e.g. bollards). Their access restrictions are applied
#   to a small region of the way near the POI.
# --link-pois-to-ways
#   Эта опция может скопировать некоторые конкретные атрибуты POI
#   в небольшой части образом POI находится на.
#   Это может использоваться, чтобы позволить барьеры преградить путь
#   или снизить расчетную скорость вокруг светофоров.
#   Объекты POI с шоссе теги highway=* (например, highway=traffic_signals)
#   или барьер barrier=* (например, barrier=cycle_barrier) поддерживаются.
#   Разработчик стиль должен добавить по крайней мере один из
#   тегов доступа (mkgmap:foot, mkgmap:car и т.д.),
#   mkgmap:road-speed и/или mkgmap:road-class к POI.
#   Теги доступа access игнорируются, если они не оказывают никакого влияния на пути,
#   иначе ограничение маршрут добавляется в POI, так что только разрешенные
#   транспортные средства проходят через него.
#   Теги mkgmap:road-speed и/или mkgmap:road-class применяются к небольшой части пути вокруг POI,
#   как правило, на следующем перекрестке или длиной ~ 25 м. 
#   Метки игнорируются для пешеходов pedestrian-only. 
 link-pois-to-ways

# --process-destination
#   Разбивает все motorway_link, trunk_link, primary_link, secondary_link и tertiary_link пути
#   с тегом назначения на две или три части, где вторая часть дополнительно помечены
#   mkgmap:dest_hint=true. Код проверяет для назначения метки, назначения: дорожки,
#   предназначение: уличные и некоторые варианты с: вперед / назад: как назначения: вперед
#   или назначения: полосы: назад. Если значение для назначения найден, назначения тегов установлен
#   в нем и путь разделяется. Это происходит до того, как правила стиля обрабатываются.
#   Это позволяет использовать любой маршрутизируемый тип Garmin (кроме 0x08 и 0x09) для той части,
#   так что устройство Garmin говорит название этой части, как намек, какие целевые следовать.
#    Смотрите также --process-exits.
# process-destination

# --process-exits
#   Обычные устройства Garmin не говори имя выхода на автострадах в то время
#   как маршрутизация с mkgmap создано карт.
#   Эта опция разделяет каждый motorway_link, trunk_link, primary_link, secondary_link
#   и tertiary_link путь на три части. Все части помечены с оригинальными тегами ссылки.
#   Кроме средняя часть помечается следующих тегов:
#     mkgmap:exit_hint=true верно
#     mkgmap:exit_hint_ref=<ref tag value of the exit> <порядковый значение тега выходе>
#     mkgmap:exit_hint_name=<name tag value of the exit> <имя тега значение выхода>
#     mkgmap:exit_hint_exit_to=<exit_to tag value of the exit> <exit_to значения тега от выхода>
#   Добавление правила проверки mkgmap:exit_hint=true делает возможным использовать
#   любой маршрутизируемый тип Garmin (кроме 0x08 и 0x09) для средней части таким образом,
#   что устройство Garmin говорит название этой средней части в виде подсказки,
#   где оставить на motorway/trunk, Первая часть должна иметь тип 0x08 или 0x09,
#   так что Garmin использует подсказку.
# process-exits

# --tdbfile
#   Write a .tdb file.
#   Запись файлов, которые необходимы для работы с MapSource,
#   файл .tdb и обзорной карте.
 tdbfile

# --show-profiles=1
#   Sets a flag in tdb file which marks set mapset as having contour
#   lines and allows showing profile in MapSource. Default is 0
#   which means disabled.
#   Устанавливает флаг в TDB файле, который отмечает набор MAPSET
#   как имеющие контурных линий и позволяет отображать профиль в MapSource.
#   По умолчанию равно 0, что означает отключен. 
 show-profiles=1

# --draw-priority=25
#   Когда две карты покрытия той же площади, эта опция управляет каком порядке они нарисованы в и,
#   следовательно, какая карта находится на вершине которого.
#   Высшие приоритеты рисуются "на верху" низким приоритетом.
# draw-priority=25

# --transparent
#   Сделать карту прозрачным, так что если две карты загружаются, что покрытия той же площади,
#   вы можете видеть сквозь эту карту и увидеть нижнюю карту тоже.
#   Полезно для контурной линии отображает среди прочего.
# transparent

# --hide-gmapsupp-on-pc
#   Set a bit in the gmapsupp.img that tells PC software that the file is already installed on the PC
#   and therefore there is no need to read it from the device.
# --hide-gmapsupp-on-pc
#   Установите бит в gmapsupp.img, который говорит программное обеспечение для ПК,
#   что файл уже установлен на компьютере, и поэтому нет никакой необходимости читать ее из устройства. 
# hide-gmapsupp-on-pc

# --poi-address
#   Включить информацию адреса/телефона к POI.
#   Адрес Информация считывается в соответствии с "Карлсруэ" пометки схеме.
#   Автоматическое заполнение недостающей информации может быть включен
#   с помощью параметра "location-autofill".
#   По умолчанию включено, используйте --no-poi-address, чтобы отключить.
# no-poi-address

# --verbose
#   Makes some operations more verbose. Mostly used with --list-styles.
#   Делает некоторые операции более многословен. В основном используется с --list-styles.
 verbose

# Following the list of map tiles:
# -------------------------------

Этим файлом пользуюсь когда создаю границы самостоятельно.
Когда использую готовые границы - файл optionsfile.args
Отличаются строками:
# country-name=Российская Федерация
# country-abbr=RUS

bounds=..\..\..\work\input\bounds.zip
# bounds=..\..\..\work\boundary

Last edited by Eugeny_B (2017-07-28 17:24:02)

Offline

#333 2017-07-28 17:23:31

Eugeny_B
Member
Registered: 2014-11-30
Posts: 259

Re: Mkgmap

Файлы optionsfile.args и optionsfile2.args находятся в папке styles
Файл transform_places.xml в папке tools
Батфайлы в основной папке OSM
Стиль default - из самой программы mkgmap - поместите папку default в созданную папку styles
http://wiki.openstreetmap.org/wiki/User … map_styles
Посмотрите это
http://www.freizeitkarte-osm.de/garmin/ … pment.html

https://sites.google.com/site/sherco40/
TYPViewer est un editeur de fichier TYP pour GPS Garmin.

Хотелось бы вести диалог, что и как особенно про стили.

Last edited by Eugeny_B (2017-07-28 18:32:20)

Offline

#334 2017-07-29 09:33:39

Eugeny_B
Member
Registered: 2014-11-30
Posts: 259

Re: Mkgmap

LLlypuk82 wrote:

Larry0ua, спасибо за ссылку, пригодилось. Картинку получил, но есть нюансы.
Работает поиск по адресам, по имени, по категориям. Маршруты строятся. Но возникла проблема с подписями объектов (точечных и площадных). Не все названия показываются даже при наведении курсора. Например, озёра, населённые пункты, разные категории магазинов, школы, детсады. При этом, те же банки и банкоматы подписываются, кафе и рестораны, улицы - тоже.
В проблемных объектах обычно показывается тип (магазин, школа и т. д.) или просто надпись «безымянный». Всплывает название также у объектов, только что выбранных из результатов поиска.
Сопоставлял, так сказать, с эталоном (оригинальной сборкой, скачанной на сайте чепецк.net) - там всё нормально.
cfg выглядит так:

Замечу, что без name-tag-list=name,name:ru,name:be,int_name и lower-case ничего не менялось. Явно проблема со стилем, но что и как там править? Эх, автора бы сюда neutral

Проблема не с конфигами, а в файлах стиля и TYP
Надо внимательно смотреть и файл TYP и соответствующие файлы стиля (точки, линии, полигоны) имена задаются и там и там. А в файле TYP еще есть настройки отображать имена или нет, и каким шрифтом (размер), цветом или невидимым (видно только при наведении курсора) для каждого объекта описанного в TYP файле.
Без TYP файла (или объект отсутствующий в TYP файле) прибор отображает его в соответствии со своей прошивкой.
Пример: стиль default без TYP файла, прибор отобразит карту так как зашито в нем. По этому если объект ввели в стиль, то его скорей всего надо вводить и в TYP файл. И не просто вводить - рисовать, раскрашивать, подписывать (короче - настраивать).

Last edited by Eugeny_B (2017-07-29 09:35:54)

Offline

#335 2017-07-29 21:38:32

LLlypuk82
Member
From: Витебск (Беларусь)
Registered: 2012-12-23
Posts: 2,373
Website

Re: Mkgmap

Eugeny_B wrote:

если объект ввели в стиль, то его скорей всего надо вводить и в TYP файл.

Дело в том, что сам-то ничего не вводил и не изменял, а брал уже готовый стиль (velo100) со всем «фаршем» (а выходит, что не со всем) и готовые оригинальные конфиги от автора (по ссылкам выше). Но, видать, автор что-то на своей машине подправлял/добавлял (поэтому у него всё тип-топ), а по ссылкам данные слегка устарели/рассинхронизировались (TYP со стилем или ещё что-то). Поэтому у меня произошла где-то нестыковка. Надо ковырять, где/что именно. Информации много выдали, буду переваривать.
P. S. Если это будет интересно, то вот »такую утилиту« когда-то накопал (не разбирался, но чувствую, что польза есть). Всё по-английски, но тут ничего не поделать.

Last edited by LLlypuk82 (2017-07-29 22:10:20)

Offline

#336 2017-07-29 22:22:42

Eugeny_B
Member
Registered: 2014-11-30
Posts: 259

Re: Mkgmap

Я использую TYPViewer, ссылка в предыдущих сообщениях, там по русски.
А копать начни с простого выпиши какие обекты (Garmin cod 0x01 и т.д.) встречаются в файлах стиля lines, points, polygons и какие в TYP файле. Какие у них имена по умолчанию там и там. А потом приводи в порядок.
Мне больше стиль FZK FreiZeitKarte понравился ссылку давал выше.

Last edited by Eugeny_B (2017-07-29 22:30:05)

Offline

#337 2017-07-29 22:40:58

LLlypuk82
Member
From: Витебск (Беларусь)
Registered: 2012-12-23
Posts: 2,373
Website

Re: Mkgmap

Вдогонку: там ещё и такая штука имеется (к вопросу о поиске багов и не только)

Offline

#338 2017-07-29 22:47:09

Eugeny_B
Member
Registered: 2014-11-30
Posts: 259

Re: Mkgmap

А эта штука бесплатная? А то я на этом сайте тоже одну штуку брал (сканирует файл gmapsupp.img или любой *.img и создает TYPфайл со всеми объектами встречающимися в карте) один пробный раз запустилась и больше ни разу, говорит плати.
IMG2TYP называется.

Last edited by Eugeny_B (2017-07-29 22:53:31)

Offline

#339 2017-07-29 23:32:40

LLlypuk82
Member
From: Витебск (Беларусь)
Registered: 2012-12-23
Posts: 2,373
Website

Re: Mkgmap

Да, уж. Не сразу заметил "unregistered" neutral Но не исключено, что можно использовать именно проверку стиля (оплату просит при попытке конвертации).

Offline

#340 2017-07-30 08:56:39

LLlypuk82
Member
From: Витебск (Беларусь)
Registered: 2012-12-23
Posts: 2,373
Website

Re: Mkgmap

В общем, получилась у меня та же петрушка, что и 2 года назад.
Eugeny_B, у вас стиль stranger нормально подписи показывает? Взять, например, озёра и реки — они с названиями получаются?
Если бы разобраться, что с чем сверять (на предмет наличия отсутствия big_smile ), а то не знал, да ещё и забыл)) Было бы чудно.
Файл lines содержит такое по рекам:

waterway=river [0x1151a resolution 18-18 continue]
waterway=river [0x1f resolution 19-24 continue]

TYP содержит:

[_line]
Type=0x1f
;GRMN_TYPE: Water Features/RIVER/Large stream or river/Non NT
UseOrientation=Y
LineWidth=2
Xpm="0 0 1 0"
"1 c #2D76D0"
String1=0x19,река
ExtendedLabels=Y
FontStyle=Default
CustomColor=Day
DaycustomColor:#0000B4
[end]

и ещё:

[_line]
Type=0x1151a
;GRMN_TYPE: Customizable Line Types/CUSTOMIZABLE_LINE_251/Non-routable customizable line/Non NT, NT
UseOrientation=N
LineWidth=1
Xpm="0 0 1 0"
"1 c #2D76D0"
String1=0x19,река
ExtendedLabels=Y
FontStyle=SmallFont
CustomColor=Day
DaycustomColor:#0000B4
[end]

«String1=0x19,река» — очевидно, что имеется в виду тип объекта (который мне и показывается при наведении курсора). Но совсем не очевидно, откуда должно браться название этого объекта. Иными словами, откуда берутся названия объектов вообще?
Ясно, что изначально они есть в pbf, но потом куда они прописываются и в каком виде хранятся?

shop=convenience {set name='${name}, продукты' | 'продукты' } [0x2e02 resolution 22]
amenity=pub { name '${name}, паб (${phone})' |  '${name}, паб' | 'паб' } [0x2d02 resolution 22]

Выяснил, что продуктовые не получали названия (отображаемого при наведении курсора на точку) из-за наличия «set» и «=». А этих set понаставлено почти везде.
Теперь бы узнать, как заставить присваивать названия (те же реки/озёра), выводимые всегда (независимо от курсора).

Last edited by LLlypuk82 (2017-07-30 09:55:59)

Offline

#341 2017-07-30 11:41:04

Eugeny_B
Member
Registered: 2014-11-30
Posts: 259

Re: Mkgmap

LLlypuk82 wrote:

В общем, получилась у меня та же петрушка, что и 2 года назад.
Теперь бы узнать, как заставить присваивать названия (те же реки/озёра), выводимые всегда (независимо от курсора).

Тип объекта это Type=0x1f или Type=0x1151a. А String1=0x19,река - это имя по умолчанию в TYP файле, 0х19 - русский язык, может встретиться 0х04 - тогда надпись на английском. Если в OSM данная река не имеет имени, то она подписывается из TYP файла "река". Для редактирования TYP я пользуюсь TYPViewer, программа с русским интерфейсом бесплатная. Запускаешь ее, открываешь свой TYP, с лева в окошке "список полилиний" выбираешь 0x01f, двойной клик мышкой или нажатие "изменить" откроет окно редактирования, где можно менять параметры (все подписано по русски). Объясняю почему в стиле две smile реки. 0x1f показывается при масштабе от 5м до примерно 3км (сейчас идет обработка данных для карты, и я не могу посмотреть точно) вторая 0x1151a примерно от 5км и на пол страны на экране (образно).
Теперь про Паб

amenity=pub { name '${name}, паб (${phone})' |  '${name}, паб' | 'паб' } [0x2d02 resolution 22]

Эта строчка говорит - Паб отобразить на экране значком 0x2d02 при масштабе от 5м до 700-800м (resolution 22 - масштаб) и если в OSM пабу присвоены имя (например, Моряк) и телефон, отобразится "Моряк, паб 8-921-ххх-хх-хх". Если присвоено только имя - "Моряк, паб", а если и имя не присвоено - "паб".
Про продукты - в строке говорится, присвоить (set) имя которое состоит из имени OSM + слово "продукты" ('${name}, продукты') про отображение имени ничего нет.
Я думаю строка должна быть примерно такая:
shop=convenience {name 'set name=${name}, продукты' | 'продукты' } [0x2e02 resolution 22]
или что-то похожее со скобками (сейчас не посмотреть) сравни с похожими строками из этого и других стилей.
Или без set и =, как и вторая.
Я по началу так и изучал чем отличается стиль velo100 от MapTourist в отображении и строках, находил разницу и сравнивал, менял на одном и опять сравнивал.
Все это можно прочитать на ангельском языке в файле style-manual.pdf который находится в папке mkgmap\doc
На остальное позже когда посмотрю карты.

Last edited by Eugeny_B (2017-07-30 11:47:58)

Offline

#342 2017-07-31 15:25:13

LLlypuk82
Member
From: Витебск (Беларусь)
Registered: 2012-12-23
Posts: 2,373
Website

Re: Mkgmap

Гремучая это смесь — стили под гармин. В целом понял, что за подписи, которые должны браться именно из тега name, отвечают строки в файлах стиля (lines, points, polygons и т. д., можно и самому придумывать и добавлять в обработку через include). Как подпись будет отображаться — зависит от настройки внутри TYP (размер шрифта, невидимая надпись, некое присвоенное слово «по умолчанию» и т. д.) Большая часть проблем решилась тупым удалением «set» и «=».
Почитал руководство mkgmap, не смог применить if then else условие (конвертер выдаёт ошибку). Там какие-то «хитрости» со скобками (или чем-то другим). Вообще, легко запороть всё дело, забыв поставить скобку или пробел, или кавычку, или ещё что (конвертер ругается, но не всегда понятно, где копать). Так что желательно иметь вариант «до изменений» (чтобы откатиться).
Тоже скачал «немецкие» TYP-ы, да только они бесполезны без остальных файлов стиля. Откуда их брать? (ведь, вся эта чехарда с типами, правилами отрисовки и проч. строго индивидуальная).
Где-то видел ссылку на Maptourist-а слиль, но потерял.
P. S. Ещё интересно попробовать опцию «использовать значок из другого стиля» (чтобы  «доукомплектовать» недостающие)

Last edited by LLlypuk82 (2017-07-31 15:50:22)

Offline

#343 2017-07-31 16:07:20

Eugeny_B
Member
Registered: 2014-11-30
Posts: 259

Re: Mkgmap

Не внимательный ты.... Я давал ссылку http://www.freizeitkarte-osm.de/garmin/ … pment.html а там в самом низу Download.
Скачиваешь архив и в нем 2 стиля найдешь. Для них 6 TYPфайлов и того 12 вариантов.

Точно невнимательный. Маптурист сообщение на 13ой странице под номером 324
И обнови MKGMAP и SPLITTER до крайней версии.

Last edited by Eugeny_B (2017-07-31 16:19:31)

Offline

#344 2017-07-31 17:00:03

LLlypuk82
Member
From: Витебск (Беларусь)
Registered: 2012-12-23
Posts: 2,373
Website

Re: Mkgmap

Ага, всё нашлось smile Забыл самое главное спросить: есть способ быстрого тестирования результата ковыряний без заливки карты в прибор? (а то слегка напрягает, благо, что файлик меньше 200 Мб)
Файлы, по идее, mkgmap все необходимые создаёт. Но в Basecamp запихнуть их просто так нельзя, вроде бы..

Offline

#345 2017-07-31 18:16:26

Eugeny_B
Member
Registered: 2014-11-30
Posts: 259

Re: Mkgmap

Удивляюсь я твоей невнимательности big_smile
Сообщение 331 черный квадрат ползунок вниз.
Читаем
"rem Создаем карту gmap (для BaseCamp и MapSource) с помощью MKGMAP"

а дальше
просто скопировать папку "*.gmap" по указанному ниже пути (в зависимости от ОС компьютера):
для WinXP путь C:\Documents and Settings\All Users\Application Data\GARMIN\Maps
для Win7/8/10 путь C:\ProgramData\Garmin\Maps

Last edited by Eugeny_B (2017-07-31 18:17:01)

Offline

#346 2017-07-31 19:25:32

LLlypuk82
Member
From: Витебск (Беларусь)
Registered: 2012-12-23
Posts: 2,373
Website

Re: Mkgmap

От жеж big_smile А у меня оправдалка: много инфы, закопался чутка.
Всё получилось, дас ыст фантастыш!
Странно, что в options.txt про --gmapi сказано «Create a directory in the "gmapi" format required by Mac applications.»
Приятно, что кто-то подскажет, ёлки-палки.
UPD Позже мне подсказали, что можно создать ярлыки (файлы *.lnk) на соотв. папки и закинуть их по указанным выше директориям в завис. от версии Windows, тогда BaseCamp также подхватит эти карты.

Last edited by LLlypuk82 (2018-06-10 01:12:37)

Offline

#347 2017-08-01 15:59:51

Eugeny_B
Member
Registered: 2014-11-30
Posts: 259

Re: Mkgmap

Начинаю проводить эксперименты с плагином https://forum.openstreetmap.org/viewtopic.php?id=58978
Может что интересное получится.

Offline

#348 2017-08-01 20:27:08

LLlypuk82
Member
From: Витебск (Беларусь)
Registered: 2012-12-23
Posts: 2,373
Website

Re: Mkgmap

В таких случаях принято говорить: «Экий Вы, однако, затейник» big_smile Sergey Astakhov — в помощь.
С названиями и значками по большей части разобрался, сделал свой вариант stranger-а. Вот не знаю, можно ли как-то прикрутить отображение адресных точек с номерами домов и подъездов с номерами квартир средствами mkgmap.

Offline

#349 2017-08-01 22:11:47

Eugeny_B
Member
Registered: 2014-11-30
Posts: 259

Re: Mkgmap

А как их мапят? Прикручивать думаю надо в поинтах и в имя загонять нужную инфу.

Offline

#350 2017-08-02 10:14:06

LLlypuk82
Member
From: Витебск (Беларусь)
Registered: 2012-12-23
Posts: 2,373
Website

Re: Mkgmap

Это, соответственно:
Отдельно стоящая точка или часть линии (addr:housenumber=*)+(addr:street=*)
Точка на контуре дома (addr:flats=диапазон номеров)+(entrance=staircase/yes)+(ref=номер подъезда)
P. S. Оказалось всё просто, сделал.

Last edited by LLlypuk82 (2017-08-02 10:48:43)

Offline

Board footer

Powered by FluxBB