Geokuk - tvorba vlastních ikon: Porovnání verzí

Z GeoWiki
Přejít na: navigace, hledání
(Smazání obsahu, protože neumím smazat stránku. Přesouvá se na github.)
 
(Není zobrazeno 11 mezilehlých verzí od 4 uživatelů.)
Řádka 1: Řádka 1:
== 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.
 
 
: <table border=1>
 
<tr><th>Gen</th><th>Číslo vrstvy</th><th>Možné alely</th><th>Ikonový kód</th></tr>
 
<tr><th>Typ waypointu</th><td>0</td><td>Alely nejsou pevně stanoveny</td></tr>
 
<tr><th rowspan=3>Postavení</th><td rowspan=3>1</td><td>Nevykresluje se.</td><td>0</td></tr>
 
<tr><td>Hlavní bod kešoidu - vždy právě jeden.</td><td>h</td></tr>
 
<tr><td>Vedlejší body kešoidu. Žádný nebo více.</td><td>v</td></tr>
 
 
<tr><th rowspan=5>Druh kešoidu</th><td rowspan=5>2</td><td>Nevykresluje se.</td><td>00</td></tr>
 
<tr><td>Keš</td><td>gc</td></tr>
 
<tr><td>Waymark, kromě Českých geodetických bodů</td><td>wm</td></tr>
 
<tr><td>České geodetické body (speciální Waymark)</td><td>gb</td></tr>
 
<tr><td>Obecný waypoint (může mít i dodatečné waypointy, ale nejspíš mít nebude).</td><td>wp</td></tr>
 
 
<tr><th rowspan=4>Vztah</th><td rowspan=4>3</td><td>Nehledáno a tudíž nemohlo být nalezeno</td><td>hnf</td></tr>
 
<tr><td>Nalezeno</td><td>fnd</td></tr>
 
<tr><td>Moje vlastní</td><td>own</td></tr>
 
<tr><td>Neexistující, tedy vůbec nezaloženo,
 
(vyskytuje se jen českých geodetických bodů, u kterých existuje databáze)</td><td>not</td></tr>
 
 
<tr><th rowspan=3>Stav</th><td rowspan=3>4</td><td>Aktivní</td><td>actv</td></tr>
 
<tr><td>Disable</td><td>dsbl</td></tr>
 
<tr><td>Archivovaná</td><td>arch</td></tr>
 
 
<tr><th rowspan=8>Velikost</th><td rowspan=8>5</td><td>Nevykresluje se</td><td>00000</td></tr>
 
<tr><td>Micro</td><td>micro</td></tr>
 
<tr><td>Small</td><td>small</td></tr>
 
<tr><td>Regular</td><td>regul</td></tr>
 
<tr><td>Large</td><td>large</td></tr>
 
<tr><td>Huge</td><td>hugex</td></tr>
 
<tr><td>Nespecifikována</td><td>nspec</td></tr>
 
<tr><td>Nazaškrtnuta</td><td>nchec</td></tr>
 
 
<tr><th rowspan=3>Výlet</th><td rowspan=3>6</td><td>Nevíme</td><td>nevime</td></tr>
 
<tr><td>Lovíme</td><td>lovime</td></tr>
 
<tr><td>Ignorujeme</td><td>ignoru</td></tr>
 
 
<tr><th rowspan=3>Postavení k myši</th><td rowspan=3>7</td><td>Myš není nad waypoitem z keše</td><td>nomouse</td></tr>
 
<tr><td>Myš je nad jiným waypointm z keše</td><td>mousean</td></tr>
 
<tr><td>Myš je nad tímto waypointem</td><td>mouseon</td></tr>
 
 
<tr><th rowspan=2>Vybranost</th><td rowspan=2>8</td><td>Nevybraný, čili normální</td><td>noselect</td></tr>
 
<tr><td>Vybraný</td><td>selected</td></tr>
 
 
<tr><th rowspan=2>Vyluštěnost</th><td rowspan=2>9</td><td>Mysterka, multina či jiná nevyluštěná</td><td>nevyluste</td></tr>
 
<tr><td>Keš je vyluštěna, to znamená, že existuje finální waypoint nebo je to keš tradiční.</td><td>vylusteno</td></tr>
 
 
<tr><th rowspan=2>Zdroj</th><td rowspan=2>10</td><td>Importované z PQ či jiného zdroje</td><td>pqimported</td></tr>
 
<tr><td>Ručně přidané</td><td>handedited</td></tr>
 
 
<tr><th rowspan=2>Terény</th><td rowspan=2></td><td>Nevykresluje se</td><td>ter0</td></tr>
 
<tr><td>Terény 1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5</td><td>ter10, ter15, ter20, ...</td></tr>
 
 
<tr><th rowspan=2>Obtížnost</th><td rowspan=2></td><td>Nevykresluje se</td><td>dif0</td></tr>
 
<tr><td>Obtížnosti 1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5</td><td>dif10, dif15, dif20, ...ccc</td></tr>
 
 
</table>
 
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.
 

Aktuální verze z 13. 2. 2016, 17:48