2. Obsah
1. Novinky v open-source mapových knihovnách
Co nás čeká v Leaflet 1.0 a OpenLayers 3
2. Git pro verzování geodat
Vytvoření lokálního repozitáře, propojení s repozitářem na GitHubu, verzování
3. NoSQL databáze aneb odprostěte se od tabulek
Co jsou to NoSQL databáze, možnosti uložení prostorových dat
3. Vektorové dlaždice
Řešení jak dostat velké vektorové datové sady ke klientovi
www.geoinformatics.upol.cz
3. Novinky v open-source mapových knihovnách
Současná stabilní verze 0.7.3
Další plánovaná verze 0.8 -> 1.0
Vývoj se trochu zpomalil
OpenLayers 3
www.geoinformatics.upol.cz
S verzí 2 má společný „jen“ název
Verze 3.0.0 vydána 29.8.2014
Pořád je aktivní další vývoj
4. Leaflet 1.0
• Nová verze se nese v duchu
zjednodušování a zrychlování
– Menší paměťové nároky
– Minimum nových funkcí
– Menší velikost knihovny
– Větší rychlost načítání/vykreslování dat
www.geoinformatics.upol.cz
5. Leaflet 1.0
• Novinky
– Rychlejší načítání dlaždic, a důraz na vzhled
během práce s mapou – preciznější animace
– Dílčí zoom [map.setZoom(6.12) ]
– Vektorové vrstvy mapě bude možné vykreslovat
do Canvas i jako SVG zároveň
– Lepší připravenost pro práci s displeji s vysokým
rozlišením (Retina)
www.geoinformatics.upol.cz
6. Leaflet 1.0
• Novinky
Nový způsob práce s projekcemi
• Dosavadní verze byly úzce svázány s Web Mercator
• Jiné projekce se řešili „zbytečně složitě“
• Pomocí externí knihovny Proj4Leaflet atd.
• Použití pro lokální projekty bez nutnosti převodu
www.geoinformatics.upol.cz
7. Leaflet 1.0
• Leaflet jde cestou rychlé a na použití
jednoduché knihovny
• Další funkce jsou dostupné pomocí pluginů
• Pořád jde hlavně o one-man show
Zdroj:
https://speakerdeck.com/mourner/future-of-leaflet
www.geoinformatics.upol.cz
8. OpenLayers 3
• Vyvíjeno od začátku jako zcela nová knihovna -
odproštění od OpenLayers 2
• Komplexní knihovna se spoustou funkcí
• Podpora mobilních zařízení
• Hodně podporovaných formátů out-of-box:
– OSM, Bing, MapBox, Stamen, MapQuest, další XYZ formáty
– WMS, WMTS, WFS
– GML, GPX, KLM, GeoJSON, TopoJSON, WKT
www.geoinformatics.upol.cz
9. OpenLayers 3
• Od začátku klade důraz na modularitu:
„ Most users will only need 10-15% of the total functionality.
The trouble is that everybody needs a slightly different 15%“
www.geoinformatics.upol.cz
– Tom Payne
• Využití Google Closure – framework + compiler + build tool,
• částečně lze použít i Grunt (ale pořád s nutností GC a pythonu)
10. OpenLayers 3
• Custom build
• Webový konfigurátor a automatické hledání
závislostí je ve vývoji
www.geoinformatics.upol.cz
17. OpenLayers 3
• Příklady převzaty z:
http://openlayers.org/en/v3.0.0/examples/
• Prezentace dalších vlastností OL3:
– Getting Started with OpenLayers 3 — Tim Schaub,
Planet Labs (FOSS4G, 2014)
www.geoinformatics.upol.cz
18. Leaflet vs. OpenLayers 3
• Kterou knihovnu preferovat a používat? Obě!
• Záleží na projektu…
• Leaflet pro jednoduché projekty – „obyčejné
mapy“
• OpenLayers 3 pro komplexní projekty
A sledovat vývoj, protože za rok může být vše zase jinak
www.geoinformatics.upol.cz
20. Git pro verzování geodat
• Git = verzovací nástroj primárně pro verzování zdrojového
kódu a týmovou spolupráci
• Lze použit i pro jiné soubory – grafika, geodata…
• Nejběžnější používání GIT – CLI (příkazová řádka)
• Lze používat i lokálně
• GitHub = webová služba postavená na Git, nabízí zdarma
prostor pro data rozhraní pro procházení open-source
projektů (existuje i placená varianta pro closed-source)
www.geoinformatics.upol.cz
21. GitHub a geodata
• Od roku 2013 GitHub aktivně podporuje formát GeoJSON
• Automaticky zobrazuje geodata na mapě, při procházení na
webu
• Tím vzniká zajímavá platforma pro sdílení/spolupráci na
prostorových datech a jejich verzování
• Specifické využití
www.geoinformatics.upol.cz
Příklad
23. NoSQL databáze
• Jiná filozofie ukládání dat než do relačních databází –
nepoužívají se tabulky
• Vývoj od roku 2000, z potřeby škálování, práce s BigData atd.
• Výhody
– Rychlost i při velkém objemu dat
– Škálovatelnost, replikace
– Snazší použití – ukládání objektů (záleží na typu aplikace)
• Dělí se na další typy
– Column, Document, KV, Graph
www.geoinformatics.upol.cz
24. NoSQL – dokumentově orientované
DB
• Př. MongoDB a CouchDB
• Základní jednotkou je dokument = JSON
www.geoinformatics.upol.cz
25. MongoDB
• Pro všechny platformy
• Nestrukturovaná (scheme-less) databáze
– Nedefinují se sloupce, atd. data se rovnou ukládají
– Nevadí že u něktré dokumenty nejsou kompletní
• Databáze -> kolekce -> dokument
• Interně nejsou data uloženy v JSONu ale v tzv. BSONu
– binární podoba, kvůli velikosti a přenosu dat
www.geoinformatics.upol.cz
26. MongoDB - Geoprostorová data
• Document = JSON
Prostorové indexy
www.geoinformatics.upol.cz
zdroj: www.geojson.org
• (Multi) Bod
• (Multi) Linie
• (Multi) Polygon
• 2D
• 2DSphere
27. MongoDB - Geoprostorová data
• Prostorové dotazy
$geoIntersects - protínání
$geoWithin - obsahuje
$nearSphere – v blízkosti (max-min dist.)
http://mongogis.com/
www.geoinformatics.upol.cz
29. Kdy použít MongoDB?
• Potřebuji ukládat spoustu dat
• Pro hodně uživatelů
• … a rychle
• Potřebuji jen jednoduché vyhledávání
• Mám možnost MongoDB nainstalovat na
server
• Máte někoho kdo to naprogramuje
www.geoinformatics.upol.cz
31. Vektory ve webových mapách
• S vývojem výkonu Javascriptu v prohlížečích se
vektorová data objevují v prohlížeči častěji a
častěji
• Kromě bodů také polygony i linie
• Viz workshop z roku 2013:
http://statgis.upol.cz/konference/statgis2013
– Prezentace ke stažení
www.geoinformatics.upol.cz
32. Vektory ve webových mapách
• Problém je s velkými datasety, které se musí
nejprve celé stáhnout – problém
• WFS je pouze částečné řešení
• Řešení: to co funguje u rastrů
DLAŽDICE!
www.geoinformatics.upol.cz
33. Vektory ve webových mapách
• Stejné schéma jako u rastrů
– Každý zoom může
mít jiný LOD
– Jednoznačné určení:
/{z}/{x}/{y}.json
– „lazy loading“
• Nesou stejné
informace jako klasický GeoJSON
www.geoinformatics.upol.cz
34. Vektory ve webových mapách
• Nejednotný přístup
• Neexistuje standard OGC
„Vector tiles are one of the current hot topics among the whole
community that have been extensively discussed at the Code Sprint.
(spring 2014)
A specification draft has been prepared and will be discussed further.“
www.geoinformatics.upol.cz
– Anne Ghisla
• Není to tak jednoduché jak s rastry…
– Je potřeba větší podpora klientů
• Vznikají (zatím) nestandardizované implementace
35. Vektorové dlaždice
– ESRI (closed-source)
– Google (closed-source)
– MapBox – OSM (open-source)
• https://github.com/mapbox/vector-tile-spec/wiki/Implementations
• http://wiki.openstreetmap.org/wiki/PBF
• Protocol Buffers (aka protobuf /pbf)
• Slovníkově ukládané atributy (zamezuje redundanci)
• Delta-encoding geometry (úspora cca 30% místa)
• Binární ukládání a přenos
• Celý svět (OSM data) se ve formátu PBF má okolo 25GB
www.geoinformatics.upol.cz
36. Vektorové dlaždice - GeoJSON
• Jednodušší (čitelnější) varianta
• Náročnější na data a rychlost než PBF
• Existuje i TopoJSON varianta
• Server
– Mapnik + PostGIS
– Tilestache + PostGIS
– MMT vector tiles (python - offline)
• Klient: Leaflet (Plugin), OL3
www.geoinformatics.upol.cz