Table of Contents
GGmap - pluginy a jejich tvorba
Funkce GGmapy lze rozšiřovat pomocí pluginů o další možnosti. Může to být např.
- doplnění dalších map nebo překryvných vrstev
- změna vykreslovaných ikon
- úprava vzhledu
- doplnění filtrování
- a mnoho dalších funkcí, záleží jen na autorovi pluginu
Pluginy jsou v souborech *.ggm.js
a případně odpovídajících souborech (*.css
, soubory s obrázky, …). Vlastní plugin je napsán v javascriptu a aby bylo možné jej spravovat obvyklým způsobem jako ostatní pluginy do GeoGetu, je vhodné jej distribuovat v *.gip balíčku, který se postará o překopírování souborů do správných adresářů GeoGetu.
Správné umístění souborů pluginu po instalaci:
*.meta.ini
a*.ggi.pas
jsou v adresářiDATADIR\script\GgMap\
(toto není nutné pro funkci pluginu, je doporučené pro přehlednost a údržbu pluginů) o správné umístění souborů z instalačního balíčku by se měl postarat instalační script*.ggi.pas
*.ggm.js
a/nebo*.css
jsou v adresářiDATADIR\ggmap\plugin\
- všechny ostatní soubory, které plugin potřebuje , jsou v adresáři
DATADIR\ggmap\plugin\jméno_pluginu\
O přesun souborů do správných adresářů při instalaci pluginu a smazání nepotřebných souborů a adresářů při odinstalování pluginu se musí postarat instalační script *.ggi.pas
. (Je možné použít univerzální instalační script, viz níže.)
Inicializace pluginu
Základem správné funkce pluginu je jeho správná inicializace. O tu se stará funkce *_ggm_init()
, což je jediná povinná funkce. Ta by měla zejména zajistit inicializaci pluginu, nastavení obslužných funkcí událostí, doplnění položek menu a dalších činností potřebných pro správnou funkci pluginu. Inicializací se v tomto případě rozumí zejména doplnění volání funkcí pluginu v tu správnou chvíli, tedy při nějaké události. (Ve výjimečných případech, kdy inicializace není potřeba, bude tato funkce prázdná, ale existovat musí!)
Aktuální seznam všech možných událostí je v souboru DATADIR\ggmap\plugin\README.txt
:
onload | inicializace UI |
pointname | překlad typu bodu na jméno ikony |
loadicons | změna nebo rozšíření sady ikon |
filterpoint | filtrování ikon keší-bodů (vrací “true” k ignorování bodu) |
filterwpt | filtrování ikon waypointů (vrací “true” k ignorování bodu) |
onmap | po ukončení inicializace mapových objektů |
onclear | vyčištění uživatelských dat vrstev před loadbbox |
loadbbox | zavedení uživatelských dat v rámci BBox |
pointhower | kurzor nad bodem (vrací “true” k ignorování standardní rutiny) |
pointclick | kliknutí na bod (vrací “true” k ignorování standardní rutiny) |
Pro správnou funkci pluginu je důležité, aby byla velikost písmen ve jménech souborů v adresáři DATADIR\ggmap\plugin
stejná jako velikost písmen funkce *_ggm_init()
.
Pokud plugin potřebuje ke správné činnosti svůj *.css
soubor, musí ve své *_ggm_init()
funkcí zajistit jeho načtení, viz ukázka níže.
Instalační a odinstalační script *.ggi.pas
Instalační script je zodpovědný za přenos souborů pluginu do adresáře pluginů GgMapy a také za smazání všech souborů pluginu (tedy i *.meta.ini
a *.ggi.pas
) při odinstalování pluginu.
Existuje univerzální instalační script, který se za při dodržení několika podmínek pro tvorbu balíčku a pojmenování souborů o vše postará a autor pluginu jej nemusí pracně tvořit a ladit.
Ke správné funkci univerzálního instalačního scriptu je třeba, aby obsah *.gip souboru měl strukturu:
- adresář GgMap
- soubor
JmenoPluginu.meta.ini
- soubor
JmenoPluginu.ggi.pas
- adresář JmenoPluginu
- soubor
JmenoPluginu.ggm.js
- nepovinně soubor
JmenoPluginu.css
- nepovinně adresář JmenoPluginu
- další soubory, které plugin využívá
Další požadavky:
- při kopírování instalačního scriptu je nutné změnit jeho jméno na
JmenoPluginu.ggi.pas
- soubor
JmenoPluginu.meta.ini
obsahuje položkuParent=ggmap_plugin
- soubor
JmenoPluginu.meta.ini
obsahuje spuštění instalačního scriptu, v sekci[install]
položkascript=Ggmap\JmenoPluginu.ggi.pas
- soubor
JmenoPluginu.meta.ini
obsahuje spuštění odinstalačního scriptu, v sekci[uninstall]
položkaGgmap\JmenoPluginu.ggi.pas=
(script je při instalaci přesunut o adresář výš)
Pokud budou výše uvedené požadavky splněny, pak instalační a odinstalační funkce v instalačním scriptu se postarají o vše potřebné.
Ukázky postupů v pluginu
Zde jsou uvedeny jednoduché ukázky základních operací.
Doplnění mapy do seznamu map
function cuzk_ggm_init() { ggmregister('onmap', cuzk_ggm_run); };
Funkce v tomto případě obsahuje jediný řádek, který registruje funkci cuzk_ggm_run
pro spuštění po inicializaci mapových objektů. (Tato konkrétní funkce zajistí doplnění jedné mapy a jedné překryvné vrstvy do menu map. Plugin cuzk
je součástí instalace mapy.)
Zavedení *.css souboru
*.css soubor je vždy v základním adresáři pluginů a má stejné jméno jako plugin.
function jmenoPluginu_ggm_init() { loadcss('plugin/jmenoPluginu.css'); }
Po aktualizaci pluginu a spuštění mapy bude potřeba v prohlížeči ručně aktualizovat dříve načtený CSS soubor (CTRL+F5), aby se jeho změny promítly do zobrazení. Tomu lze zabránit takovým trikem. Stačí jméno souboru doplnit o nějaký parametr pro URL, který bude obsahovat jedinečný string a tento string při každé tvorbě gip
souboru (nezapomenout) změnit. Já k tomu účelu používám většinou datum sestavení souboru, např.:
loadcss('plugin/jmenoPluginu.css?ver=15.6.2021');
To zajistí, že při prvním spuštění ggmapy
prohlížeč aktualizuje css
soubor sám.
Přesouvatelný ovládací prvek
Pokud má plugin na mapě nějaký ovládací prvek, je vhodné jeho nadřízenému div
přidat třídu movable, nejlépe tak, aby vypadal stejně jako ostatní bloky ovládacích prvků, tedy
<div id="..." class="noprint leaflet-control-layers movable"> ... </div>
Pak bude mít jednak jednotný vzhled a zároveň jej bude možné přesouvat po mapě, bude-li nainstalován také plugin Movable. Zde bych doporučil ještě přečíst Pohled pod pokličku, aby to přesouvání určitě fungovalo.
Seznam dostupných pluginů pro GgMapu
Další mapy a/nebo překryvné vrstvy
Změna vzhledu částí mapy
Page | Date | Description | Tags |
---|---|---|---|
close search results | 2020/05/14 21:32 | close search results Umožní zavřít výsledek vyhledávání v GgMapě. Autor * vasam, <geo@vasam.cz> Automatická instalace Diskuze * Diskuze o tomto skri… | author vasam, ggmap style, ggmap |
Foldable | 2021/08/30 13:42 | Foldable Umožní skrytí ovládacích prvků mapy. Autor * vasam, <geo@vasam.cz> Automatická instalace Diskuze * Diskuze o tomto skriptu se nachází na st… | author vasam, ggmap style, ggmap |
Movable | 2021/08/30 13:42 | Movable Umožní libovolný přesun ovládacích prvků mapy. Autor * vasam, <geo@vasam.cz> Automatická instalace Diskuze * Diskuze o tomto skriptu se nach… | author vasam, ggmap style, ggmap |
Stylish | 2020/05/14 21:47 | Stylish Úprava vzhledu některých částí GgMapy. Autor * vasam, <geo@vasam.cz> Automatická instalace Diskuze * Diskuze o tomto skriptu se nachází na s… | author vasam, ggmap style, ggmap |
Filtrování bodů
Page | Date | Description | Tags |
---|---|---|---|
ExtendedFilters | 2020/08/07 11:03 | ExtendedFilters Rozšířené filtry do GgMapy umožňující filtrování podle typů bodů a jejich atributů. Autor * vasam, <geo@vasam.cz> Automatická instalace … | author vasam, ggmap filter, ggmap |
HideCaches | 2020/08/11 12:22 | HideCaches Umožní skrýt konkrétní keše v mapě (obdobně jako Ignore list na stránkách gc.com). Autor * vasam, <geo@vasam.cz> Automatická instalace Disku… | author vasam, ggmap filter, ggmap |
SimpleFilters | 2020/05/14 21:44 | SimpleFilters Jednoduché filtry do GgMapy umožňující skrýt waypointy a disablované keše. Autor * vasam, <geo@vasam.cz> Automatická instalace Diskuze … | author vasam, ggmap filter, ggmap |
Nové sady ikon bodů/keší
Page | Date | Description | Tags |
---|---|---|---|
IconSet | 2020/08/11 17:48 | IconSet Sada větších ikon inspirovanými ikonami z Keškomapy. Autor * vasam, <geo@vasam.cz> Automatická instalace Diskuze * Diskuze o tomto skriptu s… | author vasam, ggmap icon, ggmap |
Knihovny funkcí
Page | Date | Description | Tags |
---|---|---|---|
GgMapLib | 2020/08/09 19:19 | GgMapLib Knihovna funkcí pro podporu pluginů do GgMapy. Autor * vasam, <geo@vasam.cz> Automatická instalace Diskuze * Diskuze o tomto skriptu se nac… | author vasam, ggmap lib, ggmap |
Zobrazení souborů s jinými typy dat
Page | Date | Description | Tags |
---|---|---|---|
GeoJsonFile | 2021/08/27 09:50 | GeoJsonFile Plugin umožní zobrazit GeoJSON soubor na mapě. Plugin sice primárně předpokládá zobrazení bodů, ale nějak si poradí i s ostatními typy informací, k… | author gord, ggmap file, ggmap |
GpxFile | 2021/08/30 08:57 | GpxFile Plugin umožní zobrazit GPX soubor s prošlou nebo plánovanou cestou. To usnadňuje např. výběr keší k odlovu podél plánované cesty. Autor * Gord, Go… | author gord, ggmap file, ggmap |
Ostatní
Page | Date | Description | Tags |
---|---|---|---|
PlugsOff | 2020/08/05 12:49 | PlugsOff Plugin umožní dočasně přerušit fungování ostatních mapových pluginů. Autor * vasam, <geo@vasam.cz> Automatická instalace Diskuze * Diskuze … | author vasam, ggmap other, ggmap |