Funkce GGmapy lze rozšiřovat pomocí pluginů o další možnosti. Může to být např.
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áři DATADIR\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áři DATADIR\ggmap\plugin\
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.)
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í 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:
JmenoPluginu.meta.ini
JmenoPluginu.ggi.pas
JmenoPluginu.ggm.js
JmenoPluginu.css
Další požadavky:
JmenoPluginu.ggi.pas
JmenoPluginu.meta.ini
obsahuje položku Parent=ggmap_plugin
JmenoPluginu.meta.ini
obsahuje spuštění instalačního scriptu, v sekci [install]
položka script=Ggmap\JmenoPluginu.ggi.pas
JmenoPluginu.meta.ini
obsahuje spuštění odinstalačního scriptu, v sekci [uninstall]
položka Ggmap\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é.
Zde jsou uvedeny jednoduché ukázky základních operací.
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.)
*.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.
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.
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 |
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 |
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 |
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 |
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 |
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 |