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ží 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 (2.65 KiB, 2w ago, 6 downloads), 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');
}

Seznam dostupných pluginů pro GgMapu

Další mapy a/nebo překryvné vrstvy

Změna vzhledu částí mapy

PageDateDescriptionTags
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… , ,
Movable 2020/05/14 21:00 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… , ,
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… , ,

Filtrování bodů

PageDateDescriptionTags
ExtendedFilters 2020/05/17 01:01 ExtendedFilters Rozšířené filtry do GgMapy umožňující filtrování podle typů bodů a jejich atributů. Autor * vasam, <geo@vasam.cz> Automatická instalace … , ,
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 … , ,

Nové sady ikon bodů/keší

PageDateDescriptionTags
IconSet 2020/05/14 21:40 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… , ,

Knihovny funkcí

PageDateDescriptionTags
GgMapLib 2020/05/17 00:58 GgMapLib Knihovna funkcí pro podporu pluginů do GgMapy. Autor * vasam, <geo@vasam.cz> Automatická instalace Diskuze * Diskuze o tomto skriptu se nac… , ,

Ostatní

PageDateDescriptionTags
PlugsOff 2020/05/14 21:42 PlugsOff Plugin umožní dočasně přerušit fungování ostatních mapových pluginů. Autor * vasam, <vasam@nekde.cz> Automatická instalace Diskuze * Diskuz… , ,

Seznam souborů

FilenameLast modified
ggmap-plugin.ggi.pas (2.65 KiB, 2w ago, 6 downloads)2020/05/15 11:18
user/navody/ggmap-pluginy.txt · Last modified: 2020/05/18 07:32 by gord