You are not logged in.

Announcement

*** NOTICE: After 30th of September 2022 the forum.openstreetmap.org will be retired, please request a category for your community in the new ones as soon as possible using this process, which will allow you to propose your community moderators. We expect the migration of data will take a few weeks, you can follow its progress here.***

#26 2010-09-21 18:26:03

Ilis
Member
From: Екатеринбург
Registered: 2009-05-24
Posts: 5,970

Re: Mkgmap

AMDmi3 wrote:

Т.е. osm->mp->img получается лучше osm->img? Чем лучше?

Первое лучше лишь тем, что уже реализовано smile

Offline

#27 2010-09-21 18:31:05

Alexandr Zeinalov
Member
From: New-Peredelkino, Moscow, RU
Registered: 2009-08-26
Posts: 1,699
Website

Re: Mkgmap

osm2mp лучше тем, что хорошо учитывает все актуальные особенности OSM и имеет быстрореагирующего автора

Offline

#28 2010-09-21 18:38:35

AMDmi3
Member
From: Москва
Registered: 2009-08-12
Posts: 3,315

Re: Mkgmap

А, всмысле osm->mp не mkgmap'ом. Понял.

Offline

#29 2010-09-21 19:04:35

gps-Max
Member
Registered: 2010-01-12
Posts: 736

Re: Mkgmap

liosha wrote:

gps-Max, можно использовать osm2mp --nocodepage, тогда в .mp будет utf-8

CodePage=utf8, как писал выше, вызывает ругательства:

java.nio.charset.UnsupportedCharsetException: cputf8
        at java.nio.charset.Charset.forName(Unknown Source)
        at uk.me.parabola.mkgmap.reader.polish.PolishMapDataSource.imgId(PolishM
apDataSource.java:623)
...

А так, да, всё круто, результирующий файлик вроде переваривается, несмотря на мои опасения по поводу заголовков. Там name остается в 1251, но это вроде пофиг. Спасибо за подсказку :-)

Offline

#30 2010-09-21 20:15:10

gps-Max
Member
Registered: 2010-01-12
Posts: 736

Re: Mkgmap

Интересное дело, mkgmap Московскую область целиком в *.osm не прожевывает, а в *.mp - вполне даже. Размеры исходных файлов разные - osm около 450 мегов, а mp около 100, видимо, из-за этого.

С измененным TreSize на старом девайсе крутится довольно шустро в итоге, а внешний вид пока на глаз особо не отличается.

Offline

#31 2010-09-22 22:58:31

gps-Max
Member
Registered: 2010-01-12
Posts: 736

Re: Mkgmap

Забавно, если заглянуть в конфиги (которые стили), то можно увидеть кучу всего интересного. Вот, например, аналогичная здешней борьба за unpaved:

# Flag unpaved roads.
highway=*
& (surface=cobblestone | surface=compacted | surface=dirt |
   surface=earth | surface=grass | surface=grass_paver |
   surface=gravel | surface=grit | surface=ground | surface=mud |
   surface=pebblestone | surface=sand | surface=unpaved |
   mtb:scale=* |
   tracktype ~ 'grade[2-6]' |
   smoothness ~ '.*(bad|horrible|impassable)' |
   sac_scale ~ '.*(mountain|alpine)_hiking' |
   sport=via_ferrata)
{ add mkgmap:unpaved=1 }
(highway=bridleway | highway=path | highway=track | highway=unsurfaced)
& surface!=* & tracktype!=* & smoothness!=* & sac_scale!=*
{ add mkgmap:unpaved=1 }

Offline

#32 2010-09-29 13:28:18

glebius
Member
From: Moscow, RU
Registered: 2009-02-24
Posts: 1,178

Re: Mkgmap

Пользую mkgmap для себя почти с того момента, как начал рисовать в osm. Поделюсь своими наработками. Во-первых, чтобы переваривал, нужно всегда использовать splitter.

Вот выдержки из Makefile:

STYLE?=         Ru4x4Traveller

RUSSIA?=        rus.osm
GISLAB?=        http://gis-lab.info/data/osm/russia

NORWAY?=        norway.osm
FINLAND?=       finland.osm
SWEDEN?=        sweden.osm
GEOFAB?=        http://download.geofabrik.de/osm/europe/

#
MKGMAP?=        /usr/local/bin/java -Xmx1024m -jar /home/glebius/bin/mkgmap.jar
SPLITTER?=      /usr/local/bin/java -Xmx1024m -jar /home/glebius/bin/splitter.jar
OSMOSIS?=       /usr/local/bin/java -jar /home/glebius/bin/osmosis.jar
FETCH?=         /usr/bin/fetch
RM?=            /bin/rm -f --
MV?=            /bin/mv --
CP?=            /bin/cp --
UNZIP?=         /usr/bin/bunzip2
XAPIURL?=       http://www.informationfreeway.org/api/0.5

# new mkgmap not thread safe
#JOBS!= sysctl -n kern.smp.cpus  
JOBS=   1

fetch-bbox:
        ${FETCH} -o ${BBOX}.osm ${XAPIURL}/map?bbox=${BBOX}

fetch-russia:
.if exists(${RUSSIA}.bz2)
        ${FETCH} -i ${RUSSIA}.bz2 ${GISLAB}/${RUSSIA}.bz2
.else
        ${FETCH} ${GISLAB}/${RUSSIA}.bz2
.endif
        
fetch-scandinavia:
.if exists(${NORWAY}.bz2)
        ${FETCH} -i ${NORWAY}.bz2 ${GEOFAB}/${NORWAY}.bz2
.else
        ${FETCH} ${GEOFAB}/${NORWAY}.bz2
.endif
.if exists(${FINLAND}.bz2)
        ${FETCH} -i ${FINLAND}.bz2 ${GEOFAB}/${FINLAND}.bz2
.else
        ${FETCH} ${GEOFAB}/${FINLAND}.bz2
.endif
.if exists(${SWEDEN}.bz2)
        ${FETCH} -i ${SWEDEN}.bz2 ${GEOFAB}/${SWEDEN}.bz2
.else
        ${FETCH} ${GEOFAB}/${SWEDEN}.bz2
.endif
.endif
        ${UNZIP} ${NORWAY}.bz2
        ${UNZIP} ${FINLAND}.bz2
        ${UNZIP} ${SWEDEN}.bz2

split-russia:
        ${RM} 6324*.osm.gz
        ${SPLITTER} --description=${STYLE} ${RUSSIA}.bz2

russia: clean clean-russia
        ${MKGMAP} --max-jobs=${JOBS} \
                --route --net --remove-short-arcs \
                --description='Ru4x4' --country-name='Russia' \
                --country-abbr=RU \
                --charset=cp1251 --code-page=1251 --family-id=90 \
                --style-file=. --style=${STYLE} \
                6324*.osm.gz \
                ${STYLE}/STYLE.TYP
        ${MV} *.img *.tdb Russia/
        ${CP} ${STYLE}/STYLE.TYP Russia/
 
clean-russia:
        ${RM} Russia/*
 
clean:
        ${RM} *.img *.tdb

distclean: clean
        ${RM} *.osm
        ${RM} *.osm.gz
        ${RM} *.osm.bz2
        ${RM} areas.list template.args

То есть когда хочу сгенерировать, то пишу:

make distclean fetch-russia split-russia russia

Offline

#33 2010-09-29 13:33:27

glebius
Member
From: Moscow, RU
Registered: 2009-02-24
Posts: 1,178

Re: Mkgmap

Стилем особо хвастаться не могу, т.к. никак не могу достичь идеального баланса уровней. Чтобы и на больших масштабах не тормозила, и чтобы на средних было достаточно объектов видно.  Хотелось бы посмотреть на чей-то стиль, у кого хорошо проработаны levels/resolution.

Из-за ограниченности типов в гармин, решил попробовать вписывать покрытие в имя дороги, оказалось удобно:

# 2) грейдер
highway=primary & surface=compacted
        { name 'пЁя─п╣п╧п╢п╣я─' }
        [0x12 road_class=1 road_speed=2 resolution 6]
highway=secondary & surface=compacted
        { name 'пЁя─п╣п╧п╢п╣я─' }
        [0x12 road_class=1 road_speed=2 resolution 8]
highway=tertiary & surface=compacted
        { name 'пЁя─п╣п╧п╢п╣я─' }
        [0x13 road_class=1 road_speed=2 resolution 16]
highway=unclassified & surface=compacted
        { name 'пЁя─п╣п╧п╢п╣я─' }
        [0x13 road_class=1 road_speed=2 resolution 19]
# 3) гравийка
highway=primary & surface=gravel
        { name 'пЁя─п╟п╡п╦п╧п╨п╟' }
        [0x12 road_class=1 road_speed=2 resolution 6]
highway=secondary & surface=gravel
        { name 'пЁя─п╟п╡п╦п╧п╨п╟' }
        [0x12 road_class=1 road_speed=2 resolution 8]
highway=tertiary & surface=gravel
        { name 'пЁя─п╟п╡п╦п╧п╨п╟' }
        [0x13 road_class=1 road_speed=2 resolution 16]
highway=unclassified & surface=gravel
        { name 'пЁя─п╟п╡п╦п╧п╨п╟' }
        [0x13 road_class=1 road_speed=2 resolution 19]
# 4) бетонка
highway=primary & surface=concrete
        { name 'п╠п╣я┌п╬п╫п╨п╟' }
        [0x12 road_class=1 road_speed=2 resolution 6]
highway=secondary & surface=concrete
        { name 'п╠п╣я┌п╬п╫п╨п╟' }
        [0x12 road_class=1 road_speed=2 resolution 8]
highway=tertiary & surface=concrete
        { name 'п╠п╣я┌п╬п╫п╨п╟' }
        [0x13 road_class=1 road_speed=2 resolution 16]
highway=unclassified & surface=concrete
        { name 'п╠п╣я┌п╬п╫п╨п╟' }
        [0x13 road_class=1 road_speed=2 resolution 19]

Offline

#34 2010-09-29 14:24:22

Mir76
Member
From: Екатеринбург
Registered: 2009-12-18
Posts: 1,455

Re: Mkgmap

gps-Max wrote:
liosha wrote:

gps-Max, можно использовать osm2mp --nocodepage, тогда в .mp будет utf-8

CodePage=utf8, как писал выше, вызывает ругательства:

java.nio.charset.UnsupportedCharsetException: cputf8
        at java.nio.charset.Charset.forName(Unknown Source)
        at uk.me.parabola.mkgmap.reader.polish.PolishMapDataSource.imgId(PolishM
apDataSource.java:623)

Типичный программистский баг: взял номер кодировки из параметра, приклеил спереди 'cp' и попытался результат использовать smile
Пинайте автора smile

Offline

#35 2010-09-30 19:55:34

gps-Max
Member
Registered: 2010-01-12
Posts: 736

Re: Mkgmap

Mir76 wrote:
gps-Max wrote:
liosha wrote:

gps-Max, можно использовать osm2mp --nocodepage, тогда в .mp будет utf-8

CodePage=utf8, как писал выше, вызывает ругательства:

java.nio.charset.UnsupportedCharsetException: cputf8
        at java.nio.charset.Charset.forName(Unknown Source)
        at uk.me.parabola.mkgmap.reader.polish.PolishMapDataSource.imgId(PolishM
apDataSource.java:623)

Типичный программистский баг: взял номер кодировки из параметра, приклеил спереди 'cp' и попытался результат использовать smile
Пинайте автора smile

Это нестрашный баг, легко обходится. Однако юникодная cp65001 тоже не работает, это хуже.

Offline

#36 2010-09-30 21:42:15

gps-Max
Member
Registered: 2010-01-12
Posts: 736

Re: Mkgmap

glebius wrote:

Из-за ограниченности типов в гармин, решил попробовать вписывать покрытие в имя дороги, оказалось удобно:

# 2) грейдер
highway=primary & surface=compacted
        { name 'пЁя─п╣п╧п╢п╣я─' }
        [0x12 road_class=1 road_speed=2 resolution 6]
...

Первое: интересно, зачем и откуда такая извращённая кодировка?
Второе: не понимаю смысла замены имени, а не добавления уточнения к нему. Конструкция типа { name '${name} (грунтовка)'} вполне работает и встречается где-то в дефолтах.

Last edited by gps-Max (2010-09-30 21:50:28)

Offline

#37 2010-10-01 12:48:18

gps-Max
Member
Registered: 2010-01-12
Posts: 736

Re: Mkgmap

Пока что в mkgmap выявились следующие отличия, по сравнению с osm2mp:

- Нет возможности сформировать точку из полигона
- Похоже, нет поддержки адресации точек
- Нет некоторых дополнительных условий типа inside_city
- Чуть менее тонкие настройки роутинга
+ Объекты можно привязать как к уровню карты (level=[0..8]), так и к уровню прибора (resolution=[~10..24]).

А так, по большому счёту, всё то же самое, только занимаемая при работе память раза в три меньше и время выполнения раз в двадцать быстрее.

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

Отдельно нужно сказать про очень сильную генерализацию линий mkgmap'ом на средних уровнях. В крайних масштабах всё нормально, а в средних заметны большие ступеньки. Причём, это не зависит от входных данных и не регулируется параметрами.

Offline

#38 2010-10-01 12:50:31

liosha
Member
From: Moscow
Registered: 2008-03-04
Posts: 8,447
Website

Re: Mkgmap

gps-Max wrote:

+ Объекты можно привязать как к уровню карты (level=[0..8]), так и к уровню прибора (resolution=[~10..24])

Вообще-то это одно и то же, только разными словами. Или я что-то не понимаю

Offline

#39 2010-10-01 13:38:02

gps-Max
Member
Registered: 2010-01-12
Posts: 736

Re: Mkgmap

glebius wrote:

Стилем особо хвастаться не могу, т.к. никак не могу достичь идеального баланса уровней. Чтобы и на больших масштабах не тормозила, и чтобы на средних было достаточно объектов видно. Хотелось бы посмотреть на чей-то стиль, у кого хорошо проработаны levels/resolution.

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

В идеале, хотелось бы иметь отключаемые слои, чтобы быстро убрать ненужное и сосредоточиться на нужном типе объектов. Однако, в гармине такого даже близко нет, увы. На данный момент наиболее интересная мысль - это точки убирать в отдельные дополнительные карты, которые можно включать/выключать в навигаторе. Кстати, файлы gpi для этого хуже - их нельзя отключать, в отличие от прозрачных карт с точками.

Offline

#40 2010-10-01 13:41:36

gps-Max
Member
Registered: 2010-01-12
Posts: 736

Re: Mkgmap

liosha wrote:
gps-Max wrote:

+ Объекты можно привязать как к уровню карты (level=[0..8]), так и к уровню прибора (resolution=[~10..24])

Вообще-то это одно и то же, только разными словами. Или я что-то не понимаю

Level - категория карты, а resolution - категория железки. Если в заголовке карты поменять настройки levels, то придётся везде по конфигам править/подгонять значения. Если же привязать объекты к resolution, то число и разрешение уровней карты можно менять без последствий. Очень удобно для экспериментов, да и вообще полезно.

Offline

#41 2010-10-01 14:07:37

liosha
Member
From: Moscow
Registered: 2008-03-04
Posts: 8,447
Website

Re: Mkgmap

Даже не задумывался о такой необходимости...
Соответствие уровней карты слоям битности почти всегда стандартное 24-22-20-18, поводов менять не возникало  smile

Offline

#42 2010-10-01 14:18:53

gps-Max
Member
Registered: 2010-01-12
Posts: 736

Re: Mkgmap

23-й и 21-й, уровни задействовать, например. Сейчас есть разрыв между 120 м и 500 м и между 500 м и 2 км. По-моему, это слишком далеко.

Offline

#43 2010-10-08 15:51:10

glebius
Member
From: Moscow, RU
Registered: 2009-02-24
Posts: 1,178

Re: Mkgmap

Первое: интересно, зачем и откуда такая извращённая кодировка?

Такая уж кодировка UTF-8 принята в нашем проекте smile

Второе: не понимаю смысла замены имени, а не добавления уточнения к нему. Конструкция типа { name '${name} (грунтовка)'} вполне работает и встречается где-то в дефолтах.

Согласен, давно пора сделать, всё никак руки не доходят. Не исключаю, что и дефолтный стиль за последние полтора года много интересного приобрёл.

Offline

#44 2010-10-08 16:16:01

gps-Max
Member
Registered: 2010-01-12
Posts: 736

Re: Mkgmap

glebius wrote:

Первое: интересно, зачем и откуда такая извращённая кодировка?

Такая уж кодировка UTF-8 принята в нашем проекте smile

Ну я как бы к тому, что можно добиться читаемых надписей, а не просто работающих. Я в виндовой консоли тоже долго мучился с русскими именами файлов, пока не узнал, что можно выставить кодировку и писать их по-человечески, не меняя на иероглифы.

glebius wrote:

Второе: не понимаю смысла замены имени, а не добавления уточнения к нему. Конструкция типа { name '${name} (грунтовка)'} вполне работает и встречается где-то в дефолтах.

Согласен, давно пора сделать, всё никак руки не доходят. Не исключаю, что и дефолтный стиль за последние полтора года много интересного приобрёл.

Ууу, мощно... Полтора года назад я вроде и про сам осм-то не слышал.
Судя по кускам обсуждений, за последний год там точно дофига изменений. А чего не обновлялся-то? Не знаю, как раньше, но сейчас всё выложено в SVN-репозиторий. Или ещё проще: можно скачивать актуальный готовый jar и скриптом запихивать туда свои стили, всё очень просто, это ж zip.

Offline

#45 2010-10-08 17:39:31

glebius
Member
From: Moscow, RU
Registered: 2009-02-24
Posts: 1,178

Re: Mkgmap

Это ж мне надо не лениться и синхронизировать свой стиль с дефолтным вручную. smile А сам mkgmap я конечно обновляю до SVN trunk перед каждой генерацией карты.

Offline

#46 2010-10-10 15:58:06

Алексей Андреевич
Member
From: Московская обл.
Registered: 2010-09-05
Posts: 65

Re: Mkgmap

Научите загружать карту после mkgmap в MapSource.
Пробовал исталлировать в реестр вручную, но не вышло.
Пробовал MapSetToolKit, но он требует cgpsmapper, которую надо покупать.
А если залить в гармин gmapsupp.img, то потом при попытке взять с флешки карту MapSource'ом он говорит, что карт на флешке нет.

Offline

#47 2010-10-10 20:26:52

Larry0ua
Member
Registered: 2010-09-19
Posts: 1,061

Re: Mkgmap

cgpsmapper можно на офсайте скачать, есть бесплатная версия, у меня работало сегодня

Offline

#48 2010-10-11 23:43:16

gps-Max
Member
Registered: 2010-01-12
Posts: 736

Re: Mkgmap

Еще раз: cgpsmapper бывает версии Free, а бывает Personal. Первая - полностью бесплатная, но серьёзно урезанная, вторая - условно бесплатная (shareware), но с полным функционалом, включая упоминавшийся роутинг.

Offline

#49 2010-10-11 23:51:41

gps-Max
Member
Registered: 2010-01-12
Posts: 736

Re: Mkgmap

glebius wrote:

Это ж мне надо не лениться и синхронизировать свой стиль с дефолтным вручную. smile А сам mkgmap я конечно обновляю до SVN trunk перед каждой генерацией карты.

Не понял, нафига вручную-то? Ставишь себе любой SVN-клиент и рассматриваешь себе изменения. У меня вот Лёшин osm2mp так работает, локально все файлы с настройками изменены, а SVN всё это самостоятельно нормально обновляет и разруливает, всегда актуальная версия получается, с учетом всех изменений дефолтных стилей.

С mkgmap я, правда, еще не заморачивался, там изменения более редкие. Тупо качаю свежий jar и скрипт добавляет туда внутрь мои стили, ручной работы минимум.

Offline

#50 2010-10-14 22:56:00

Larry0ua
Member
Registered: 2010-09-19
Posts: 1,061

Re: Mkgmap

гуру по правилам mkgmap-а вопрос smile
как сделать так, чтоб у домов с номерами этот самый номер рисовался сверху дома на карте?
пробовал: styles/default/polygons:
building=* | man_made=* | amenity=* | tourism=* {name '${addr:housenumber}'} [0x13 resolution 24]

в MapSource показывается, но показывалось и без этих изменений, на навигаторе не вижу номеров, только когда кликаю на дом sad
тестирую на garmin dakota 20.

Есть какие-то предложения? Может, в правиле ошибся?

Offline

Board footer

Powered by FluxBB