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.

Mindkét program java alapú, így annak telepítve kell lennie a gépeden! Nem árt, ha friss is, így

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 auto create gombra.

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]

Erre szolgál a resolution 21 kifejezés. Az általam elkészített térképen a
resolution 24           700 m-ig
resolution 22           3 km-ig
resolution 20           10 km-ig
resolution 18           50 km-ig 
resolution 16           200 km-ig 
resolution 14           1000 km-ig 
resolution 12           3000 km-ig
jeleníti meg az adott objektumot. (GPS-re töltve ez változik)
 
”Ez a kis tesztstílusunk csak ennyit tud, próbáljuk ki, indítsuk el a mapuploadert, tallózzuk be a letöltött pbf-et (elvileg most darabolnunk sem kell, mert már az előbb megtettük), csak most a Select style mellett válasszuk ki a teszt nevezetű stílust, adjunk a térképnek nevet, majd gyártsuk le, és telepítsük mapsource alá a feljebb leírtak szerint. Indítsuk el, és gyönyörködjünk :) Ez sem egy nagy durranás, sárga utakként láthatjuk a túraútvonalakat, és apró pöttyökként a forrásokat.”

A Mapsource alól a felesleges térképeket a MapUploader jobb alján lévő „lista” ikonra kattintva feljövő Installed Maps nevű helyen törölheted. Az itt leírt dolgokat részletesen megtalálod, az alábbi linken. (sajnos angolul)

            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.

          Az elérési útvonal alá írd be:
--lower-case
--code-page=1250
    A második sor állítja be az ékezetes betűk használatát, az első pedig visszaállítja a nagy és kisbetűk használatát.

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):
  

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


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

Hogy egy adott járművet milyen útra tervezzen ( ösvényre ne tervezzen autóbusszal, vagy autóbályára biciklivel), az út magadásánál a név mezőbe írt kiegészítéssel lehet megoldani:
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.

 

Néhány érdekesség:


          Az általam írt styles fájlban találsz egy ilyen sort.  (…styles\teszt01\polygons)

(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 ]

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.
  

          É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.