Garmin térkép készítés
Hosszú évek óta szerkesztem a www.turistautak.hu
lap adatbázisát. Garmin készülékkel járom az országot, de tapasztalatom
szerint
bármely, mások által legyártott térkép kimenettel van valami baj. Vagy
a
színvilága nem tetszik, vagy nem lehet megkülönböztetni az aszfaltos és
földutakat, vagy számomra fontos tájékozódási pontokat nem ábrázol.
Izgat is
a térkép kimenetgyártás technikája, ezért úgy döntöttem, magam csinálom
meg a
nekem tetsző térképet.
Csakhogy merre is induljak el?
Nem vagyok egy számítástechnikai guru,
ráadásul angol tudásom is igen szerény. Végül régi szerkesztőtársam,
Németh
Tamás – heyjoe sietett segítségemre, kinek útmutatásával már sikerült
megoldanom a feladatot. Ezúton is köszönöm komoly segítségét.
Ebben a leírásban ezt a tudást
osztom meg, hisz más is járhat hasonló
cipőben, ill. hasznos, hogy a nehezen megszerzett tudás nem süllyed
feledésbe.
Hozzávalók:
„Kell maga a
térképkészítő program: az mkgmap, innen letölthető:
http://www.mkgmap.org.uk/download/mkgmap.html
Letöltés után
csomagold ki egy mappába. Az mkgmap nem kezel túl nagy adatforrásokat,
így ha
ilyenből készítünk térképet, kell egy kis segítség, a daraboló:
http://www.mkgmap.org.uk/download/splitter.html
Ezt is
csomagold ki egy könyvtárban.
http://java.com/en/download/windows_xpi.jsp
címről érdemes
letölteni a legfrissebbet és telepíteni.
… valaki készített
egy kis segédprogramot, ami
összehangolja ezeknek (és még néhány más programnak) a működését: ez
pedig a
MapUploader:
http://pinns.co.uk/osm/mapuploader.html
Ezt is töltsd
le, csomagold ki, ezt viszont már telepítsd is fel.” (*)
Végül
szükségünk lesz egy programra, az NSIS-re.
http://nsis.sourceforge.net/Download
Ezzel tudunk
majd exe indító fájlt készíteni az elkészült programunknak, hogy mások
is
használhassák. Ezt is telepítsd fel.
Fontos!
Az
elérési utaknál kerülni kell az ékezeteket és a space használatát.
(Pld: térkép
gyártás helyett terkep_gyartas)
„Ha feltelepítetted a
MapUploader-t, indítsd is el
(rendszergazdaként! jobb klikk az ikonján - futtatás
rendszergazdaként), majd
lépj be a preferences menüben a settings pontba.
|
|
Tallózd ki az előbb letöltött, és kicsomagolt
mkgmap.jar, és splitter.jar állományokat a megfelelő helyre,” itt
jelöld ki az
előbb telepített makensis.exe helyét is (alapból a C:\Program
Files\NSIS\makensis.exe helyen találod). „A felső fülön a Map software
pontnál
tallózd ki a Mapsource-ot, és jelöld defaultnak, majd apply.”
|
|
Alapanyag:
„A www.turistautak.hu fájljai
önmagukban sajnos nem alkalmasak, hiszen a programok az OSM
adatbázisához
készültek. Elvileg van tuhu-osm átalakító, hiszen a tuhu térképei is
mkgmappel
készülnek 2011 óta.” Ezt viszont nem ismerem. Szóval, én az OSM-es
adatbázisnál
maradtam, mivel a 2015. februártól megnyílt Tuhu adatbázisa várhatóan
hamarosan
megjelenik az OSM adatbázisában is.
Adatokhoz
sokféleképpen hozzá lehet jutni: pld. egy kis terület lementése JOSM
segítségével.
Ez a lehetőség kiválóan alkalmas a próbálkozásoknál. A komplett ország
adatát
célszerű a
http://download.geofabrik.de/europe/hungary.html
linkről letölteni (hungary-latest.osm.pbf).
Itt 24
óra csúszással mindig friss adat található.
Térkép gyártás:
„Ha letöltötted, indítsd el
ismét rendszergazda módban a MapUploadert, majd a
1 (kék egyessel) jelzett részen tallózd ki a
letöltött pbf-et. A program rögtön írja is alatta, hogy Split this
file,
mert túl nagynak találja. Kattintsunk mellette a Split map gombra.
Neki is áll szorgalmasan dolgozni egy
parancssoros
ablakban, hagyjuk csak nyugodtan, igyunk egy kávét, fórumozgassunk :)
Amikor
eltűnik a fekete ablak, és a Split this file helyett megjelenik a files
found:9, vagy akármennyi, akkor már egy lépéssel közelebb kerültünk a
célhoz.
2 mellett van egy legördülőmenünk, select
style szöveggel, itt válaszd ki a default-ot. Később itt
választhatsz más style-t! Alatta a pipákkal most nem
kell foglalkozni.
3 Mapsource name (Basecamp Map Name)
legyen mondjuk tesztmap. (ez adja a térkép nevét)
4 Select typ most ne legyen bepipálva.
(itt lehet majd meghatározni a térkép arculatát, ha majd saját typ-ot
használsz.)
5 Countrynak írd be, pld. hogy
magyar_osm,
6 gmapsuppot, és az upload to
Mapsource-ot bepipálhatod, aztán klikk az
Fekete ablak ismét munkába lendül, mi ismét
pihenhetünk.
Ha eltűnt, akkor szépen beszínesedik az upload
to
mapsource gomb, erre rákattintva már telepíti is mapsource
térképnek. (ekkor ne fusson az MapSource
program!)
Telepítés után fel is ajánlja, hogy elindítja nekünk a programot. A
mapsource-ban kiválasztva a tesztmap nevű térképet már ott is láthatjuk
az első
saját készítésű alkotásunkat.”
Nem szép, de legalább ronda… :-) …de a
munka csak most kezdődik!
Megjelenítés:
„Itt találsz egy teszt.zip nevű file-t, ezt csomagold ki a MapUploader styles mappájába.
http://feltser1.x3.hu/teszt.zip
(teszt, teszt01 könyvtárakat
találsz benne)
Az alapértelmezett útvonal a C:\Program
Files\mapuploader3\styles tehát a mappa valahogy így nézzen ki:
-styles
--- default
--- teszt
--- teszt01
Néhány fájlt találsz a teszt könyvtárban,
ezek
határozzák meg a térkép kinézetét. Ezek sima szöveges fájlok, bármilyen
egyszerű szövegszerkesztővel módosíthatóak. Nyisd meg mondjuk a points
nevezetűt, ilyeneket találsz benne:
natural=spring
& drinking_water=conditional {name '${name} ?'} [0x6511 resolution
19]
natural=spring & drinking_water=no {name '${name} !'} [0x6511
resolution
19]
natural=spring {name '${name}'} [0x6511 resolution 21]
hármas tagolású sorok, az eleje egy
feltételrendszer
a közepe és a vége, pedig a mit, és hogyan mutassunk meg a térképen
részt
végzik.
Elemezzük
egy kicsit a második sort:
A
forrás jelölése az OSM-ben a natural=spring
taggal történik tehát az ilyen
címkével ellátott objektumoknál lesz érvényes a sor. Haladjunk tovább,
az &
jel a logikai ÉS, tehát újabb feltétel
következik: a drinking_water=no a víz ihatóságát mutatja: három
értéke
van, a yes, no, és conditional (ez utóbbit akkor használják, ha nincs
bevizsgálva a víz, de saját felelősségedre ihatod) Ha a második
feltétel is
igaz, tehát a vizsgált objektumunkon van drinkin_water=no címke is,
akkor
haladunk tovább:
{name '${name} !'} ez a rész azt mutatja,
hogy a
kimeneten a felirat (name) legyen az objektum name cimkéjével egyenlő
(a name
címke a név), plusz a nem ihatóságot jelezze még a név után egy
felkiáltójellel.
Az első sorban hasonló vizsgálatot végzünk,
csak ott
a második feltételben a conditional címkét vizsgáljuk, és megléte
esetén
kérdőjelet rakhatunk a név után.
A harmadik sorban az olyan forrásokat
jelenítjük
meg, amik nem fértek ez első két sorba: tehát nincs no, vagy
conditional
címkéjük, azaz vagy nincs megadva drinking_water tag, vagy annak az
értéke yes.
A
sorok végén a [0x6511
resolution 21] a megjelenített poi típust és a nagyítási szintet
jelenti.
Nyissuk meg most a relations fájlt. Itt a
kapcsolatokat
lehet beállogatni, és ez azért fontos nekünk, mert a túraútvonalak az
OSM
rendszerében kapcsolatokban vannak tárolva hát nézzük, hogyan lehet
őket
elővarázsolni:
type=route
& route=hiking & jel=*{
apply
{
set tura='yes';
set route_name='$(route_name)
/ ${jel}'|'${jel}';
set turajel='${jel}';
}
}
itt már kicsit összetettebb a dolog. Az
elején itt
is egy feltételrendszer van, három különböző dolognak kell teljesülnie:
a type
legyen route, a route legyen hiking, és a jel címke pedig bármi lehet.
Itt most kicsit eltérünk a poiknál
tapasztaltaktól,
mert itt nem adunk meg közvetlenül kimenetet, hiszen a garmin nem ismer
kapcsolat formát, csak poit, vonalat, és felületet, így itt mi két
változót
hozunk létre, a tura nevűnek beállítjuk a yes értéket, a route_name
nevűnek
pedig a kapcsolat route_name címkéjét, és a jel értéké, VAGY a jel
értékét. (a
| a logikai VAGY.)
Most
nyissuk meg a lines fájlt, itt folytatjuk, már a konkrét túraút
megjelenítést:
tura=yes {
name '${name} / ${route_name}'|'${route_name}'} [0x3 road_class=0
road_speed=3
resolution 18 ]
itt a feltétel a tura=yes, tehát a
relationsban ha
teljesült a hármas feltétel, ott kapta ezt az értéket. A név képzése
itt kicsit
bonyolultabb: megkapja az út sima name címkéjét, és a relationsban
megadott
route_name címkét is. Ez azért szükséges, hogy egy településen belül az
utcanevek is látszódjanak, hiszen azok a name címkében vannak tárolva.”
Fontos még a
nagyítási szint is. Ahogyan egyre nagyobb területet szemlélsz a
térképeden,
egyre csökkenteni kell a megjelenítendő objektumok számát, mert nem
férnek el.
Ezt úgy érjük el, hogy bizonyos objektumokat már nem jelenítünk meg.
natural=spring {name '${name}'} [0x6511
resolution
21]
http://www.mkgmap.org.uk/doc/pdf/style-manual.pdf
A
kész térkép:
Az általam elkészített térkép styles fájlját
már
letöltötted: ez a teszt01 könyvtár
(emlékeztetőül:
http://feltser1.x3.hu/teszt.zip )
Próbáld meg ezt is, ha tetszik a térkép,
használd
egészséggel! Ha nem, akkor alakítsd át saját ízlésed szerint. A
könyvtárban
találsz egy had.typ fájlt, ez határozza meg az elkészülő térkép
megjelenését.
Ha a kész térképet
telepíthető, exe formában szeretnéd megkapni, első lépésként ellenőrizd
a File/About
alatt a MapUploader-ed verzióját. V.3.76. vagy ennél frissebbnek kell
lennie.
Utána a Preferences/setting pont alatt add meg a makensis.exe
elérési
útvonalát, ha eddig még nem lenne megadva (alapértelmezetten C:\Program
Files\NSIS\makensis.exe). A szokásos módon gyártsd le a térképet, majd
a Tools
menüben válaszd a Create Windows Installer pontot. Ez egy
kicsit
elmolyol, majd a MapUploader temp könyvtárában (c:\program
files\mapuploader3\temp) ott is az térképedneve.exe fájl.
A napi aktuális térképet (heyjoe jóvoltából) innen letöltheted, de ha tetszik, ennek az útmutatónak a segítségével 10 perc alatt le is tudod gyártani magadnak, a friss példányt:
http://heyjoe.hu/okt/index.php?oldal=garmin
Typ
használata: Eddig a programok a Garmin
által rögzített, vagy az általam átírt ikonokat használták. natural=spring {name '${name}'} [0x6511
resolution
21] sor a 0x6511 ikont jeleníti meg, a teszt01 könyvtárban
lévő
had.typ fájlból. Ha az ikont szeretnéd megnézni, vagy módosítani, a
TYPViewer
programmal teheted ezt meg: https://sites.google.com/site/sherco40/
A typ fájlt át
is nevezheted, de rövid (3-4 betűs), ékezet nélküli nevet használj. Az
ikonokat
is át lehet rajzolni, pont, vonal és felületnél egyaránt. Lehet
használni az
import-ot is, ha kép formátumból szeretnél ikont gyártani. (Pld.
bmp-ből) Arra
érdemes figyelni, hogy a helyük maradjon meg. Tehát pld. a hotel a
0x02B01
helyen maradjon, még ha át is rajzolod. Ez azért lehet fontos, mert ha
nem adsz
nevet egy ikonnak, akkor az eredeti Garminos nevét fogja kiírni.
(Ilyenkor
jelenik meg pld. egy felület neveként az „indián tábor” felirat)
Jó tudni, hogy a felületeknél (Polygon) található DrawOrder
érték határozza meg a felületek megjelenítési sorrendjét.
Minél kisebb ez az érték annál lejjebb lesz rajzolva. Tehát az 1-el
jelölt erdőre lesz rárajzolva a 2-vel jelölt tisztás. De fordított
esetben (erdő:2 , tisztás:1) az erdő be fogja takarni a tisztást, ami
így nem is fog látszani. Szintvonalak,
ékezetes feliratok: A térképen szintvonalakat is
megjeleníthetsz. Töltsd le a köv. tömörített, 10 m-es szintvonalas
fájlt, http://feltser1.x3.hu/Orsz.srtm.zip és tömörítsd ki
valahová. A MapUploader-ben az
Auto Create gombtól jobbra tegyél egy pipát a jelölő
négyzetbe, és kattints a + jelre. A bejövő ablakon bal alul keresd ki
az elmentett fájt, és kattints az Add File(s) gombra. Ekkor
feljebb az Options: felirat alatt fogod látni az elérési
útvonalat. Már csak alul az Include Options-t
pipáld és az Apply gombbal mentsd a beállítást.
Ha így
futtatod a térkép gyártást szintvonalas, és ékezetes lesz az eredmény.
A vonalak a 0x02000 , 0x02100 , 0x02200 ikonok szerint fognak
megjelenni.
Tervezhetőség: A lényeg az, hogy a tervezhető utakat
tervezhető vonalra rögzítsük a typ fájlban. (pld. az ösvényt, földutat
stb., de nem kell tervezhetőnek lennie a pataknak, a kerítésnek stb.)
Tervezhető vonaltípusok a kövekezők (remélem nem hibás a lista):



--lower-case
--code-page=1250
| 0x00100 | 0x1 | INTERSTATE, MAJOR_HWY/Primary, divided, limited-access highway, akin to an interstate in the US/Non NT, NT |
| 0x00200 | 0x2 | PRINCIPAL_HWY/Principal highway, usually divided and limited access, akin to US highways/Non NT, NT |
| 0x00300 | 0x3 | OTHER_HWY/Other highway road, akin to a state highway in the US/Non NT, NT |
| 0x00400 | 0x4 | ARTERIAL/Main city thoroughfare/Non NT, NT |
| 0x00500 | 0x5 | COLLECTOR/Secondary city thoroughfare/Non NT, NT |
| 0x00600 | 0x6 | RESIDENTIAL/Residential street, these are typically the most numerous roads in a detailed city map and do not show up until the user is zoomed in quite far/Non NT, NT |
| 0x00700 | 0x7 | ALLEY, DRIVEWAY/Alleyway, private driveway to residence/Non NT, NT |
| 0x00800 | 0x8 | LOW_SPEED_RAMP/Highway ramp which is to be driven at low speeds/Non NT, NT |
| 0x00900 | 0x9 | HIGH_SPEED_RAMP, RAMP/Highway ramp which is to be driven at high speeds/Non NT, NT |
| 0x00a00 | 0xa | UNPAVED_ROAD/Gravel or dirt road/Non NT, NT |
| 0x00b00 | 0xb | MAJOR_CONNECTOR/Major highway connector/Non NT, NT |
| 0x00c00 | 0xc | ROUNDABOUT/Roundabout/Non NT, NT |
| 0x00d00 | 0xd | CUSTOMIZABLE_ROUTE_LINE_1/Routable customizable line/Non NT, NT |
| 0x00e00 | 0xe | CUSTOMIZABLE_ROUTE_LINE_2/Routable customizable line/Non NT, NT |
| 0x00f00 | 0xf | CUSTOMIZABLE_ROUTE_LINE_3/Routable customizable line/Non NT, NT |
| 0x01000 | 0x10 | CUSTOMIZABLE_ROUTE_LINE_4/Routable customizable line/Non NT, NT |
| 0x01100 | 0x11 | CUSTOMIZABLE_ROUTE_LINE_5/Routable customizable line/Non NT, NT |
| 0x01200 | 0x12 | CUSTOMIZABLE_ROUTE_LINE_6/Routable customizable line/Non NT, NT |
| 0x01300 | 0x13 | CUSTOMIZABLE_ROUTE_LINE_7/Routable customizable line/Non NT, NT |
| 0x01600 | 0x16 | TRAIL/Walkway or trail/Non NT, NT |
Néhány
érdekesség:
(building=* & area_size()>150)
| (building=* & name=*) { name '${name}'} [0x11612 resolution 24] Ez a sor
megjeleníti az össze building
cimkéjű sort,
amelynek az alapterülete area_size()>150 nagyobb 150
m2-nél, vagy name=* van valamilyen neve. Így
lehetett elérni, hogy a kicsi családi házakat ne jelenítse meg, de
látszódjanak
az iskolák, műemlékek, bármilyen „neves” épületek.
A polyline fájlban találod a
következőt: highway=service &
length()>15 [0x7 road_class=0 road_speed=3 resolution 24 ] Itt csak
azokat a highway=service utakat
jeleníti meg, amelyeknek a hossza nagyobb length()>15 mint 15 m. Ezzel sikerült elfogadhatóra
csökkenteni a sok magánház
garázsához vezető rövidke út megjelenítését.
Szintén érdekes a köv. kettős sor: highway=unclassified {
name '${ref}'} [0x27 road_class=0 road_speed=3 resolution 22-22
continue ] highway=unclassified {
name '${ref}'} [0xE road_class=0 road_speed=3 resolution 24 ] Érdekesség
lehet az access!=private feltétel amely a „nem egyenlő” jelentéssel
bír. Befejezés:
Az elkészült
térkép az én ízlésem szerinti, bármikor módosíthatom, ha akarom,
komoly tudást szereztem elkészítése során, és nekem nagyon tetszik.
Remélem
sikerült érthető formában leírni a folyamatot, és így tudtam segíteni a
térkép kimenetgyártásban. Ha valami nem érthető, szívesen
segítek a magam szerény tudásom keretein belül. Sok
sikert kívánok a saját térképek készítéséhez! (*)
idézet heyjoe leírásából.
Az ezekhez a vonalakhoz rendelt utak tervezhetőek lesznek, ha a
megadásnál hozzájuk rendelünk egy road_class=* és egy road_speed=*
értéket. Az értékeit a már említett manuál 26. oldalán találod
meg. ( http://www.mkgmap.org.uk/doc/pdf/style-manual.pdf )
highway=residential
{ name '${name}'} [0x6 road_class=1 road_speed=2 resolution 24]
Értékmegadásnál segítség lehet egy apró segédprogram, melyet innen
tölthetsz le: http://www.pinns.co.uk/osm/route_editor.html
highway=path {
name '${name}' ; set mkgmap:car=no;
set
mkgmap:taxi=no;
set
mkgmap:truck=no;
set
mkgmap:bus=no;
set
mkgmap:emergency=no;
set
mkgmap:delivery=no}
[0x16 road_class=0 road_speed=1 resolution 22]
Ezzel a hozzárendeléssel nem fog tervezni az ösvényre autóval, taxival,
teherautóval, busszal, mentővel és szállítóval. Tehát ide csak gyalog
vagy biciklivel tervez.
Az általam írt styles
fájlban találsz egy ilyen
sort. (…styles\teszt01\polygons) Az első sor 0x27 ikonnal
jeleníti
meg az adott utat a resolution 22-22
tartományban. (0.7-3 km) A végén a continue
azért kell, hogy a program vizsgálja a második sort is. A második sor 0xE ikonnal jeleníti meg ugyanazt
az utat a resolution 24
tartományban. (0.7 km-ig)
A # jel megjegyzés
beszúrását teszi
lehetővé a program sorai közé. A jel után írt karakterek nem lesznek
figyelembe
véve a feldolgozás közben, de ékezetes karaktereket ide sem szabad
írni.