Nový munimap je tady!
Obsahuje kompletně přepracované vývojové prostředí, odstraňuje závislost na Google Closure a používá nové technologie jako Webpack, React, Redux aj.
Výměna a povýšení technologií
Původní verze munimapu byla postavena na technologii Google Closure, konkrétně na kompilátoru Closure Compiler a knihovně Closure Library, které byly dohromady provázané prostřednictvím technologie plovr. V posledních letech však byla viditelná tendence útlumu na vývoji plovru a jeho pomalé přizpůsobování novým verzím CC, CL a EcmaSriptu samotného. Z těchto důvodu jsme se rozhodli kompletně vyměnit vývojové prostředí munimapu směrem k modernímu EcmaScriptu 6+ a knihovnám jako je Webpack nebo React. Důležitým požadavkem byla také efektivní správa balíčku potřebných pro chod aplikace pomocí npm (Node Package Manager).
Kombinace knihoven Webpack a Babel umožnuje spouštět vývojové prostředí a buildovat výsledný kód za minimálního úsilí. Na vstupu tak může být nejnovější EcmaScript a pouhou konfigurací zmíněných knihoven je možné vytvořit výslednou aplikaci kompatibilní třeba i s prohlížečem Internet Explorer 11. Oproti Closure Compileru trvá kompilace kódu daleko méně času a společně s tzv. hot reloadem je pak vývoj velice efektivní. Odpadá tak nutnost využití technologií jako je Gulp nebo Grunt pro spouštění automatizovaných úloh. Typová kontrola je prováděna pomocí Typescript anotací a Typescript Compileru.
Breaking Changes
Knihovna munimap
- odebrána podpora pro Internet Explorer 11
- globální objekt ol nyní obsahuje pouze explicitně exportované funkce a třídy
- v určitých případech je třeba explicitně nastavit výšku a šířku target divu – souvisí s vykreslováním objektu ol/Map
- změna id vrstev (ol/layer/Vector) - sjednocení na tvar s pomlčkami a v jednotném čísle
- elementům ovládacích prvků (ol/control) byla odebrána id - nedochází tak ke konfliktům např. při umístění více map na stránku
Vývojové prostředí
- Kód je rozdělen do ES modulů a využívá importy/exporty (odebrán goog.require, goog.provide a namespace munimap)
- OpenLayers povýšeny na verzi 6.14.1, do munimapu importovány jako moduly (= odebrán legacy build OpenLayers)
- Gulp a jeho tasky zabezpečující automatizaci jsou nahrazeny Webpackem a jeho pluginy