SlideShare a Scribd company logo
使用 OSM 科技打造 APP 的經驗分享
What I’ve learned from building an
app with OSM technologies
使用 OSM 科技打造 APP 的經驗分享
What I’ve learned from building an
app with OSM technologies
Buganini Q
buganini@where.im
September 10, 2017
Where.IM
https://where.im
Features
●
Location sharing
– On / Off
– Forge location
●
Map
– Google Maps
– OpenStreetMap
●
Search
– Google Places API
– OpenStreetMap
●
Messenger
●
Marker
●
Geofence
●
Map layer
●
Routing / Navigation
●
Ads
Features
●
Location sharing
– On / Off
– Forge location
●
Map
– Google Maps
– OpenStreetMap
●
Search
– Google Places API
– OpenStreetMap
●
Messenger
●
Marker
●
Geofence
●
Map layer
●
Routing / Navigation
●
Ads
Features
●
Location sharing
– On / Off
– Forge location
●
Map
– Google Maps
– OpenStreetMap
●
Search
– Google Places API
– OpenStreetMap
●
Messenger
●
Marker
●
Geofence
●
Map layer
●
Routing / Navigation
●
Ads
Features
●
Location sharing
– On / Off
– Forge location
●
Map
– Google Maps
– OpenStreetMap
●
Search
– Google Places API
– OpenStreetMap
●
Messenger
●
Marker
●
Geofence
●
Map layer
●
Routing / Navigation
●
Ads
Features
●
Location sharing
– On / Off
– Forge location
●
Map
– Google Maps
– OpenStreetMap
●
Search
– Google Places API
– OpenStreetMap
●
Messenger
●
Marker
●
Geofence
●
Map layer
●
Routing / Navigation
●
Ads
Features
●
Location sharing
– On / Off
– Forge location
●
Map
– Google Maps
– OpenStreetMap
●
Search
– Google Places API
– OpenStreetMap
●
Messenger
●
Marker
●
Geofence
●
Map layer
●
Routing / Navigation
●
Ads
Features
●
Location sharing
– On / Off
– Forge location
●
Map
– Google Maps
– OpenStreetMap
●
Search
– Google Places API
– OpenStreetMap
●
Messenger
●
Marker
●
Geofence
●
Map layer
●
Routing / Navigation
●
Ads
Features
●
Location sharing
– On / Off
– Forge location
●
Map
– Google Maps
– OpenStreetMap
●
Search
– Google Places API
– OpenStreetMap
●
Messenger
●
Marker
●
Geofence
●
Map layer
●
Routing / Navigation
●
Ads
Features
●
Location sharing
– On / Off
– Forge location
●
Map
– Google Maps
– OpenStreetMap
●
Search
– Google Places API
– OpenStreetMap
●
Messenger
●
Marker
●
Geofence
●
Map layer
●
Routing / Navigation
●
Ads
Features
●
Location sharing
– On / Off
– Forge location
●
Map
– Google Maps
– OpenStreetMap
●
Search
– Google Places API
– OpenStreetMap
●
Messenger
●
Marker
●
Geofence
●
Map layer
●
Routing / Navigation
●
Ads
Features
●
Location sharing
– On / Off
– Forge location
●
Map
– Google Maps
– OpenStreetMap
●
Search
– Google Places API
– OpenStreetMap
●
Messenger
●
Marker
●
Geofence
●
Map layer
●
Routing / Navigation
●
Ads
Features
●
Location sharing
– On / Off
– Forge location
●
Map
– Google Maps
– OpenStreetMap
●
Search
– Google Places API
– OpenStreetMap
●
Messenger
●
Marker
●
Geofence
●
Map layer
●
Routing / Navigation
●
Ads
Features
●
Location sharing
– On / Off
– Forge location
●
Map
– Google Maps
– OpenStreetMap
●
Search
– Google Places API
– OpenStreetMap
●
Messenger
●
Marker
●
Geofence
●
Map layer
●
Routing / Navigation
●
Ads
Features
●
Location sharing
– On / Off
– Forge location
●
Map
– Google Maps
– OpenStreetMap
●
Search
– Google Places API
– OpenStreetMap
●
Messenger
●
Marker
●
Geofence
●
Map layer
●
Routing / Navigation
●
Ads
Features
●
Location sharing
– On / Off
– Forge location
●
Map
– Google Maps
– OpenStreetMap
●
Search
– Google Places API
– OpenStreetMap
●
Messenger
●
Marker
●
Geofence
●
Map layer
●
Routing / Navigation
●
Ads
Features
●
Location sharing
– On / Off
– Forge location
●
Map
– Google Maps
– OpenStreetMap
●
Search
– Google Places API
– OpenStreetMap
●
Messenger
●
Marker
●
Geofence
●
Map layer
●
Routing / Navigation
●
Ads
Features
●
Location sharing
– On / Off
– Forge location
●
Map
– Google Maps
– OpenStreetMap
●
Search
– Google Places API
– OpenStreetMap
●
Messenger
●
Marker
●
Geofence
●
Map layer
●
Routing / Navigation
●
Ads
Features
●
Location sharing
– On / Off
– Forge location
●
Map
– Google Maps
– OpenStreetMap
●
Search
– Google Places API
– OpenStreetMap
●
Messenger
●
Marker
●
Geofence
●
Map layer
●
Routing / Navigation
●
Ads
Features
●
Location sharing
– On / Off
– Forge location
●
Map
– Google Maps
– OpenStreetMap
●
Search
– Google Places API
– OpenStreetMap
●
Messenger
●
Marker
●
Geofence
●
Map layer
●
Routing / Navigation
●
Ads
Features
●
Location sharing
– On / Off
– Forge location
●
Map
– Google Maps
– OpenStreetMap
●
Search
– Google Places API
– OpenStreetMap
●
Messenger
●
Marker
●
Geofence
●
Map layer
●
Routing / Navigation
●
Ads
Features
●
Location sharing
– On / Off
– Forge location
●
Map
– Google Maps
– OpenStreetMap
●
Search
– Google Places API
– OpenStreetMap
●
Messenger
●
Marker
●
Geofence
●
Map layer
●
Routing / Navigation
●
Ads
Features
●
Location sharing
– On / Off
– Forge location
●
Map
– Google Maps
– OpenStreetMap
●
Search
– Google Places API
– OpenStreetMap
●
Messenger
●
Marker
●
Geofence
●
Map layer
●
Routing / Navigation
●
Ads
Features
●
Location sharing
– On / Off
– Forge location
●
Map
– Google Maps
– OpenStreetMap
●
Search
– Google Places API
– OpenStreetMap
●
Messenger
●
Marker
●
Geofence
●
Map layer
●
Routing / Navigation
●
Ads
//TODO
Components related to map
●
Map
●
Search
●
Routing / Navigation
●
Ads Provider
Map
●
Map
●
Search
●
Routing / Navigation
●
Ads Provider
●
Cross platform
●
Android / iOS / Web
●
Customizable marker / shape
●
Icon / Color / Anchor / Rotation / Alpha / Z-Index
●
Clustering
●
Vector Map
●
Clickable POI
●
Continuous zoom level
●
Rendering experience
●
Rendering performance
●
Pricing
●
Offline
●
Indoor / Multi-level
●
Layer
●
GeoJSON / GeoPDF / Image
Search
●
Map
●
Search
●
Routing / Navigation
●
Ads Provider
●
License
●
Proximity search
●
i18n
●
Autocomplete
●
Results
●
Address lookup
●
Reverse geocoding
●
LatLng to address
●
Special keywords
●
Hotel => amenity=hotel
●
Vegetarian => diet:vegetarian=only|yes
●
Pricing
Routing / Navigation
●
Map
●
Search
●
Routing / Navigation
●
Ads Provider
●
License
●
Performance
●
Offline
●
Transport Mode / Routing Profile
●
Traffic awareness
●
Public transit
●
Turn restriction
●
Waypoint / Via Point
●
Isochrone
Ads Provider
●
Map
●
Search
●
Routing / Navigation
●
Ads Provider
●
License
●
Popularity
●
Fee
Let’s skip this today.
A Good Reference : Maps.me
●
Opensource, Apache license
– https://github.com/mapsme/omim
●
Cross platform
●
Offline vector map
●
Routing / navigation
– Works in offline mode
– Car / Bike / Pedestrian / Taxi
– Traffic-aware
●
With unknown data source
– https://github.com/mapsme/omim/issues/5122
●
Good rendering experience
●
Great rendering performance
●
Compact data size
– Taiwan 56MB
●
Map based ads
●
Telemetry (unclear)
●
Embedded SDK not available
– https://github.com/mapsme/omim/issues/5516
●
No indoor maps for now
– https://github.com/mapsme/omim/issues/3163
Another Reference: OsmAnd
●
Opensource, GPL
– https://github.com/osmandapp
●
Cross platform
●
Online / Offline vector map
●
Routing / navigation
– Works in offline mode
●
Fair rendering experience
– text flickering on zooming
●
Great rendering performance
●
(To be investigated)
Google Maps
●
Map
– Google Maps
– Mapsforge
– Mapbox
– MapQuest
– Jawg Maps
– Mapzen
●
Proprietary
●
Support iOS / Android / Web
●
Great performance
●
Vector map
●
Online only
●
Indoor / Multi-level
Mapsforge
●
Map
– Google Maps
– Mapsforge
– Mapbox
– MapQuest
– Jawg Maps
– Mapzen
●
Written in Java
●
No iOS/web support
●
Available since 2008
●
Vector map
●
Offline only
●
Fair performance
●
No host for production use
Mapbox
●
Map
– Google Maps
– Mapsforge
– Mapbox
– MapQuest
– Jawg Maps
– Mapzen
●
Support Android / iOS / Web
●
Mapbox Telemetry
●
Good performance
●
Online + Cache
●
Vector map
●
Customizable style
●
GeoJSON
●
No circle shape
●
Draw with polygon
●
https://github.com/mapbox/mapbox-gl-native/issues/2167
●
No z-index
●
Use layer instead
●
https://github.com/mapbox/mapbox-gl-native/issues/1728
●
No anchor/alpha setting for marker
MapQuest
●
Map
– Google Maps
– Mapsforge
– Mapbox
– MapQuest
– Jawg Maps
– Mapzen
●
Later on, powered by Mapbox �
●
More expensive than Mapbox �
Jawg Maps
●
Map
– Google Maps
– Mapsforge
– Mapbox
– MapQuest
– Jawg Maps
– Mapzen
●
No free tier for commercial use
●
Commercial use starts from 99.99 €/month
●
Vector map
●
Indoor / Multi-level
Mapzen
●
Map
– Google Maps
– Mapsforge
– Mapbox
– MapQuest
– Jawg Maps
– Mapzen
●
Support Android / iOS / Web
●
Vector map
●
Online only, for now
Google Places API
●
Search
– Google Places API
– Nominatim
– Mapbox
– MapQuest
– Jawg Maps
– Mapzen
●
Everything is good but
●
It’s only for Google Maps
Nominatim
●
Search
– Google Places API
– Nominatim
– Mapbox
– MapQuest
– Jawg Maps
– Mapzen
●
Official tool from OSM
●
Generate synthetic addresses
●
Special keywords <=> OSM tags mapping
●
Reverse geocoding
●
Address lookup
●
Supplement from wikidata
●
Not really suitable for direct use
●
(Indirectly) Used by
●
OpenStreetMap.org
●
MapQuest
●
Mapzen
Mapbox
●
Search
– Google Places API
– Nominatim
– Mapbox
– MapQuest
– Jawg Maps
– Mapzen
●
Multiple sources including OSM
●
Poor i18n
MapQuest
●
Search
– Google Places API
– Nominatim
– Mapbox
– MapQuest
– Jawg Maps
– Mapzen
●
Seems no fulltext search
●
Cound’t find Taipei 101 �
Jawg Maps
●
Search
– Google Places API
– Nominatim
– Mapbox
– MapQuest
– Jawg Maps
– Mapzen
●
Poor i18n
Mapzen
●
Search
– Google Places API
– Nominatim
– Mapbox
– MapQuest
– Jawg Maps
– Mapzen
●
Fair i18n
●
IMO the best choice
Google Maps
●
Routing / Navigation
– Google Maps
– GraphHopper
– Valhalla
– OSRM
●
Traffic Data System
– GTFS
– OpenTraffic
●
Only for Google Maps
●
Online API
●
Public transit
●
Traffic aware
GraphHopper
●
Routing / Navigation
– Google Maps
– GraphHopper
– Valhalla
– OSRM
●
Traffic Data System
– GTFS
– OpenTraffic
●
Used by
●
Mapsforge (offline)
●
GraphHopper (online API)
●
Transport mode
●
Versatile
●
Traffic aware
●
GTFS
●
Multiple sources
●
Public transit
●
GTFS based
●
No turn restriction support yet
●
Waypoint
●
Isochrone
Valhalla
●
Routing / Navigation
– Google Maps
– GraphHopper
– Valhalla
– OSRM
●
Traffic Data System
– GTFS
– OpenTraffic
●
Sponsored by Mapzen
●
Used by
●
Mapzen (online API)
●
Transport mode
●
Versatile
●
Traffic aware
●
OpenTraffic
●
Public transit
●
Turn restriction
●
Waypoint
●
Isochrone
OSRM
●
Routing / Navigation
– Google Maps
– GraphHopper
– Valhalla
– OSRM
●
Traffic Data System
– GTFS
– OpenTraffic
●
Open Source Routing Machine
●
Used by
●
Maps.me (offline)
●
Jawg Maps (online API)
●
Geofabrik (online API)
●
Cross Platform
●
Transport Mode
●
Car / Bike / Foot
●
Turn restriction
●
Waypoint
●
Traffic aware
●
Isochrone
GTFS
●
Routing / Navigation
– Google Maps
– GraphHopper
– Valhalla
– OSRM
●
Traffic Data System
– GTFS
– OpenTraffic
●
General Transit Feed Specification
●
Is just a format
●
No unified source/platform
OpenTraffic
●
Routing / Navigation
– Google Maps
– GraphHopper
– Valhalla
– OSRM
●
Traffic Data System
– GTFS
– OpenTraffic
●
OSM based
●
Consistent way id
●
Global data platform
●
A nonprofit organization
●
Founding Members and Partners
(OpenTripPlanner)
What I’ve learned from building an app with OSM technologies

More Related Content

PPTX
Tourism BD
Nazmul Islam Rasel
 
PDF
A Practical Introduction to GeoJSON
Valeri Karpov
 
PDF
Ben Dowling - Geomium - Building a Geo App - Geomob Feb 2011
GeomobLDN
 
PDF
Services, Data and Architectures for Building a Geo App
Ben Dowling
 
ODP
Accessible Bath Training
Leigh Dodds
 
PPTX
Self driving and driver relaxing vehicle
Gary Mendonca
 
PDF
Gps mapper webinar
gjhassin
 
ODP
OSM vs Commercial providers
Glenn Plas
 
Tourism BD
Nazmul Islam Rasel
 
A Practical Introduction to GeoJSON
Valeri Karpov
 
Ben Dowling - Geomium - Building a Geo App - Geomob Feb 2011
GeomobLDN
 
Services, Data and Architectures for Building a Geo App
Ben Dowling
 
Accessible Bath Training
Leigh Dodds
 
Self driving and driver relaxing vehicle
Gary Mendonca
 
Gps mapper webinar
gjhassin
 
OSM vs Commercial providers
Glenn Plas
 

Similar to What I’ve learned from building an app with OSM technologies (20)

PPTX
Using Location in Games
Ralph Barbagallo
 
PPTX
Geo-ing Global TeachMeet BETT 2011
Dom Breadmore
 
ODP
Routing plugin for JOSM
Juangui Jordán
 
PDF
Location-Based Services on Android
Jomar Tigcal
 
PPTX
The essentials for life at cogs
COGS Presentations
 
ODP
Montrajet.ca : une solution multimodale de covoiturage et de planification d'...
VisionGEOMATIQUE2014
 
ODP
Spree Travel: Open Travel Marketplace Framework
Miguel Sancho
 
PPTX
Product Management Final Presentation - RunKnown app
Harriet May
 
KEY
Google Maps bakes the crust, you add the toppings
Nael El Shawwa
 
PPTX
Google ppt
AniketSaha23
 
PDF
Replace Printed Maps With a Digital Version of Your Venue!
gjhassin
 
PDF
Gps mapper slides
gjhassin
 
PDF
iOSNeXT.ro - Scout mapping & navigation SDK for iOS developers - Zoltan Korosi
Paul Ardeleanu
 
KEY
Wheelmap vs Mapability
namerpent
 
PPTX
Optimize map renderer !
Aurore Jard
 
PDF
Mobile Landing Pages Talk
marcwan
 
PDF
Mapping on iOS and Android, Wally McClure
Xamarin
 
PDF
Visualize Your Data
Kyung Yoo
 
PPT
PersonaFlag: SparxUp Awards 2010 Pitch
sigitpurnomo
 
PDF
зиновьев алексей Droid con(16_9) android geo apps_ in soviet russia latitude ...
apps4allru
 
Using Location in Games
Ralph Barbagallo
 
Geo-ing Global TeachMeet BETT 2011
Dom Breadmore
 
Routing plugin for JOSM
Juangui Jordán
 
Location-Based Services on Android
Jomar Tigcal
 
The essentials for life at cogs
COGS Presentations
 
Montrajet.ca : une solution multimodale de covoiturage et de planification d'...
VisionGEOMATIQUE2014
 
Spree Travel: Open Travel Marketplace Framework
Miguel Sancho
 
Product Management Final Presentation - RunKnown app
Harriet May
 
Google Maps bakes the crust, you add the toppings
Nael El Shawwa
 
Google ppt
AniketSaha23
 
Replace Printed Maps With a Digital Version of Your Venue!
gjhassin
 
Gps mapper slides
gjhassin
 
iOSNeXT.ro - Scout mapping & navigation SDK for iOS developers - Zoltan Korosi
Paul Ardeleanu
 
Wheelmap vs Mapability
namerpent
 
Optimize map renderer !
Aurore Jard
 
Mobile Landing Pages Talk
marcwan
 
Mapping on iOS and Android, Wally McClure
Xamarin
 
Visualize Your Data
Kyung Yoo
 
PersonaFlag: SparxUp Awards 2010 Pitch
sigitpurnomo
 
зиновьев алексей Droid con(16_9) android geo apps_ in soviet russia latitude ...
apps4allru
 
Ad

Recently uploaded (20)

PDF
Software Development Methodologies in 2025
KodekX
 
PDF
AI-Cloud-Business-Management-Platforms-The-Key-to-Efficiency-Growth.pdf
Artjoker Software Development Company
 
PPTX
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
 
PDF
The Future of Mobile Is Context-Aware—Are You Ready?
iProgrammer Solutions Private Limited
 
PDF
How-Cloud-Computing-Impacts-Businesses-in-2025-and-Beyond.pdf
Artjoker Software Development Company
 
PDF
How Open Source Changed My Career by abdelrahman ismail
a0m0rajab1
 
PDF
The Evolution of KM Roles (Presented at Knowledge Summit Dublin 2025)
Enterprise Knowledge
 
PDF
Event Presentation Google Cloud Next Extended 2025
minhtrietgect
 
PDF
Doc9.....................................
SofiaCollazos
 
PDF
Unlocking the Future- AI Agents Meet Oracle Database 23ai - AIOUG Yatra 2025.pdf
Sandesh Rao
 
PDF
A Day in the Life of Location Data - Turning Where into How.pdf
Precisely
 
PDF
AI Unleashed - Shaping the Future -Starting Today - AIOUG Yatra 2025 - For Co...
Sandesh Rao
 
PDF
Security features in Dell, HP, and Lenovo PC systems: A research-based compar...
Principled Technologies
 
PDF
Oracle AI Vector Search- Getting Started and what's new in 2025- AIOUG Yatra ...
Sandesh Rao
 
PPTX
AI and Robotics for Human Well-being.pptx
JAYMIN SUTHAR
 
PPTX
The-Ethical-Hackers-Imperative-Safeguarding-the-Digital-Frontier.pptx
sujalchauhan1305
 
PDF
Research-Fundamentals-and-Topic-Development.pdf
ayesha butalia
 
PDF
Accelerating Oracle Database 23ai Troubleshooting with Oracle AHF Fleet Insig...
Sandesh Rao
 
PDF
Trying to figure out MCP by actually building an app from scratch with open s...
Julien SIMON
 
PDF
Automating ArcGIS Content Discovery with FME: A Real World Use Case
Safe Software
 
Software Development Methodologies in 2025
KodekX
 
AI-Cloud-Business-Management-Platforms-The-Key-to-Efficiency-Growth.pdf
Artjoker Software Development Company
 
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
 
The Future of Mobile Is Context-Aware—Are You Ready?
iProgrammer Solutions Private Limited
 
How-Cloud-Computing-Impacts-Businesses-in-2025-and-Beyond.pdf
Artjoker Software Development Company
 
How Open Source Changed My Career by abdelrahman ismail
a0m0rajab1
 
The Evolution of KM Roles (Presented at Knowledge Summit Dublin 2025)
Enterprise Knowledge
 
Event Presentation Google Cloud Next Extended 2025
minhtrietgect
 
Doc9.....................................
SofiaCollazos
 
Unlocking the Future- AI Agents Meet Oracle Database 23ai - AIOUG Yatra 2025.pdf
Sandesh Rao
 
A Day in the Life of Location Data - Turning Where into How.pdf
Precisely
 
AI Unleashed - Shaping the Future -Starting Today - AIOUG Yatra 2025 - For Co...
Sandesh Rao
 
Security features in Dell, HP, and Lenovo PC systems: A research-based compar...
Principled Technologies
 
Oracle AI Vector Search- Getting Started and what's new in 2025- AIOUG Yatra ...
Sandesh Rao
 
AI and Robotics for Human Well-being.pptx
JAYMIN SUTHAR
 
The-Ethical-Hackers-Imperative-Safeguarding-the-Digital-Frontier.pptx
sujalchauhan1305
 
Research-Fundamentals-and-Topic-Development.pdf
ayesha butalia
 
Accelerating Oracle Database 23ai Troubleshooting with Oracle AHF Fleet Insig...
Sandesh Rao
 
Trying to figure out MCP by actually building an app from scratch with open s...
Julien SIMON
 
Automating ArcGIS Content Discovery with FME: A Real World Use Case
Safe Software
 
Ad

What I’ve learned from building an app with OSM technologies

  • 1. 使用 OSM 科技打造 APP 的經驗分享 What I’ve learned from building an app with OSM technologies 使用 OSM 科技打造 APP 的經驗分享 What I’ve learned from building an app with OSM technologies Buganini Q [email protected] September 10, 2017
  • 3. Features ● Location sharing – On / Off – Forge location ● Map – Google Maps – OpenStreetMap ● Search – Google Places API – OpenStreetMap ● Messenger ● Marker ● Geofence ● Map layer ● Routing / Navigation ● Ads
  • 4. Features ● Location sharing – On / Off – Forge location ● Map – Google Maps – OpenStreetMap ● Search – Google Places API – OpenStreetMap ● Messenger ● Marker ● Geofence ● Map layer ● Routing / Navigation ● Ads
  • 5. Features ● Location sharing – On / Off – Forge location ● Map – Google Maps – OpenStreetMap ● Search – Google Places API – OpenStreetMap ● Messenger ● Marker ● Geofence ● Map layer ● Routing / Navigation ● Ads
  • 6. Features ● Location sharing – On / Off – Forge location ● Map – Google Maps – OpenStreetMap ● Search – Google Places API – OpenStreetMap ● Messenger ● Marker ● Geofence ● Map layer ● Routing / Navigation ● Ads
  • 7. Features ● Location sharing – On / Off – Forge location ● Map – Google Maps – OpenStreetMap ● Search – Google Places API – OpenStreetMap ● Messenger ● Marker ● Geofence ● Map layer ● Routing / Navigation ● Ads
  • 8. Features ● Location sharing – On / Off – Forge location ● Map – Google Maps – OpenStreetMap ● Search – Google Places API – OpenStreetMap ● Messenger ● Marker ● Geofence ● Map layer ● Routing / Navigation ● Ads
  • 9. Features ● Location sharing – On / Off – Forge location ● Map – Google Maps – OpenStreetMap ● Search – Google Places API – OpenStreetMap ● Messenger ● Marker ● Geofence ● Map layer ● Routing / Navigation ● Ads
  • 10. Features ● Location sharing – On / Off – Forge location ● Map – Google Maps – OpenStreetMap ● Search – Google Places API – OpenStreetMap ● Messenger ● Marker ● Geofence ● Map layer ● Routing / Navigation ● Ads
  • 11. Features ● Location sharing – On / Off – Forge location ● Map – Google Maps – OpenStreetMap ● Search – Google Places API – OpenStreetMap ● Messenger ● Marker ● Geofence ● Map layer ● Routing / Navigation ● Ads
  • 12. Features ● Location sharing – On / Off – Forge location ● Map – Google Maps – OpenStreetMap ● Search – Google Places API – OpenStreetMap ● Messenger ● Marker ● Geofence ● Map layer ● Routing / Navigation ● Ads
  • 13. Features ● Location sharing – On / Off – Forge location ● Map – Google Maps – OpenStreetMap ● Search – Google Places API – OpenStreetMap ● Messenger ● Marker ● Geofence ● Map layer ● Routing / Navigation ● Ads
  • 14. Features ● Location sharing – On / Off – Forge location ● Map – Google Maps – OpenStreetMap ● Search – Google Places API – OpenStreetMap ● Messenger ● Marker ● Geofence ● Map layer ● Routing / Navigation ● Ads
  • 15. Features ● Location sharing – On / Off – Forge location ● Map – Google Maps – OpenStreetMap ● Search – Google Places API – OpenStreetMap ● Messenger ● Marker ● Geofence ● Map layer ● Routing / Navigation ● Ads
  • 16. Features ● Location sharing – On / Off – Forge location ● Map – Google Maps – OpenStreetMap ● Search – Google Places API – OpenStreetMap ● Messenger ● Marker ● Geofence ● Map layer ● Routing / Navigation ● Ads
  • 17. Features ● Location sharing – On / Off – Forge location ● Map – Google Maps – OpenStreetMap ● Search – Google Places API – OpenStreetMap ● Messenger ● Marker ● Geofence ● Map layer ● Routing / Navigation ● Ads
  • 18. Features ● Location sharing – On / Off – Forge location ● Map – Google Maps – OpenStreetMap ● Search – Google Places API – OpenStreetMap ● Messenger ● Marker ● Geofence ● Map layer ● Routing / Navigation ● Ads
  • 19. Features ● Location sharing – On / Off – Forge location ● Map – Google Maps – OpenStreetMap ● Search – Google Places API – OpenStreetMap ● Messenger ● Marker ● Geofence ● Map layer ● Routing / Navigation ● Ads
  • 20. Features ● Location sharing – On / Off – Forge location ● Map – Google Maps – OpenStreetMap ● Search – Google Places API – OpenStreetMap ● Messenger ● Marker ● Geofence ● Map layer ● Routing / Navigation ● Ads
  • 21. Features ● Location sharing – On / Off – Forge location ● Map – Google Maps – OpenStreetMap ● Search – Google Places API – OpenStreetMap ● Messenger ● Marker ● Geofence ● Map layer ● Routing / Navigation ● Ads
  • 22. Features ● Location sharing – On / Off – Forge location ● Map – Google Maps – OpenStreetMap ● Search – Google Places API – OpenStreetMap ● Messenger ● Marker ● Geofence ● Map layer ● Routing / Navigation ● Ads
  • 23. Features ● Location sharing – On / Off – Forge location ● Map – Google Maps – OpenStreetMap ● Search – Google Places API – OpenStreetMap ● Messenger ● Marker ● Geofence ● Map layer ● Routing / Navigation ● Ads
  • 24. Features ● Location sharing – On / Off – Forge location ● Map – Google Maps – OpenStreetMap ● Search – Google Places API – OpenStreetMap ● Messenger ● Marker ● Geofence ● Map layer ● Routing / Navigation ● Ads
  • 25. Features ● Location sharing – On / Off – Forge location ● Map – Google Maps – OpenStreetMap ● Search – Google Places API – OpenStreetMap ● Messenger ● Marker ● Geofence ● Map layer ● Routing / Navigation ● Ads //TODO
  • 26. Components related to map ● Map ● Search ● Routing / Navigation ● Ads Provider
  • 27. Map ● Map ● Search ● Routing / Navigation ● Ads Provider ● Cross platform ● Android / iOS / Web ● Customizable marker / shape ● Icon / Color / Anchor / Rotation / Alpha / Z-Index ● Clustering ● Vector Map ● Clickable POI ● Continuous zoom level ● Rendering experience ● Rendering performance ● Pricing ● Offline ● Indoor / Multi-level ● Layer ● GeoJSON / GeoPDF / Image
  • 28. Search ● Map ● Search ● Routing / Navigation ● Ads Provider ● License ● Proximity search ● i18n ● Autocomplete ● Results ● Address lookup ● Reverse geocoding ● LatLng to address ● Special keywords ● Hotel => amenity=hotel ● Vegetarian => diet:vegetarian=only|yes ● Pricing
  • 29. Routing / Navigation ● Map ● Search ● Routing / Navigation ● Ads Provider ● License ● Performance ● Offline ● Transport Mode / Routing Profile ● Traffic awareness ● Public transit ● Turn restriction ● Waypoint / Via Point ● Isochrone
  • 30. Ads Provider ● Map ● Search ● Routing / Navigation ● Ads Provider ● License ● Popularity ● Fee Let’s skip this today.
  • 31. A Good Reference : Maps.me ● Opensource, Apache license – https://github.com/mapsme/omim ● Cross platform ● Offline vector map ● Routing / navigation – Works in offline mode – Car / Bike / Pedestrian / Taxi – Traffic-aware ● With unknown data source – https://github.com/mapsme/omim/issues/5122 ● Good rendering experience ● Great rendering performance ● Compact data size – Taiwan 56MB ● Map based ads ● Telemetry (unclear) ● Embedded SDK not available – https://github.com/mapsme/omim/issues/5516 ● No indoor maps for now – https://github.com/mapsme/omim/issues/3163
  • 32. Another Reference: OsmAnd ● Opensource, GPL – https://github.com/osmandapp ● Cross platform ● Online / Offline vector map ● Routing / navigation – Works in offline mode ● Fair rendering experience – text flickering on zooming ● Great rendering performance ● (To be investigated)
  • 33. Google Maps ● Map – Google Maps – Mapsforge – Mapbox – MapQuest – Jawg Maps – Mapzen ● Proprietary ● Support iOS / Android / Web ● Great performance ● Vector map ● Online only ● Indoor / Multi-level
  • 34. Mapsforge ● Map – Google Maps – Mapsforge – Mapbox – MapQuest – Jawg Maps – Mapzen ● Written in Java ● No iOS/web support ● Available since 2008 ● Vector map ● Offline only ● Fair performance ● No host for production use
  • 35. Mapbox ● Map – Google Maps – Mapsforge – Mapbox – MapQuest – Jawg Maps – Mapzen ● Support Android / iOS / Web ● Mapbox Telemetry ● Good performance ● Online + Cache ● Vector map ● Customizable style ● GeoJSON ● No circle shape ● Draw with polygon ● https://github.com/mapbox/mapbox-gl-native/issues/2167 ● No z-index ● Use layer instead ● https://github.com/mapbox/mapbox-gl-native/issues/1728 ● No anchor/alpha setting for marker
  • 36. MapQuest ● Map – Google Maps – Mapsforge – Mapbox – MapQuest – Jawg Maps – Mapzen ● Later on, powered by Mapbox � ● More expensive than Mapbox �
  • 37. Jawg Maps ● Map – Google Maps – Mapsforge – Mapbox – MapQuest – Jawg Maps – Mapzen ● No free tier for commercial use ● Commercial use starts from 99.99 €/month ● Vector map ● Indoor / Multi-level
  • 38. Mapzen ● Map – Google Maps – Mapsforge – Mapbox – MapQuest – Jawg Maps – Mapzen ● Support Android / iOS / Web ● Vector map ● Online only, for now
  • 39. Google Places API ● Search – Google Places API – Nominatim – Mapbox – MapQuest – Jawg Maps – Mapzen ● Everything is good but ● It’s only for Google Maps
  • 40. Nominatim ● Search – Google Places API – Nominatim – Mapbox – MapQuest – Jawg Maps – Mapzen ● Official tool from OSM ● Generate synthetic addresses ● Special keywords <=> OSM tags mapping ● Reverse geocoding ● Address lookup ● Supplement from wikidata ● Not really suitable for direct use ● (Indirectly) Used by ● OpenStreetMap.org ● MapQuest ● Mapzen
  • 41. Mapbox ● Search – Google Places API – Nominatim – Mapbox – MapQuest – Jawg Maps – Mapzen ● Multiple sources including OSM ● Poor i18n
  • 42. MapQuest ● Search – Google Places API – Nominatim – Mapbox – MapQuest – Jawg Maps – Mapzen ● Seems no fulltext search ● Cound’t find Taipei 101 �
  • 43. Jawg Maps ● Search – Google Places API – Nominatim – Mapbox – MapQuest – Jawg Maps – Mapzen ● Poor i18n
  • 44. Mapzen ● Search – Google Places API – Nominatim – Mapbox – MapQuest – Jawg Maps – Mapzen ● Fair i18n ● IMO the best choice
  • 45. Google Maps ● Routing / Navigation – Google Maps – GraphHopper – Valhalla – OSRM ● Traffic Data System – GTFS – OpenTraffic ● Only for Google Maps ● Online API ● Public transit ● Traffic aware
  • 46. GraphHopper ● Routing / Navigation – Google Maps – GraphHopper – Valhalla – OSRM ● Traffic Data System – GTFS – OpenTraffic ● Used by ● Mapsforge (offline) ● GraphHopper (online API) ● Transport mode ● Versatile ● Traffic aware ● GTFS ● Multiple sources ● Public transit ● GTFS based ● No turn restriction support yet ● Waypoint ● Isochrone
  • 47. Valhalla ● Routing / Navigation – Google Maps – GraphHopper – Valhalla – OSRM ● Traffic Data System – GTFS – OpenTraffic ● Sponsored by Mapzen ● Used by ● Mapzen (online API) ● Transport mode ● Versatile ● Traffic aware ● OpenTraffic ● Public transit ● Turn restriction ● Waypoint ● Isochrone
  • 48. OSRM ● Routing / Navigation – Google Maps – GraphHopper – Valhalla – OSRM ● Traffic Data System – GTFS – OpenTraffic ● Open Source Routing Machine ● Used by ● Maps.me (offline) ● Jawg Maps (online API) ● Geofabrik (online API) ● Cross Platform ● Transport Mode ● Car / Bike / Foot ● Turn restriction ● Waypoint ● Traffic aware ● Isochrone
  • 49. GTFS ● Routing / Navigation – Google Maps – GraphHopper – Valhalla – OSRM ● Traffic Data System – GTFS – OpenTraffic ● General Transit Feed Specification ● Is just a format ● No unified source/platform
  • 50. OpenTraffic ● Routing / Navigation – Google Maps – GraphHopper – Valhalla – OSRM ● Traffic Data System – GTFS – OpenTraffic ● OSM based ● Consistent way id ● Global data platform ● A nonprofit organization ● Founding Members and Partners (OpenTripPlanner)