GeoGet

Complete geocaching solutions

User Tools

Site Tools


user:navody:ggmap-pluginy

This is an old revision of the document!


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ží 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 vyjímeč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');
}

Přesouvatelný ovládací prvek

Pokud má plugin na mapě nějaký ovladací 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řesouva po mapě, bude-li nainstalován také plugin Movable.

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.1595752238.txt.gz · Last modified: 2020/07/26 10:30 by gord