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, oficiálně ECMAScript • Do roku 2015 takřka neměnný, nyní každoroční aktualizace – vede k vyšším nárokům na aktualizaci interpretů (webových prohlížečů) • 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 • MapBox, Turf • … 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 (nevýhodou objem dat knihovny) • 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 (vč. MapBoxu), GeoJSON • 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ší (dnes zřejmě nejužívanější) JavaScriptová knihovna, od počátku zamýšlená také pro mobilní platformy; znatelné zpomalení vývoje po verzi 1.0 – 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 Laboratoř geoinformatiky a kartografie • Základní aplikace pro rychlou a jednoduchou správu vektorových dlaždic • Založeno na WebGL • OpenStreetMap v podobě vektorových dlaždic • Na to pohlíží jako na kartografické dílo a je tak součástí autorského zákona • Možnost stylovat – Ve zdrojovém kódu (analogie s SLD) – V editoru – Maputnik (zdarma) či Mapbox Studio (placené) Mapbox – GL – JS Laboratoř geoinformatiky a kartografie • https://cesiumjs.org • Knihovna pro 3D glóby a mapy – Zejména budovy, BIM, mračna bodů, analýzy viditelnosti či turistické portály – Výborná dokumentace, několik tutoriálů a velké množství demo aplikací – Naopak slabé pro 2D Cesium JS Laboratoř geoinformatiky a kartografie • Knihovna pro geoinformatické analýzy nad formátem GeoJSON (http://turfjs.org/) – měření vzdáleností, velikostí, převody jednotek, … – konvexní obálky, Voronoiho diagramy,… – interpolace – generalizační algoritmy – … • Vyvinuto primárně pro MapBox, ale kombinovatelné s Leafletem a dalšími knihovnami • Modulární a rychlé řešení Turf.js 6 Laboratoř geoinformatiky a kartografie • Jednoduché rozhraní pro vytvoření map na cloudovém řešení ESRI • Obdobné open-source řešení CartoDB – 2D mapy i 3D scény – Vektorové dlaždice, OGC služby, mračna bodů,… – Variabilita 3D funkcí se neblíží možnostem Cesium JS • Platí se podle množství uživatelů přistupujících na vaši aplikaci (ArcGIS Online, CartoDB, MapBox) – financuje vyšší hardware požadavky na server ArcGIS Online