reactjs for geospatial

43
REACTJS FOR GEOSPATIAL APPS Just van den Broecke 5-apr-2017 JavaKnights Gathering Vandebron, Amsterdam

Upload: just-van-den-broecke

Post on 15-Apr-2017

229 views

Category:

Software


1 download

TRANSCRIPT

Page 1: ReactJS For Geospatial

REACTJS FOR GEOSPATIAL APPS

Just van den Broecke5-apr-2017

JavaKnights GatheringVandebron, Amsterdam

Page 2: ReactJS For Geospatial

THREE CAPS

Open Geo-ICT Professional justobjects.nl

MemberOpenGeoGroep (NL)www.opengeogroep.nl

Secretary Board OSGeo.nl

1. Intro

Page 3: ReactJS For Geospatial

Finding the ideal

JS framework

Agenda

Worked/working onProjects

The Quest

ReactJSfor

Geospatial Apps

ReactJS

Page 4: ReactJS For Geospatial

Now

Agenda

Then

Projects

Page 5: ReactJS For Geospatial

Pushlets 1998+Projects

Page 6: ReactJS For Geospatial

Waag Society - 2004Projects

Page 7: ReactJS For Geospatial

Frequentie 1550

Projects

Page 8: ReactJS For Geospatial

GEOREFERENCING CHALLENGE

Frequentie 1550

Projects

Page 9: ReactJS For Geospatial

GeoSkating 2005+Projects

Page 10: ReactJS For Geospatial

GeoTracing 2006+Projects

Page 11: ReactJS For Geospatial

7scenes.com 2007+Projects

Page 12: ReactJS For Geospatial

7scenes.com 2007+Projects

Page 13: ReactJS For Geospatial

Now

Agenda

Then

Projects

Page 14: ReactJS For Geospatial

Heron Mapping ClientProjects

Page 15: ReactJS For Geospatial

Heron Mapping ClientProjects

ExtJS Open Layers

GeoExt

Heron Framework

Heron Apps

Page 16: ReactJS For Geospatial

Heron Mapping ClientProjects

Heron

PyWPS

WMS WFS WMTS TMS WPS CSWCustom

Proxy

Heron.cgiYour Scripts...

Client

API

Server

= Planned

Page 17: ReactJS For Geospatial

NLExtract - OpenTopo - KademoProjects

Page 18: ReactJS For Geospatial

map5.nl - online mapsProjects

Page 19: ReactJS For Geospatial

map5.nl - online mapsProjects

Page 20: ReactJS For Geospatial

Bonnebladenuit

map5.nl

map5.nl - online mapsProjects

Page 21: ReactJS For Geospatial

Archol.nl - Leiden

map5.nl - online mapsProjects

Page 22: ReactJS For Geospatial

Archol.nl - Leiden

map5.nl - online mapsProjects

Page 23: ReactJS For Geospatial

SB4 - Wageningen - Restauratie Keienberg (Velp)

19e Eeuw Brouillon2015 - AHN2

1825 1783 - Hottinger

map5.nl - online mapsProjects

Page 24: ReactJS For Geospatial

Voor

Na

SB4 - Wageningen - Restauratie Keienberg (Velp)

map5.nl - online mapsProjects

Page 25: ReactJS For Geospatial

In standard hiking appsmap5.nl - online mapsProjects

Page 26: ReactJS For Geospatial

AHN2 Reliëf in CesiumJS 3D

Shaded relief map

from map5.nl

Projects

Page 27: ReactJS For Geospatial

kadviewer.map5.nl - KadViewerProjects

Page 28: ReactJS For Geospatial

app.map5.nl/nltopo - NLTopo AppProjects

Page 29: ReactJS For Geospatial

Finding the ideal

JS framework

Agenda

Worked/working onProjects

The Quest

ReactJSfor

Geospatial Apps

ReactJS

Page 30: ReactJS For Geospatial

JS Framework for Geo-AppsThe Quest

Open Sourcewith broad community

Declarative

Component-based

Mobile App support

Based on OpenLayers || Leaflet || [CesiumJS]

define app via config

Client-onlyserver-agnostic

join existing project

Page 31: ReactJS For Geospatial

JS-Geo-Fwork - CandidatesThe Quest

Boundless SDK

map.geoadmin.ch

MapStore2

GeoMoose (v3)

Version1

Page 32: ReactJS For Geospatial

Finding the ideal

JS framework

Agenda

Worked/working onProjects

The Quest(is never over)

ReactJSfor

Geospatial Apps

ReactJS

Page 33: ReactJS For Geospatial
Page 34: ReactJS For Geospatial

Modern JS Dev - Oh MyReactJS

Browserify WebPack

ES6

AMD

JSX

Babel

NodeNPM

TypeScript, CoffeeScript, PureScript, Elm, …

Mocha, Chai, Jasmine, Jest, Sinon, Ava,Tape, ..

ESLintES5

Flux, Redux,Mobx,..

SASS, SCSS, Less…

https://hackernoon.com/a-map-to-modern-javascript-development-2017-16d9eb86309c

ES2015

RequireJS

Page 35: ReactJS For Geospatial

ReactJS - Essence IMHOReactJS

View-only - the “V” in MVCComponent-Container (View) Pattern

Not an MVC-like Framework

http://blog.andrewray.me/reactjs-for-stupid-people/

View-templates: HTML+JS = JSX

One-way dataflow

Virtual DOM

+React Native

Flux, Redux, MobX, …

Need State Management

https://www.robinwieruch.de/redux-mobx-confusion

Props and State

Page 36: ReactJS For Geospatial

React in 7 MinsReactJS

https://egghead.io/lessons/react-react-in-7-minutes

Page 37: ReactJS For Geospatial

Architecture - FluxReactJS

https://github.com/facebook/flux/tree/master/examples/flux-concepts

https://scotch.io/tutorials/getting-to-know-flux-the-react-js-architecture

Page 38: ReactJS For Geospatial

React-NativeReactJS

https://facebook.github.io/react-native

Page 39: ReactJS For Geospatial

ElectronElectron

https://electron.atom.io

Page 40: ReactJS For Geospatial

ElectronElectron

https://electron.atom.io

Page 41: ReactJS For Geospatial

Electron - PoCElectron

# Get cd ~/research/web/electron git clone https://github.com/electron/electron-quick-start quickstart cd quickstart

# Install npm install electron --save-dev npm install electron-packager --save-dev

# Run npm install npm start

# Package ./node_modules/.bin/electron-packager —help ./node_modules/.bin/electron-packager —-overwrite . quickstart cd quickstart-darwin-x64 open quickstart.app

# Specials to get KadViewer working  - No Cross Domain Issues! OpenLayers.ProxyHost = undefined; Heron.globals.serviceUrl= 'http://kadviewer.map5.nl/cgi-bin/heron.cgi';

https://electron.atom.io

Page 42: ReactJS For Geospatial

Electron - PoCElectron

https://electron.atom.io