GeoGet

Complete geocaching solutions

User Tools

Site Tools


user:navody:ggmap-pluginy

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ář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\
  • 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:

onloadinicializace UI
pointnamepřeklad typu bodu na jméno ikony
loadiconszměna nebo rozšíření sady ikon
filterpointfiltrování ikon keší-bodů (vrací “true” k ignorování bodu)
filterwptfiltrování ikon waypointů (vrací “true” k ignorování bodu)
onmappo ukončení inicializace mapových objektů
onclearvyčištění uživatelských dat vrstev před loadbbox
loadbboxzavedení uživatelských dat v rámci BBox
pointhowerkurzor nad bodem (vrací “true” k ignorování standardní rutiny)
pointclickkliknutí 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žku Parent=ggmap_plugin
  • soubor JmenoPluginu.meta.ini obsahuje spuštění instalačního scriptu, v sekci [install] položka script=Ggmap\JmenoPluginu.ggi.pas
  • soubor 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é.

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

PageDateDescriptionTags
close search results2020/05/14 21:32close 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…, ,
Foldable2021/08/30 13:42Foldable 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…, ,
Movable2021/08/30 13:42Movable Umožní libovolný přesun ovládacích prvků mapy. Autor * vasam, <geo@vasam.cz> Automatická instalace Diskuze * Diskuze o tomto skriptu se nach…, ,
Stylish2020/05/14 21:47Stylish Úprava vzhledu některých částí GgMapy. Autor * vasam, <geo@vasam.cz> Automatická instalace Diskuze * Diskuze o tomto skriptu se nachází na s…, ,

Filtrování bodů

PageDateDescriptionTags
ExtendedFilters2020/08/07 11:03ExtendedFilters Rozšířené filtry do GgMapy umožňující filtrování podle typů bodů a jejich atributů. Autor * vasam, <geo@vasam.cz> Automatická instalace …, ,
HideCaches2020/08/11 12:22HideCaches 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…, ,
SimpleFilters2020/05/14 21:44SimpleFilters Jednoduché filtry do GgMapy umožňující skrýt waypointy a disablované keše. Autor * vasam, <geo@vasam.cz> Automatická instalace Diskuze …, ,

Nové sady ikon bodů/keší

PageDateDescriptionTags
IconSet2020/08/11 17:48IconSet Sada větších ikon inspirovanými ikonami z Keškomapy. Autor * vasam, <geo@vasam.cz> Automatická instalace Diskuze * Diskuze o tomto skriptu s…, ,

Knihovny funkcí

PageDateDescriptionTags
GgMapLib2020/08/09 19:19GgMapLib Knihovna funkcí pro podporu pluginů do GgMapy. Autor * vasam, <geo@vasam.cz> Automatická instalace Diskuze * Diskuze o tomto skriptu se nac…, ,

Zobrazení souborů s jinými typy dat

PageDateDescriptionTags
GeoJsonFile2021/08/27 09:50GeoJsonFile 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…, ,
GpxFile2021/08/30 08:57GpxFile 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…, ,

Ostatní

PageDateDescriptionTags
PlugsOff2020/08/05 12:49PlugsOff Plugin umožní dočasně přerušit fungování ostatních mapových pluginů. Autor * vasam, <geo@vasam.cz> Automatická instalace Diskuze * Diskuze …, ,

Seznam souborů

[n/a: No match]
user/navody/ggmap-pluginy.txt · Last modified: 2021/07/06 12:08 by gord