Geokuk - tvorba vlastních ikon
Obsah |
Ikony v Geokuku
Program geokuk je vcelku univerzální program pro zobrazování bodů nad mapou. Zobrazované body mohou být libovolné, jejich počet není nijak omezen a uživatel má tedy možnost doplnit zobrazení vlastních bodů a přizpůsobit si již připravené zobrazení. Každý bod může být zobrazen jako ikona složená z různých vrstev, které se vzájemně překrývají a tvoří tak výsledný obraz ikony.
Program má trochu zvláštní terminologii, ale v základu je pochopitelná. Základem je kešoid, což je jakási zobecněná keš. Zobecněná proto, že se vůbec nemusí jednat o kěš jako takovou, ale v podstatě o jakýsi souhrnný typ bodz. Jeho zajímavou vlastností je to, že může se může dál dělit na další podtypy waypoint. Pojem waypoint je v porovnání s geocachingem opět trochu rozšířen. Jako příklad uveďme:
- kešoid keš s tapy tradiční, multy, mystery, ..., ale také dodatečné waypointy parkovistě, finalový bod, stage of multicache, ...
- kešoid waymark může obsahovat dynamicky se měnící (rozšiřující se) typy, namátkou fontány, triangulační body, porály, sakrální stavby, ...
- kešoid Český geodetický bod obsahuje například typy Trigonometrický bod centrální, Trigonometrický bod přidružený, Zhušťovací bod centrální, Zhušťovací bod přidružený, Bod základního tíhového pole, Bod ZGS (základní geodynamické síť) a Základní nivelační bod.
Adresářová struktura
Program pro kreslení ikon používá adresářovou strukturu, která začíná v místě zadaném v menu Soubor / Umístění souborů v položkách
- Složka s rozšiřujícími obrázky jiných geokolegů
- Složka s mými vlastními rozšiřujícími obrázky
K tomu, aby byly příslušné funkce opravdu využity, je nutné u každé položky ještě zaškrtout volbu Aktivní. Zde zadaným bodům říkejme Kořen. V něm vždy adresář map, který dál obsahuje pro každou sadu ikon další adresář. Budeme-li vyvíjet vlastní sadu, nazvěme pro další příklady adresář s naší sadou Vyvoj.
+ kořen + map + Vyvoj + skloX + skloY - skla.txt obsahuje ... seznam podadresaru sklo*, které definují překrývající se vrstvy pro vlastní vykreslování ikon - groups.properties ... obsahuje definici typ!=texovy popis. (pocet pismen typu je dulezity?) - iconOfSada.png (???k cemu???) + Dalsi sada
Adresáře s definicí skla
Každý adresář s definicí skla obsahuje další podadresáře vrstev. Z každé vrstvy se na sklo vykresluje právě jeden obrázek. Vrstvy se zpracovávají dle abecedního pořadí a obrázky na sklo vykreslují odspodu. Je vhodné, aby jméno vrstvy začínalo číslicí, aby řazení bylo zřejmé, jinak na návzu nezáleží.
Uvnitř adresáře jsou soubory s ikonami. Ikona může být vyjádřena buď obrázkem nebo souborem s příponou properties, které popisuje, jakým způsobem se ikona vykreslí.
vlastnosti zde definovaných ikon. Jsou to obyčejné textové soubory, na každém řádku je jedna definice vlastnosti. Vlastnost, která nemá být použita není v souboru vůbec definována.
width=NN ...... šířka ikony height=NN ..... výška ikony class=cz.geokuk.api.mapicon.XXXXX ... tvar vykreslení plochy s ikonou XXXXX = OvalRdaver (kružnice/elipsa) RoundRectDrawer (čtverec/obdélník se zaoblenými rohy) StdArchivDrawer (???) GrayDrawer (???) (nějaké další???) fill=RRR,GGG,BBB ... RGB složky barvy pro vyplnění vykreslené plochy, složky jsou v dekadickém tvaru oddělené čárkou lineWidth=NN ....... šířka čáry ohraničující vykreslenou plochu (0=bez čáry)
Soubory s ikonami mají pevně daný formát jména (před příponou). Jeho vysvětlení je dál v textu.
Princip zobrazování ikon
Vlastní obrázky, z kterých je ikona složena, mohou být v různých formátech (JPG, PNG, GIF, BMP) a je vhodné, aby hoorní vrstvy byly v takovém formátu, který podporuje průhlednost, aby v některých místech mohly být vidět vrstvy spodní. Autor opět zavedl svou vlastní terminologii, kde vrstvě s nějakou sledovanou vlastností přisoudil jméno Gen (v některém dialogu je pro zmatení použil pojem Fenotyp???) a hodnotám, které může vrstva (vlastnost) nabývat dal jméno Alela. Příklad:
- gen velikost keše má alely mikro, small, regular, ...
- gen typ waypointu může mít alely keš, waymark, ...
Seznam genů (tedy sledovaných vlastností a tedy i vrstev) je ohraničený a každému genu je přiřazena konkrétní vrstva daného čísla. Číslo zároveň udává počet znaků, které musí mít pojmenování všech alel tohoto genu. Skládáním jmena alel za sebe pak vzniká cesta a jméno souboru, z nějž se načítají ikony.
-
Gen Číslo vrstvy Možné alely Ikonový kód Typ waypointu 0 Alely nejsou pevně stanoveny Postavení 1 Nevykresluje se. 0 Hlavní bod kešoidu - vždy právě jeden. h Vedlejší body kešoidu. Žádný nebo více. v Druh kešoidu 2 Nevykresluje se. 00 Keš gc Waymark, kromě Českých geodetických bodů wm České geodetické body (speciální Waymark) gb Obecný waypoint (může mít i dodatečné waypointy, ale nejspíš mít nebude). wp Vztah 3 Nehledáno a tudíž nemohlo být nalezeno hnf Nalezeno fnd Moje vlastní own Neexistující, tedy vůbec nezaloženo, (vyskytuje se jen českých geodetických bodů, u kterých existuje databáze) not Stav 4 Aktivní actv Disable dsbl Archivovaná arch Velikost 5 Nevykresluje se 00000 Micro micro Small small Regular regul Large large Huge hugex Nespecifikována nspec Nazaškrtnuta nchec Výlet 6 Nevíme nevime Lovíme lovime Ignorujeme ignoru Postavení k myši 7 Myš není nad waypoitem z keše nomouse Myš je nad jiným waypointm z keše mousean Myš je nad tímto waypointem mouseon Vybranost 8 Nevybraný, čili normální noselect Vybraný selected Vyluštěnost 9 Mysterka, multina či jiná nevyluštěná nevyluste Keš je vyluštěna, to znamená, že existuje finální waypoint nebo je to keš tradiční. vylusteno Zdroj 10 Importované z PQ či jiného zdroje pqimported Ručně přidané handedited Terény Nevykresluje se ter0 Terény 1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5 ter10, ter15, ter20, ... Obtížnost Nevykresluje se dif0 Obtížnosti 1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5 dif10, dif15, dif20, ...ccc Výčet alel v genech není omezen tímto výčtem. Jen pro tenrto výčet jsou připraveny ikony.
Tvorba jmen souborů s ikonami
Jméno souboru s ikonou je poskládáno z jednotlivých jmen alel (hodnoty uvedené v posledním sloupci v tabulce) a v případě potřeby je možné doplnit ještě některé další vlastnosti.
Priorita
Jména souborů jsou složena ze jmen jednotlivých alel, jména se oddělují podtržítkem. Protože úroveň 0 nemá žádný znak, musí jméno souboru začínat podtržítkem.
Pokud by mohlo vyhovovat v jedné vrstvě více souborů, může být ke jménu doplněna ještě priorita ve tvaru _pN, kde N je číslo priority. v tom případě bude použita ikona s vyšším číslem priority. Pokud priorita není určena, má hodnotu 5.
Umístění ikon
Za normálních okolností se ikona umisťuje střenem na zadané souřadnice. Pomocí dalších parametrů ve jméně souboru s ikonou je možné ikonu pozicovat jinak.
- x3 - X na pozici tři, Y na střed
- y14 - X na střed, , Y na pozici 14.
- x8_y20 - X na pozici 8 a Y na pozici 20.
Jednoduchý příklad definice vlastní sady
Protože mám k dispozici GPX soubor se stanicemi pražské MHD, rozhodl jsem se je zobrazit. Zadal jsem si tedy kořenový adresář a v nem vytvořil strukturu map/MHD a v něm vytvořil textový soubor skla.txt obsahující řádky
skloNormal.VSE skloZvyrazneni.MYS skloNormal.MYS
(Netuším, co znamenají ty přípony, ale opsal jsem to z jakési dokumentace od autora ???)
Pak jsem vytvořil adresáře skloNormal a skloZvyrazneni (v adresáři MHD) a další soubor groups.properties. Do tohoto souboru jsem zapsal jediný řádek
mh!=MHD
kterým jsem definoval nový typ kešoidu. V adresáři skloNormal\2ctverce jsem vytvořil soubor _mh_actv_nomouse_p7_h16_v16.properties s následujícím obsahem:
class=cz.geokuk.api.mapicon.RoundRectDrawer width=16 height=16 fill=255,255,255
Tím jsem definoval velikost zobrazených ikon. V adresáři skloNormal\5typy jsem vytvořil soubory s ikonami jednotlivých typů zastavek:
mh!Bus.png mh!MetroA.png mh!MetroB.png mh!MetroC.png mh!Tram.png
Pak už zbývá jen do gpx souborů pro každou zastávku správně uvést
<type>mh</type> <sym>Bus</sym> resp. příslušný symbol dopravního prostředku
A na mapě se zastávky objevily. Definice se nijak nedotkne zobrazení dalších bodů, protože ty zůstávají zobrazeny implicitním způsobem. Jen jsem doplnil nové body.