You are not logged in.
- Topics: Active | Unanswered
Announcement
Please create new topics on the new site at community.openstreetmap.org. 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
Т.е. osm->mp->img получается лучше osm->img? Чем лучше?
Первое лучше лишь тем, что уже реализовано
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
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
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' и попытался результат использовать
Пинайте автора
Offline
#35 2010-09-30 19:55:34
- gps-Max
- Member
- Registered: 2010-01-12
- Posts: 736
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' и попытался результат использовать
Пинайте автора
Это нестрашный баг, легко обходится. Однако юникодная cp65001 тоже не работает, это хуже.
Offline
#36 2010-09-30 21:42:15
- gps-Max
- Member
- Registered: 2010-01-12
- Posts: 736
Re: Mkgmap
Из-за ограниченности типов в гармин, решил попробовать вписывать покрытие в имя дороги, оказалось удобно:
# 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
+ Объекты можно привязать как к уровню карты (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
Стилем особо хвастаться не могу, т.к. никак не могу достичь идеального баланса уровней. Чтобы и на больших масштабах не тормозила, и чтобы на средних было достаточно объектов видно. Хотелось бы посмотреть на чей-то стиль, у кого хорошо проработаны levels/resolution.
Долго не знал, чего написать, очень уж ты вопрос хороший поднял. Я уже более полугода экспериментирую с настройками уровней, пытаясь найти баланс, однако проблема в том, что он будет разным для разных ситуаций.
В идеале, хотелось бы иметь отключаемые слои, чтобы быстро убрать ненужное и сосредоточиться на нужном типе объектов. Однако, в гармине такого даже близко нет, увы. На данный момент наиболее интересная мысль - это точки убирать в отдельные дополнительные карты, которые можно включать/выключать в навигаторе. Кстати, файлы gpi для этого хуже - их нельзя отключать, в отличие от прозрачных карт с точками.
Offline
#40 2010-10-01 13:41:36
- gps-Max
- Member
- Registered: 2010-01-12
- Posts: 736
Re: Mkgmap
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, поводов менять не возникало
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 принята в нашем проекте
Второе: не понимаю смысла замены имени, а не добавления уточнения к нему. Конструкция типа { name '${name} (грунтовка)'} вполне работает и встречается где-то в дефолтах.
Согласен, давно пора сделать, всё никак руки не доходят. Не исключаю, что и дефолтный стиль за последние полтора года много интересного приобрёл.
Offline
#44 2010-10-08 16:16:01
- gps-Max
- Member
- Registered: 2010-01-12
- Posts: 736
Re: Mkgmap
Первое: интересно, зачем и откуда такая извращённая кодировка?
Такая уж кодировка UTF-8 принята в нашем проекте
Ну я как бы к тому, что можно добиться читаемых надписей, а не просто работающих. Я в виндовой консоли тоже долго мучился с русскими именами файлов, пока не узнал, что можно выставить кодировку и писать их по-человечески, не меняя на иероглифы.
Второе: не понимаю смысла замены имени, а не добавления уточнения к нему. Конструкция типа { 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
Это ж мне надо не лениться и синхронизировать свой стиль с дефолтным вручную. А сам 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
Это ж мне надо не лениться и синхронизировать свой стиль с дефолтным вручную.
А сам 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-а вопрос
как сделать так, чтоб у домов с номерами этот самый номер рисовался сверху дома на карте?
пробовал: styles/default/polygons:
building=* | man_made=* | amenity=* | tourism=* {name '${addr:housenumber}'} [0x13 resolution 24]
в MapSource показывается, но показывалось и без этих изменений, на навигаторе не вижу номеров, только когда кликаю на дом
тестирую на garmin dakota 20.
Есть какие-то предложения? Может, в правиле ошибся?
Offline