SlideShare a Scribd company logo
1 of 109
Download to read offline
Building Location-Aware Apps
with Open Source & Open Data
#openmaps
Matthew Smollinger
@mattsmollinger
Chuck Greb
@ecgreb
SXSW Interactive | 14 March 2015
Mapzen is an open source mapping lab
building and supporting open data and
software to promote a healthy mapping
ecosystem.
Skaffl is an EdTech company that
specializes in mobile solutions for the K-12
market.
start where you are
Part 1: Overview
⇢ Location-aware apps
⇢ Open source and open data
Part 2: Maps
⇢ Raster tiles
⇢ Vector tiles
Part 3: Geolocation, Search & Routing
⇢ Location services
⇢ Geocoding
⇢ Navigation
Part 4: Beacons & BLE
⇢ Monitoring and ranging
⇢ Indoor positioning
Agenda
#openmaps
Part 1:
Overview
Building Location-Aware Apps
with Open Source & Open Data
#openmaps
3 kinds of location-aware apps
⇢ Mapping applications
⇢ Location-based apps
⇢ Apps with location-aware features
Location-Aware Apps
Mapping applications
Location-based apps
Wearable integration
Apps with location-aware features
Common features
⇢ Maps
⇢ Geolocation
⇢ Search
⇢ Navigation
Location-Aware Apps
Building Location-Aware Apps
with Open Source & Open Data
Code
Open Source
Philosophy
Open Source
License
Open Source
Community
Open Source
Advantages
⇢ Transparency
⇢ Flexibility
⇢ Compatibility
⇢ Free!
Location-Aware Apps
Open source is not free like beer
Open Source
Open source is free like a puppy
Open Source
Building Location-Aware Apps
with Open Source & Open Data
Availability & Access
Open Data
Reuse & Redistribution
Open Data
Universal Participation
Open Data
Open Knowledge Foundation
https://okfn.org/
Open Data
OpenStreetMap (OSM)
⇢ Crowdsourced & public data
⇢ Local knowledge
⇢ Attribution
⇢ Share-alike
Open Data
#openmaps
Part 2:
Maps
Datasource
Maps
Tiles
Maps
Raster Vector
256 x 256 pixels
Maps
Zoom level 0:
1 tile for the world
Maps
Zoom level 1:
4 tiles for the world
Maps
Zoom level 2:
16 tiles for the world
Maps
# of tiles = 2z
x 2z
Maps
http://tile.openstreetmap.org/8/58/105.png
http://tile.openstreetmap.org/14/3743/6745.png
http://tile.openstreetmap.org/8/58/105.png
http://tile.openstreetmap.org/14/3743/6745.png
http://tile.openstreetmap.org/8/58/105.png
http://tile.openstreetmap.org/14/3743/6745.png
http://tile.openstreetmap.org/8/58/105.png
http://tile.openstreetmap.org/14/3743/6745.png
http://tile.openstreetmap.org/8/58/105.png
http://tile.openstreetmap.org/14/3743/6745.png
Layers & Overlay
Maps
http://wiki.gis.com/wiki/index.php/Overlay
Maps
Style
Why open source maps?
⇢ Cost
⇢ Customization
⇢ Privacy & security
Maps
osmdroid
#openmaps
osmdroid
⇢ Android only
⇢ Raster tiles
⇢ Started in 2008
⇢ Based on Google Maps API v1
⇢ Online and offline tile sources
⇢ Icons, tracking, and shapes
Maps
Mapbox
#openmaps
Mapbox
⇢ iOS & Android SDKs
⇢ Raster & vector tiles
⇢ Simple integration with Mapbox tile server
⇢ Alternate tile servers also supported
Maps
OpenScienceMap
#openmaps
OpenScienceMap
⇢ Universität Bremen
⇢ Pure vector maps
⇢ Native rendering engine
⇢ Java wrapper
⇢ Objective-C translation
Maps
Tangram ES
#openmaps
Tangram ES
⇢ Embedded systems version of Tangram for web
⇢ Native C++ rendering library
⇢ iOS, Android, and Raspberry Pi
⇢ EARLY work in progress!
Maps
#openmaps
Demo:
Maps
#openmaps
Part 3:
Geolocation, Search & Routing
Geolocation
#openmaps
Location Services
Geolocation, Search & Routing
Location Providers
⇢ GPS
⇢ Wi-Fi
⇢ Cell network
⇢ Passive
⇢ Sensors
⇢ BLE
Geolocation, Search & Routing
https://developers.google.com/events/io/sessions/325337477
Location Providers
⇢ GPS
⇢ Wi-Fi
⇢ Cell network
⇢ Passive
⇢ Sensors
Geolocation, Search & Routing
Fused Location Provider (Android) &
CoreLocation (iOS)
One interface to rule them all.
X
#openmaps
LOSTLocation Open Source TrackerLocation Open Source Tracker
Not all those who wander are lost.
― J.R.R. Tolkien, The Fellowship of the Ring
LOST talks directly to the
LocationManager
LOST
Optimizations
⇢ Frequency
⇢ Accuracy
⇢ Battery Life
LOST
Search
#openmaps
Geocoding:
Real world address -> Lat/Lng
Geolocation, Search & Routing
Reverse Geocoding:
Lat/Lng -> Real world address
Geolocation, Search & Routing
Geographic Search Engine
Pelias
Pelias
#openmaps
Pelias is a modular open-source geocoder built on top of
ElasticSearch for fast geocoding.
Pelias
/suggest
The suggest endpoint provides a super-fast autocomplete.
This API can be used to quickly find location names which
BEGIN with the input text.
http://pelias.mapzen.com/suggest?input=big%20ben&lat=51.5&lon=-0.06
Pelias
/search
The search endpoint provides a full-text search. It will try to
account for spelling mistakes and will search for your input at
any position in the location name.
http://pelias.mapzen.com/search?input=shoreditch&lat=51.5&lon=-0.06
Pelias
/reverse
The reverse endpoint returns the nearest locations to your
input lat/lon.
http://pelias.mapzen.com/reverse?lat=51.5&lon=-0.06
Pelias
Routing
#openmaps
Turn-By-Turn Navigation
Geolocation, Search & Routing
Public Transit
Geolocation, Search & Routing
Open Source Routing Machine (OSRM)
#openmaps
OSRM
#openmaps
Demo:
Geolocation, Search & Routing
#openmaps
Part 4:
Beacons & BLE
Beacons are awesome!
⇢ How they work
⇢ Cool stuff you can do
⇢ Products and frameworks
⇢ Examples
Beacons & BLE
A (quick) Guide to BT4
⇢ Basically three protocols in one
⇢ Bluetooth Low Energy
⇢ Operates in Two modes - Advertise and Connect
⇢ Only advertise is required - connect support is
optional
Beacons
⇢ Beacons implement advertise only
⇢ Transmit at regular intervals
⇢ Simplification of the BLE implementation
⇢ Replaces MAC address with UUID
⇢ Major number is for grouping
⇢ Minor number is for individualization
Indoor Location
⇢ Several different ways to accomplish
⇢ Wifi Triangulation
⇢ Ultrasonic Location
⇢ BLE Triangulation
⇢ Wifi is lackluster for triangulation
⇢ Ultrasonic need custom hardware
⇢ BLE range is poor compared to wifi or ultrasound
Open Source Indoor Location
⇢ Currently in very early discussions in OSM
⇢ A few frameworks / attempts are being made:
⬝ Redpin
⬝ Cricket from MIT
⬝ iLocate
⬝ indoor.io
⇢ Needs more time to bake
⇢ In the mean time...
#openmaps
Demo:
Beacons & BLE
Thanks!
#openmaps
Matthew Smollinger
@mattsmollinger
Chuck Greb
@ecgreb
http://sxsw.feedogo.com/fdbk.do?sid=IAP31861

More Related Content

Similar to Bu

Open GeoData, Open GeoTools: An Introduction
Open GeoData, Open GeoTools: An IntroductionOpen GeoData, Open GeoTools: An Introduction
Open GeoData, Open GeoTools: An IntroductionRichard Cantwell
 
How I built the demo's
How I built the demo'sHow I built the demo's
How I built the demo'sGlenn Jones
 
O'Reilly WebCast - Trends And Technologies In Where2.0
O'Reilly WebCast - Trends And Technologies In Where2.0O'Reilly WebCast - Trends And Technologies In Where2.0
O'Reilly WebCast - Trends And Technologies In Where2.0Andrew Turner
 
Volunteered Geographic Information and OpenStreetMap
Volunteered Geographic Information and OpenStreetMapVolunteered Geographic Information and OpenStreetMap
Volunteered Geographic Information and OpenStreetMapchippy
 
Where20 2008 Ruby Tutorial
Where20 2008 Ruby TutorialWhere20 2008 Ruby Tutorial
Where20 2008 Ruby TutorialShoaib Burq
 
PHP and Platform Independance in the Cloud
PHP and Platform Independance in the CloudPHP and Platform Independance in the Cloud
PHP and Platform Independance in the CloudZendCon
 
NOSQL Now! Presentation, August 24, 2011: Graph Databases: Connecting the Dot...
NOSQL Now! Presentation, August 24, 2011: Graph Databases: Connecting the Dot...NOSQL Now! Presentation, August 24, 2011: Graph Databases: Connecting the Dot...
NOSQL Now! Presentation, August 24, 2011: Graph Databases: Connecting the Dot...InfiniteGraph
 
MapQuest: How OSM Benefits & Vice Versa
MapQuest: How OSM Benefits & Vice VersaMapQuest: How OSM Benefits & Vice Versa
MapQuest: How OSM Benefits & Vice VersaRandy Meech
 
Experiments in Data Portability 2
Experiments in Data Portability 2Experiments in Data Portability 2
Experiments in Data Portability 2Glenn Jones
 
Training Series - Build A Routing Web Application With OpenStreetMap, Neo4j, ...
Training Series - Build A Routing Web Application With OpenStreetMap, Neo4j, ...Training Series - Build A Routing Web Application With OpenStreetMap, Neo4j, ...
Training Series - Build A Routing Web Application With OpenStreetMap, Neo4j, ...Neo4j
 
Towards Geospatial Architectures of Participation
Towards Geospatial Architectures of ParticipationTowards Geospatial Architectures of Participation
Towards Geospatial Architectures of Participationcholmes
 
NSGIC 2011 Presentation on geo open source
NSGIC 2011 Presentation on geo open sourceNSGIC 2011 Presentation on geo open source
NSGIC 2011 Presentation on geo open sourceMichael Terner
 
Drupal and the GeoSpatial Web
Drupal and the GeoSpatial WebDrupal and the GeoSpatial Web
Drupal and the GeoSpatial WebAndrew Turner
 
The DiSo Project and the Open Web
The DiSo Project and the Open WebThe DiSo Project and the Open Web
The DiSo Project and the Open WebChris Messina
 
Philippine Geospatial Forum Presentation 20130311
Philippine Geospatial Forum Presentation 20130311Philippine Geospatial Forum Presentation 20130311
Philippine Geospatial Forum Presentation 20130311esambale
 
The Gorbals in Relief: Experiments in OpenStreetMap and Architectural Practic...
The Gorbals in Relief: Experiments in OpenStreetMap and Architectural Practic...The Gorbals in Relief: Experiments in OpenStreetMap and Architectural Practic...
The Gorbals in Relief: Experiments in OpenStreetMap and Architectural Practic...duncanbain
 
Linked Data and Search: Thomas Steiner (Google Inc, Germany)
Linked Data and Search:  Thomas Steiner (Google Inc, Germany)Linked Data and Search:  Thomas Steiner (Google Inc, Germany)
Linked Data and Search: Thomas Steiner (Google Inc, Germany)FIA2010
 
Open Maps (Or Close Enough?)
Open Maps (Or Close Enough?)Open Maps (Or Close Enough?)
Open Maps (Or Close Enough?)Pamela Fox
 
apidays LIVE Australia 2021 - Tracing across your distributed process boundar...
apidays LIVE Australia 2021 - Tracing across your distributed process boundar...apidays LIVE Australia 2021 - Tracing across your distributed process boundar...
apidays LIVE Australia 2021 - Tracing across your distributed process boundar...apidays
 

Similar to Bu (20)

Open GeoData, Open GeoTools: An Introduction
Open GeoData, Open GeoTools: An IntroductionOpen GeoData, Open GeoTools: An Introduction
Open GeoData, Open GeoTools: An Introduction
 
How I built the demo's
How I built the demo'sHow I built the demo's
How I built the demo's
 
O'Reilly WebCast - Trends And Technologies In Where2.0
O'Reilly WebCast - Trends And Technologies In Where2.0O'Reilly WebCast - Trends And Technologies In Where2.0
O'Reilly WebCast - Trends And Technologies In Where2.0
 
Volunteered Geographic Information and OpenStreetMap
Volunteered Geographic Information and OpenStreetMapVolunteered Geographic Information and OpenStreetMap
Volunteered Geographic Information and OpenStreetMap
 
Where20 2008 Ruby Tutorial
Where20 2008 Ruby TutorialWhere20 2008 Ruby Tutorial
Where20 2008 Ruby Tutorial
 
PHP and Platform Independance in the Cloud
PHP and Platform Independance in the CloudPHP and Platform Independance in the Cloud
PHP and Platform Independance in the Cloud
 
NOSQL Now! Presentation, August 24, 2011: Graph Databases: Connecting the Dot...
NOSQL Now! Presentation, August 24, 2011: Graph Databases: Connecting the Dot...NOSQL Now! Presentation, August 24, 2011: Graph Databases: Connecting the Dot...
NOSQL Now! Presentation, August 24, 2011: Graph Databases: Connecting the Dot...
 
MapQuest: How OSM Benefits & Vice Versa
MapQuest: How OSM Benefits & Vice VersaMapQuest: How OSM Benefits & Vice Versa
MapQuest: How OSM Benefits & Vice Versa
 
Experiments in Data Portability 2
Experiments in Data Portability 2Experiments in Data Portability 2
Experiments in Data Portability 2
 
Training Series - Build A Routing Web Application With OpenStreetMap, Neo4j, ...
Training Series - Build A Routing Web Application With OpenStreetMap, Neo4j, ...Training Series - Build A Routing Web Application With OpenStreetMap, Neo4j, ...
Training Series - Build A Routing Web Application With OpenStreetMap, Neo4j, ...
 
Towards Geospatial Architectures of Participation
Towards Geospatial Architectures of ParticipationTowards Geospatial Architectures of Participation
Towards Geospatial Architectures of Participation
 
NSGIC 2011 Presentation on geo open source
NSGIC 2011 Presentation on geo open sourceNSGIC 2011 Presentation on geo open source
NSGIC 2011 Presentation on geo open source
 
Drupal and the GeoSpatial Web
Drupal and the GeoSpatial WebDrupal and the GeoSpatial Web
Drupal and the GeoSpatial Web
 
The DiSo Project and the Open Web
The DiSo Project and the Open WebThe DiSo Project and the Open Web
The DiSo Project and the Open Web
 
Philippine Geospatial Forum Presentation 20130311
Philippine Geospatial Forum Presentation 20130311Philippine Geospatial Forum Presentation 20130311
Philippine Geospatial Forum Presentation 20130311
 
LUMIA APP LAB #16: HERE APPLICATION LAUNCHERS
LUMIA APP LAB #16: HERE APPLICATION LAUNCHERSLUMIA APP LAB #16: HERE APPLICATION LAUNCHERS
LUMIA APP LAB #16: HERE APPLICATION LAUNCHERS
 
The Gorbals in Relief: Experiments in OpenStreetMap and Architectural Practic...
The Gorbals in Relief: Experiments in OpenStreetMap and Architectural Practic...The Gorbals in Relief: Experiments in OpenStreetMap and Architectural Practic...
The Gorbals in Relief: Experiments in OpenStreetMap and Architectural Practic...
 
Linked Data and Search: Thomas Steiner (Google Inc, Germany)
Linked Data and Search:  Thomas Steiner (Google Inc, Germany)Linked Data and Search:  Thomas Steiner (Google Inc, Germany)
Linked Data and Search: Thomas Steiner (Google Inc, Germany)
 
Open Maps (Or Close Enough?)
Open Maps (Or Close Enough?)Open Maps (Or Close Enough?)
Open Maps (Or Close Enough?)
 
apidays LIVE Australia 2021 - Tracing across your distributed process boundar...
apidays LIVE Australia 2021 - Tracing across your distributed process boundar...apidays LIVE Australia 2021 - Tracing across your distributed process boundar...
apidays LIVE Australia 2021 - Tracing across your distributed process boundar...
 

More from Chuck Greb

Testable Android Architecture
Testable Android ArchitectureTestable Android Architecture
Testable Android ArchitectureChuck Greb
 
Building Location-Aware Apps with Open Source & Open Data (SXSW 2015)
Building Location-Aware Apps with Open Source & Open Data (SXSW 2015)Building Location-Aware Apps with Open Source & Open Data (SXSW 2015)
Building Location-Aware Apps with Open Source & Open Data (SXSW 2015)Chuck Greb
 
What's the deal with Android maps?
What's the deal with Android maps?What's the deal with Android maps?
What's the deal with Android maps?Chuck Greb
 
Data to Go: Mobile API Design (SXSW)
Data to Go: Mobile API Design (SXSW)Data to Go: Mobile API Design (SXSW)
Data to Go: Mobile API Design (SXSW)Chuck Greb
 
AnDevCon 2013 Roundup
AnDevCon 2013 RoundupAnDevCon 2013 Roundup
AnDevCon 2013 RoundupChuck Greb
 
Data to Go: Mobile API Design
Data to Go: Mobile API DesignData to Go: Mobile API Design
Data to Go: Mobile API DesignChuck Greb
 
Data To Go: Mobile API Design (Lightning Talk)
Data To Go: Mobile API Design (Lightning Talk)Data To Go: Mobile API Design (Lightning Talk)
Data To Go: Mobile API Design (Lightning Talk)Chuck Greb
 
Google Charts for native Android apps
Google Charts for native Android appsGoogle Charts for native Android apps
Google Charts for native Android appsChuck Greb
 
HowAboutWe... Build an Android App
HowAboutWe... Build an Android AppHowAboutWe... Build an Android App
HowAboutWe... Build an Android AppChuck Greb
 

More from Chuck Greb (11)

Testable Android Architecture
Testable Android ArchitectureTestable Android Architecture
Testable Android Architecture
 
Building Location-Aware Apps with Open Source & Open Data (SXSW 2015)
Building Location-Aware Apps with Open Source & Open Data (SXSW 2015)Building Location-Aware Apps with Open Source & Open Data (SXSW 2015)
Building Location-Aware Apps with Open Source & Open Data (SXSW 2015)
 
What's the deal with Android maps?
What's the deal with Android maps?What's the deal with Android maps?
What's the deal with Android maps?
 
Notifunk
NotifunkNotifunk
Notifunk
 
Data to Go: Mobile API Design (SXSW)
Data to Go: Mobile API Design (SXSW)Data to Go: Mobile API Design (SXSW)
Data to Go: Mobile API Design (SXSW)
 
AnDevCon 2013 Roundup
AnDevCon 2013 RoundupAnDevCon 2013 Roundup
AnDevCon 2013 Roundup
 
Data to Go: Mobile API Design
Data to Go: Mobile API DesignData to Go: Mobile API Design
Data to Go: Mobile API Design
 
Android TDD
Android TDDAndroid TDD
Android TDD
 
Data To Go: Mobile API Design (Lightning Talk)
Data To Go: Mobile API Design (Lightning Talk)Data To Go: Mobile API Design (Lightning Talk)
Data To Go: Mobile API Design (Lightning Talk)
 
Google Charts for native Android apps
Google Charts for native Android appsGoogle Charts for native Android apps
Google Charts for native Android apps
 
HowAboutWe... Build an Android App
HowAboutWe... Build an Android AppHowAboutWe... Build an Android App
HowAboutWe... Build an Android App
 

Bu