1 Laboratoř geoinformatiky a kartografie KLIENTSKÁ ŘEŠENÍ Laboratoř geoinformatiky a kartografie • Webové stránky s nějakým způsobem i interaktivními mapami (např. image mapami) • Proč hovořit o rozšíření základní webové publikace na straně klienta? – snaha o vyšší stupeň funkcionality • např. propojení na webové služby – podpora dalších formátů • např. Adobe PDF – autorizace – asynchronní komunikace – … Co dnes lze pomocí základní webové publikace? Laboratoř geoinformatiky a kartografie Klientská aplikace (zásuvný modul) Zm50_nova_2008_1112.pdf Zakladni-vodohospodarska- mapa-1:50-000.html PDF plug-in Laboratoř geoinformatiky a kartografie Klientská aplikace (zásuvný modul) Zm50_nova_2008_1112.pdf Zakladni-vodohospodarska- mapa-1:50-000.html PDF plug-in Laboratoř geoinformatiky a kartografie • Výhody – značné zvýšení funkcionality – přenesení části nebo celé HW náročnosti na klienta – řešení mnohdy zdarma pro uživatele • Nevýhody – přenesení části nebo celé HW náročnosti na klienta – problémy s kompatibilitou (nutnost správné verze,…) – snadno definovatelná omezení klientské aplikace (se kterými uživatel nic nenadělá) – uživatel/administrátor může lehce znemožnit prohlížení takových map Klientské aplikace – hlavní výhody a nevýhody Laboratoř geoinformatiky a kartografie • Zásuvné moduly (do webových prohlížečů) – PDF (Portable Document Format) – PDF plug-in – Java – nutný Java Virtual Machine plug-in – SWF (Shockwave Flash) – Flash plug-in – Microsoft Silverlight – … • JavaScriptové aplikace a knihovny – Google Maps – OpenLayers – Leaflet – … Klientské aplikace 2 Laboratoř geoinformatiky a kartografie • Podporuje vektorovou i rastrovou grafiku • Verze 3D PDF • Široká podpora PDF (Portable Document Format) Laboratoř geoinformatiky a kartografie Java • Platformě nezávislý objektový programovací jazyk • Vyvinut Sun Microsystems, 1995 • Používaný ke tvorbě aplikací nebo jejich podpoře na počítači či síti • Malé aplikace – applety – mohou být také součástí www stránek • Applety umožňují interaktivitu • Pro prohlížení je třeba instalovat Java virtual machine – tzv. interpret Javy • Objektově orientovaný, distribuovaný, bezpečný, přenositelný,… • Pomalejší start programů (oproti C++,…) – překlad a pak spuštění • Paměťová náročnost – nutnost mít v paměti celé běhové prostředí • Chybí některé „klasické“ funkce umožňující tvorbu chyb Laboratoř geoinformatiky a kartografie Klientská aplikace: Java („Smart klient“) Laboratoř geoinformatiky a kartografie Klientská aplikace: Java („Smart klient“) Laboratoř geoinformatiky a kartografie Mobilní klientské aplikace Laboratoř geoinformatiky a kartografie Mobilní klientské aplikace • Mapy ČÚZK 3 Laboratoř geoinformatiky a kartografie JavaScript • Jednoduchý skriptovací jazyk • Závislý na prohlížeči (uživatel jej může vypnout) • V různých verzích prohlížečů nemusí korektně fungovat • Skript se může vložit přímo do stránky nebo uloží samostatně (přípona .js nebo .jse) • Stačí libovolný editor zdrojového kódu • Skript se zapisuje mezi značky • Použití od validace formulářů, mouseover na mapách,… Laboratoř geoinformatiky a kartografie Rozdíl mezi Javou a JavaScriptem JavaScript Java Interpretováno (nekompilováno) klientem Kompilace mezikódu staženého ze serveru na klientovi Objektově orientovaný – není rozdíl mezi typy a objekty. Prototypová dědičnost; vlastnosti a metody mohou být k jakémukoli objektu přidány dynamicky Objektově orientovaná – objekty jsou rozděleny do tříd a instancí s plnou dědičností. Třídy a instance nemohou mít vlastnosti a metody přidávané dynamicky Kód integrován a zakotven v (X)HMTL Applety přístupné z (X)HTML stránek Nedeklarované proměnné datové typy Deklarované datové typy Dynamické poskytování – reference objektů zkontrolovány za běhu Statické poskytování – reference objektů musí existovat v době kompilace Nemůže přímo zapisovat na pevný disk Může zapisovat na pevný disk Laboratoř geoinformatiky a kartografie JavaScript klient Laboratoř geoinformatiky a kartografie • Knihovna funkcionalit, ze kterých lze relativně snadno postavit vlastní klientskou mapovou aplikaci – Komerční • Google Maps • Bing Maps • ESRI JavaScript API • … – Otevřené • Leaflet • OpenLayers • … JavaScriptové knihovny Laboratoř geoinformatiky a kartografie • Komerční mají mnoho limitů, typicky počet zobrazení za měsíc • Za počátek se bere rok 2005, kdy bylo zveřejněno Google Maps API • V současné době stovky řešení – např. 50 tipů na http://techslides.com/50-javascript-libraries-and- plugins-for-maps • V ČR původně konkurence mapy.cz a atlas.cz – vývoj API pro amapy.cz zastaven v roce 2011 • Mnohé knihovny podporují více možností než jen JavaScript (Flash API, REST API,..) • Kombinace klientského a serverového řešení JavaScriptové knihovny Laboratoř geoinformatiky a kartografie • Původně byl požadován API klíč – dnes většinou jiné mechanismy ověřování • Vložení kódu do vlastní webové stránky – minimálně definice mapového okna (šířka, výška, BBOX) – definice vrstev – definice funkcionality • výchozí nastavení funkcionality bez zásahu vývojáře už obvykle zahrnuje přiblížení, oddálení, posun,… Vytvoření vlastní mapy pomocí JavaScript knihovny 4 Laboratoř geoinformatiky a kartografie • API v4.11 • Lze využívat i komerčně (placená podpora ze strany Seznamu) • Bez omezení počtu odeslaných požadavků za den • V API přístupné všechny mapy z Mapy.cz kromě podrobné mapy Evropy • Nejlepší podklady satelitních snímků i jiných map v ČR • Nemožnost využívat všechny podklady portálu mapy.cz • Propojení s IDOSem, obrovská návštěvnost portálu mapy.cz Mapy.cz Laboratoř geoinformatiky a kartografie • Funkcionalita v roce 2015: – šikmé snímky – ovládací prvky pro natočení mapy – hledání trasy – geokódování – náhledová mapa – dynamická změna mapových projekcí – větší definice ovládání mapy – KML vizualizátor – … Mapy.cz Laboratoř geoinformatiky a kartografie • Nejstarší, ale nejvíce se dynamicky rozvíjející řešení • 2005 zveřejněno JavaScript API, 2008 Flash API, dnes obsahuje i StreetView • Minimální licenční omezení pro nemasivní nekomerční využití • Omezení na geokódování, výškové služby, rozlišení Street View, věku autora na 21 let, publikaci na nevhodných stránkách • Funkcionalita obdobná s mapy.cz: - geokódování - vyhledávání tras - vlastní mapy - přepočty souřadnic - export do Google Earth - StreetView Google Maps Laboratoř geoinformatiky a kartografie • Globální řešení • Výborná dokumentace • Široká vývojářská komunita • Obrovské množství příkladů – https://developers.google.com/showcase/#tags=maps • Od verze 3 umožňuje stylovat mapy – množství existujících ukázek na http://snazzymaps.com/ Google Maps Laboratoř geoinformatiky a kartografie • Část Google geo řešení více orientovaných na „vědu“ • Nabízí volně mj. kompletní Landsat snímky za posledních 40 let – jako jediná organizace mimo USGS • ta je má na originálních páskách ve skladu v Jižní Dakotě – další satelitní data od NASA a ESA postupně nahrává na cloud • Kromě toho poskytuje také základní GIS/DPZ funkcionalitu, jako například řízenou klasifikaci všech snímků v databázi Google Earth Engine Laboratoř geoinformatiky a kartografie Specifická klientská mapová řešení: Zoomify • Jednoduché HTML řešení mapové publikace • Zdarma pro nekomerční využití • Není XHTML validní • Vytváří dlaždice na několik úrovní zoomu a skládá je do tabulky – na úrovni HTML 4 • Funkcionalita: zoom, posun, aktualizace obrazu • Převodník obrazu do dlaždic, prohlížeč • Podpora HTML, JPEG, Flash • Možnost exportu z Photoshopu do Zoomify 5 Laboratoř geoinformatiky a kartografie Specifická klientská mapová řešení: Zoomify • pyramidování v případě zoomify http://www.zoomify.com/ http://oldmaps.geolab.cz/map_region.pl?z_height=70&lang=cs&z_width=0&z_new win=0&map_root=2vm&map_region=mo Laboratoř geoinformatiky a kartografie • http://openlayers.org/ • První masově rozšířená univerzální otevřená JavaScriptová knihovna – nyní i s podporou mobilních platforem – velmi komplexní knihovna • Podpora WMS, WFS (včetně transakčního módu), KML, GML, OSM, Google Maps API, Bing Maps API, vektorových i rastrových vrstev, GeoJSONu,… • Standardní (ovládací) prvky uživatelského rozhraní: přiblížení/oddálení, posun, překryv vrstev, události,… • Základ i pro mnoho komerčních řešení, např. HSRS, Intergraph OpenLayers Laboratoř geoinformatiky a kartografie • http://leafletjs.com • Novější JavaScriptová knihovna, od počátku zamýšlená také pro mobilní platformy – jednodušší než OpenLayers → pozitivní vliv na výkon – plug-iny pro další požadovanou funkcionalitu • Podpora WMS, OSM, Google Maps API, vektorových i rastrových vrstev, GeoJSONu,… • (ovládací) prvky uživatelského rozhraní a výborná dokumentace jsou obdobné jako u OpenLayers • Během krátké doby se stalo řešením pro sociální sítě, např. Facebook či Flickr Leaflet