Swisstrains

57
Swisstrains A tale of how to build model trains for web Vasile Coțovanu @vasile23 - vasile.ch http://www.graphicalweb.org/2014/

description

"A tale of how to build model trains for web" LIVE DEMO: http://goo.gl/yVKLMk Presentation given at The Graphical Web 2014 conference, Winchester, UK http://www.graphicalweb.org/2014/

Transcript of Swisstrains

Page 1: Swisstrains

SwisstrainsA tale of how to build model trains for web

Vasile Coțovanu @vasile23 - vasile.ch

http://www.graphicalweb.org/2014/

Page 2: Swisstrains

About me

Image sources: http://romaniatourism.com/romania-maps/europe-map.html http://geodesy.agu.org/ http://www.dayguide.ch/Restaurant_Die_Waid_Restaurants_s4_k1_d821_u.html

Page 3: Swisstrains

About me

Image sources: http://romaniatourism.com/romania-maps/europe-map.html http://geodesy.agu.org/ http://www.dayguide.ch/Restaurant_Die_Waid_Restaurants_s4_k1_d821_u.html

Page 4: Swisstrains

About me

Image sources: http://romaniatourism.com/romania-maps/europe-map.html http://geodesy.agu.org/ http://www.dayguide.ch/Restaurant_Die_Waid_Restaurants_s4_k1_d821_u.html

Page 5: Swisstrains

Hobbies

Page 6: Swisstrains

Hobbies

Image source: Swisstopo - https://map.geo.admin.ch/

Page 7: Swisstrains

Hobbies

Image source: Swisstopo - https://map.geo.admin.ch/

Image source: https://www.flickr.com/photos/vasile23/

Page 8: Swisstrains

Motivation

Image source: SBB - http://www.sbb.ch/

Page 9: Swisstrains

Motivation

Image source: SBB - http://www.sbb.ch/

Image source: Swisstopo - https://map.geo.admin.ch/

Page 10: Swisstrains

Motivation

Image source: SBB - http://www.sbb.ch/

Image source: Swisstopo - https://map.geo.admin.ch/

Image source: http://bit.ly/1qCbYOk

Page 11: Swisstrains

Swisstrains DEMO

http://maps.vasile.ch/transit-sbb/

Page 12: Swisstrains

SwisstrainsOf course !Live positions ?

DEMO

http://maps.vasile.ch/transit-sbb/

Page 13: Swisstrains

SwisstrainsOf course !NOT :)Live positions ?

DEMO

http://maps.vasile.ch/transit-sbb/

Page 14: Swisstrains

Train positions

Page 15: Swisstrains

“Graphical DB”: stations, tracks “Textual DB”: timetables

How

Image source: https://www.flickr.com/photos/vasile23/

Page 16: Swisstrains

Vectors

Page 17: Swisstrains

Vectors

Page 18: Swisstrains

Vectors

Page 19: Swisstrains

Vectors

Page 20: Swisstrains

Open data ?

Timetables

Page 21: Swisstrains

Open data ?

NOT

Timetables

Page 22: Swisstrains

Text: populate link, vehicle

vehicle

vehicle_idname

link

many-many

vehicle_idstation_iddeparture

stops

stations

vehicles

Page 23: Swisstrains

Text: vehicle-link-station

station

station_idname

vehicle

vehicle_idname

link

many-many

vehicle_idstation_iddeparture

stops

stations vehicles

1’800 13’000150’000

Page 24: Swisstrains

swisstrains.ch 2007

Page 25: Swisstrains

Romanian Railways2007-2009

http://cfr.webgis.ro/

Page 26: Swisstrains

Improved Crawler 2007-2009

DEMO

Page 27: Swisstrains

2007-2009Improved Crawler

Page 28: Swisstrains

2007-2009Improved Crawler

Page 29: Swisstrains

2007-2009Improved Crawler

Page 30: Swisstrains

2007-2009Improved Crawler

Page 31: Swisstrains

2007-2009Improved Crawler

Page 32: Swisstrains

boat bus cablecar train tram

stations 265 18'797 549 1'810 477 21'898

vehicles 2'534 144'150 220'669 16'498 18'461 402'312

stops 8'013 2'433'815 447'806 177'520 417'510 3'484'664

Complete Swiss Transit DataSet2007-2009

Page 33: Swisstrains

Zürich Live TramsDEMO

2009

Page 34: Swisstrains

Glitches in 1st version

• (JS) Client mess

• UX Issues

• Open Source Tools

Page 35: Swisstrains

Client Mess

Page 36: Swisstrains

Client Mess

Page 37: Swisstrains

Too Slow

Page 38: Swisstrains

Too Slow

Page 39: Swisstrains

Open Source ?

Page 40: Swisstrains

Open Source ?

Page 41: Swisstrains

2007 2011

Textual DB crawler PHP, MySQL, Ruby, SQLite

Map Engine GMaps API v2, custom (messy) map helpers v3 API, geometry library

Map layers Own generated polylines, points Fusion Tables

JS Engine Mess :) No 3rd party library More structured, ordered + jQuery

UX, page speed, look’n’feel OK-ish (in the beginning) IT ROCKS BIG TIME !

Graphics DB tools Geomedia + swisstopo layers QGIS, OpenLayers, GMaps, GEarth, etc

DBs integration tools FME, ODBC, MS Access :) Ruby, GDAL

Versioning Power of CTRL-Z Git - master/dev/sbb/cfr

Changes Roundup

Page 42: Swisstrains

2007 2011

Textual DB crawler PHP, MySQL, Ruby, SQLite

Map Engine GMaps API v2, custom (messy) map helpers v3 API, geometry library

Map layers Own generated polylines, points Fusion Tables

JS Engine Mess :) No 3rd party library More structured, ordered + jQuery

UX, page speed, look’n’feel OK-ish (in the beginning) IT ROCKS BIG TIME !

Graphics DB tools Geomedia + swisstopo layers QGIS, OpenLayers, GMaps, GEarth, etc

DBs integration tools FME, ODBC, MS Access :) Ruby, GDAL

Versioning Power of CTRL-Z Git - master/dev/sbb/cfr

Changes Roundup

Page 43: Swisstrains

Lausanne 2011DEMO

http://simcity.vasile.ch/lausanne/

Page 44: Swisstrains

Lausanne 2011DEMO

http://simcity.vasile.ch/lausanne/

Page 45: Swisstrains

Lausanne 2011DEMO

http://simcity.vasile.ch/lausanne/

Page 46: Swisstrains

Break 2012

Images source: https://www.flickr.com/photos/vasile23/

Page 47: Swisstrains

Break 2012

Images source: https://www.flickr.com/photos/vasile23/

Page 48: Swisstrains

Break 2012

Images source: https://www.flickr.com/photos/vasile23/

Page 49: Swisstrains

Scale Model Train DEMO

2013

http://goo.gl/d3iRbF

Page 50: Swisstrains

Scale Model Train DEMO

2013

http://goo.gl/d3iRbF

Page 51: Swisstrains

GTFS plugin DEMO

2014

http://maps.vasile.ch/sfmta/

Page 52: Swisstrains

Image source: http://hotrainsectionlayouts.wordpress.com/page/6/

Passion (Obsession) 80s - today

Page 53: Swisstrains

Image source: http://hotrainsectionlayouts.wordpress.com/page/6/

Passion (Obsession) 80s - today

Page 54: Swisstrains

Image source: http://hotrainsectionlayouts.wordpress.com/page/6/

Passion (Obsession) 80s - today

Image source: Swisstopo - https://map.geo.admin.ch/

Page 55: Swisstrains

Image source: http://hotrainsectionlayouts.wordpress.com/page/6/

Passion (Obsession) 80s - today

Image source: Swisstopo - https://map.geo.admin.ch/

Page 56: Swisstrains

2015 ?

• depends :)

• improvements

• OpenGL, native

• Github contributors

Page 57: Swisstrains

Thank you !

• @vasile23

• http://www.vasile.ch

• Q & A