workshop - ruzicka - webové mapy prakticky

39
www.geoinformatics.upol.cz Webové mapy prakticky Ondřej Růžička @ondrejruzicka www.ondrejruzicka.cz Freelancer & DevMap s.r.o.

Upload: swenney

Post on 13-Dec-2014

51 views

Category:

Data & Analytics


4 download

DESCRIPTION

Workshop presentation from Third InDOG Doctoral Conference in Olomouc, Czech Republic. 13. - 16. October 2014

TRANSCRIPT

Page 1: Workshop - Ruzicka - Webové mapy prakticky

www.geoinformatics.upol.cz

Webové mapy prakticky

Ondřej Růžička@ondrejruzicka

www.ondrejruzicka.cz

Freelancer & DevMap s.r.o.

Page 2: Workshop - Ruzicka - Webové mapy prakticky

www.geoinformatics.upol.cz

Obsah

1. Novinky v open-source mapových knihovnáchCo nás čeká v Leaflet 1.0 a OpenLayers 3

2. Git pro verzování geodatVytvoření lokálního repozitáře, propojení s repozitářem na GitHubu, verzování

3. NoSQL databáze aneb odprostěte se od tabulekCo 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

Page 3: Workshop - Ruzicka - Webové mapy prakticky

www.geoinformatics.upol.cz

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

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

Page 4: Workshop - Ruzicka - Webové mapy prakticky

www.geoinformatics.upol.cz

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

Page 5: Workshop - Ruzicka - Webové mapy prakticky

www.geoinformatics.upol.cz

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)

Page 6: Workshop - Ruzicka - Webové mapy prakticky

www.geoinformatics.upol.cz

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

Page 7: Workshop - Ruzicka - Webové mapy prakticky

www.geoinformatics.upol.cz

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

Page 8: Workshop - Ruzicka - Webové mapy prakticky

www.geoinformatics.upol.cz

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

Page 9: Workshop - Ruzicka - Webové mapy prakticky

www.geoinformatics.upol.cz

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%“

– 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)

Page 10: Workshop - Ruzicka - Webové mapy prakticky

www.geoinformatics.upol.cz

OpenLayers 3

• Custom build

• Webový konfigurátor a automatické hledání závislostí je ve vývoji

Page 11: Workshop - Ruzicka - Webové mapy prakticky

www.geoinformatics.upol.cz

OpenLayers 3 - příklady

• Tile cache + High priority loading

Page 12: Workshop - Ruzicka - Webové mapy prakticky

www.geoinformatics.upol.cz

OpenLayers 3 - příklady

• Rotace

Page 13: Workshop - Ruzicka - Webové mapy prakticky

www.geoinformatics.upol.cz

OpenLayers 3 - příklady

• Labely u vektorů

Page 14: Workshop - Ruzicka - Webové mapy prakticky

www.geoinformatics.upol.cz

OpenLayers 3 - příklady

• Vytváření vrstev + editace

Page 15: Workshop - Ruzicka - Webové mapy prakticky

www.geoinformatics.upol.cz

OpenLayers 3 - příklady

• Editace - topologie

Page 16: Workshop - Ruzicka - Webové mapy prakticky

www.geoinformatics.upol.cz

OpenLayers 3 - příklady

• Image filtering

Page 17: Workshop - Ruzicka - Webové mapy prakticky

www.geoinformatics.upol.cz

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)

Page 18: Workshop - Ruzicka - Webové mapy prakticky

www.geoinformatics.upol.cz

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

Page 19: Workshop - Ruzicka - Webové mapy prakticky

www.geoinformatics.upol.cz

Git pro verzování geodat

Page 20: Workshop - Ruzicka - Webové mapy prakticky

www.geoinformatics.upol.cz

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)

Page 21: Workshop - Ruzicka - Webové mapy prakticky

www.geoinformatics.upol.cz

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í

Příklad

Page 22: Workshop - Ruzicka - Webové mapy prakticky

www.geoinformatics.upol.cz

NoSQL databáze

Page 23: Workshop - Ruzicka - Webové mapy prakticky

www.geoinformatics.upol.cz

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

Page 24: Workshop - Ruzicka - Webové mapy prakticky

www.geoinformatics.upol.cz

NoSQL – dokumentově orientované DB• Př. MongoDB a CouchDB• Základní jednotkou je dokument = JSON

Page 25: Workshop - Ruzicka - Webové mapy prakticky

www.geoinformatics.upol.cz

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

Page 26: Workshop - Ruzicka - Webové mapy prakticky

www.geoinformatics.upol.cz

MongoDB - Geoprostorová data• Document = JSON

zdroj: www.geojson.org

• (Multi) Bod• (Multi) Linie• (Multi) Polygon

• 2D• 2DSphere

Prostorové indexy

Page 27: Workshop - Ruzicka - Webové mapy prakticky

www.geoinformatics.upol.cz

MongoDB - Geoprostorová data• Prostorové dotazy

$geoIntersects - protínání$geoWithin - obsahuje$nearSphere – v blízkosti (max-min dist.)

http://mongogis.com/

Page 28: Workshop - Ruzicka - Webové mapy prakticky

www.geoinformatics.upol.cz

MongoDB

Příklad

Page 29: Workshop - Ruzicka - Webové mapy prakticky

www.geoinformatics.upol.cz

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

Page 30: Workshop - Ruzicka - Webové mapy prakticky

www.geoinformatics.upol.cz

Vektororové dlaždice

Page 31: Workshop - Ruzicka - Webové mapy prakticky

www.geoinformatics.upol.cz

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í

Page 32: Workshop - Ruzicka - Webové mapy prakticky

www.geoinformatics.upol.cz

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!

Page 33: Workshop - Ruzicka - Webové mapy prakticky

www.geoinformatics.upol.cz

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

Page 34: Workshop - Ruzicka - Webové mapy prakticky

www.geoinformatics.upol.cz

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.“

– Anne Ghisla

• Není to tak jednoduché jak s rastry…– Je potřeba větší podpora klientů

• Vznikají (zatím) nestandardizované implementace

Page 35: Workshop - Ruzicka - Webové mapy prakticky

www.geoinformatics.upol.cz

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

Page 36: Workshop - Ruzicka - Webové mapy prakticky

www.geoinformatics.upol.cz

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

Page 37: Workshop - Ruzicka - Webové mapy prakticky

www.geoinformatics.upol.cz

Vektorové dlaždice - GeoJSON

Příklad

Page 38: Workshop - Ruzicka - Webové mapy prakticky

www.geoinformatics.upol.cz

Vektorové dlaždice - GeoJSON

• HW:– Raspberry Pi– ARM procesor 700MHz, 512MB RAM– 16GB SD karta, spotřeba cca 1W– Cena: cca 850Kč– Linka: O2 ADSL – upload cca 512kb/s

• SW:– Raspbian (Debian)– Server PostgreSQL + PostGIS– Ruian DATA - okresy– Tilestache

Page 39: Workshop - Ruzicka - Webové mapy prakticky

www.geoinformatics.upol.cz

Ondřej Růžička@ondrejruzicka

www.ondrejruzicka.cz

Freelancer & DevMap s.r.o.

Děkuji za pozornost