SlideShare a Scribd company logo
1 of 62
Download to read offline
Alternative Mapping On iOS
                                      Justin Miller
                                   Development Seed




Monday, August 15, 2011
“MapKit? Where we’re going, we don’t need MapKit...”

Monday, August 15, 2011
Alternative?




Monday, August 15, 2011
Alternative?

                 •        Alternative to Apple’s MapKit.framework




Monday, August 15, 2011
Alternative?

                 •        Alternative to Apple’s MapKit.framework

                     •     Custom aesthetic - colors, level of detail




Monday, August 15, 2011
Alternative?

                 •        Alternative to Apple’s MapKit.framework

                     •     Custom aesthetic - colors, level of detail

                     •     Custom behaviors - offline use, layering




Monday, August 15, 2011
Alternative?

                 •        Alternative to Apple’s MapKit.framework

                     •     Custom aesthetic - colors, level of detail

                     •     Custom behaviors - offline use, layering

                     •     Custom sources - boundaries, languages



Monday, August 15, 2011
Map Tiles



Monday, August 15, 2011
Monday, August 15, 2011
Monday, August 15, 2011
Tile-Based Map Images




Monday, August 15, 2011
Tile-Based Map Images
                 •        Can easily number in the millions




Monday, August 15, 2011
Tile-Based Map Images
                 •        Can easily number in the millions

                     •     Zoom level 0




Monday, August 15, 2011
Tile-Based Map Images
                 •        Can easily number in the millions

                     •     Zoom level 0

                          •   One 256x256 tile




Monday, August 15, 2011
Tile-Based Map Images
                 •        Can easily number in the millions

                     •     Zoom level 0

                          •   One 256x256 tile

                     •     Zoom level 18




Monday, August 15, 2011
Tile-Based Map Images
                 •        Can easily number in the millions

                     •     Zoom level 0

                          •   One 256x256 tile

                     •     Zoom level 18

                          •   68,719,476,736 tiles



Monday, August 15, 2011
Tile-Based Map Images
                 •        Can easily number in the millions

                     •     Zoom level 0

                          •   One 256x256 tile

                     •     Zoom level 18

                          •   68,719,476,736 tiles

                 •        This is a PITA for USB or network transfer en masse

Monday, August 15, 2011
Tile-Based Map Images
                 •        Can easily number in the millions

                     •     Zoom level 0

                          •   One 256x256 tile

                     •     Zoom level 18

                          •   68,719,476,736 tiles

                 •        This is a PITA for USB or network transfer en masse

Monday, August 15, 2011
Tile-Based Map Images
                 •        Can easily number in the millions

                     •     Zoom level 0

                          •   One 256x256 tile

                     •     Zoom level 18

                          •   68,719,476,736 tiles

                 •        This is a PITA for USB or network transfer en masse

Monday, August 15, 2011
Solution?




Monday, August 15, 2011
Solution?

                 •        SQLite: self-contained, cross-platform, serverless




Monday, August 15, 2011
Solution?

                 •        SQLite: self-contained, cross-platform, serverless

                     •     “Small. Fast. Reliable. Choose any three.”




Monday, August 15, 2011
Solution?

                 •        SQLite: self-contained, cross-platform, serverless

                     •     “Small. Fast. Reliable. Choose any three.”




Monday, August 15, 2011
Solution?

                 •        SQLite: self-contained, cross-platform, serverless

                     •     “Small. Fast. Reliable. Choose any three.”

                 •        MBTiles: a simple schema




Monday, August 15, 2011
Solution?

                 •        SQLite: self-contained, cross-platform, serverless

                     •     “Small. Fast. Reliable. Choose any three.”

                 •        MBTiles: a simple schema

                     •     Name, zoom levels, attribution, version, etc.




Monday, August 15, 2011
Solution?

                 •        SQLite: self-contained, cross-platform, serverless

                     •     “Small. Fast. Reliable. Choose any three.”

                 •        MBTiles: a simple schema

                     •     Name, zoom levels, attribution, version, etc.

                     •     Store tile images as binary data


Monday, August 15, 2011
Added Bonuses (Bonusi?)




Monday, August 15, 2011
Added Bonuses (Bonusi?)
                 •        Can weed out duplicate tiles (i.e., oceans)




Monday, August 15, 2011
Added Bonuses (Bonusi?)
                 •        Can weed out duplicate tiles (i.e., oceans)

                 •        Generally zip down pretty well




Monday, August 15, 2011
Added Bonuses (Bonusi?)
                 •        Can weed out duplicate tiles (i.e., oceans)

                 •        Generally zip down pretty well

                     •     3GB on disk




Monday, August 15, 2011
Added Bonuses (Bonusi?)
                 •        Can weed out duplicate tiles (i.e., oceans)

                 •        Generally zip down pretty well

                     •     3GB on disk

                     •     1GB in SQLite




Monday, August 15, 2011
Added Bonuses (Bonusi?)
                 •        Can weed out duplicate tiles (i.e., oceans)

                 •        Generally zip down pretty well

                     •     3GB on disk

                     •     1GB in SQLite

                     •     200MB in .ipa



Monday, August 15, 2011
Added Bonuses (Bonusi?)
                 •        Can weed out duplicate tiles (i.e., oceans)

                 •        Generally zip down pretty well

                     •     3GB on disk

                     •     1GB in SQLite

                     •     200MB in .ipa

                 •        Easy on the user

Monday, August 15, 2011
Ok, So Now What?




Monday, August 15, 2011
Ok, So Now What?

                 •        Needed a framework




Monday, August 15, 2011
Ok, So Now What?

                 •        Needed a framework

                 •        Evaluated; found route-me




Monday, August 15, 2011
Ok, So Now What?

                 •        Needed a framework

                 •        Evaluated; found route-me

                     •     Google Code at the time; now GitHub




Monday, August 15, 2011
Ok, So Now What?

                 •        Needed a framework

                 •        Evaluated; found route-me

                     •     Google Code at the time; now GitHub

                     •     Reasonably active (GitHub has helped)




Monday, August 15, 2011
Ok, So Now What?

                 •        Needed a framework

                 •        Evaluated; found route-me

                     •     Google Code at the time; now GitHub

                     •     Reasonably active (GitHub has helped)

                     •     Open source (BSD license)


Monday, August 15, 2011
route-me




Monday, August 15, 2011
route-me

                 •        NOT a MapKit drop-in replacement




Monday, August 15, 2011
route-me

                 •        NOT a MapKit drop-in replacement

                     •     It’s got its own funky conventions




Monday, August 15, 2011
route-me

                 •        NOT a MapKit drop-in replacement

                     •     It’s got its own funky conventions

                     •     It could probably use some refactoring




Monday, August 15, 2011
route-me

                 •        NOT a MapKit drop-in replacement

                     •     It’s got its own funky conventions

                     •     It could probably use some refactoring

                 •        Does a lot with CALayer directly




Monday, August 15, 2011
route-me

                 •        NOT a MapKit drop-in replacement

                     •     It’s got its own funky conventions

                     •     It could probably use some refactoring

                 •        Does a lot with CALayer directly

                 •        Not as finely-tuned as MapKit


Monday, August 15, 2011
route-me

                 •        NOT a MapKit drop-in replacement

                     •     It’s got its own funky conventions

                     •     It could probably use some refactoring

                 •        Does a lot with CALayer directly

                 •        Not as finely-tuned as MapKit              “I’ve got my own customs!”



Monday, August 15, 2011
Examples



Monday, August 15, 2011
Monday, August 15, 2011
Monday, August 15, 2011
Monday, August 15, 2011
Monday, August 15, 2011
Monday, August 15, 2011
Monday, August 15, 2011
Monday, August 15, 2011
Monday, August 15, 2011
Monday, August 15, 2011
Monday, August 15, 2011
Monday, August 15, 2011
GitHubStuff




Monday, August 15, 2011
GitHubStuff

                  • tilemill              • wax
                  • tilestream            • tilelive.js
                  • mbtiles-spec          • Simple KML
                  • mbutil                • Fingertips
                  • carto                 • route-me*

Monday, August 15, 2011
For More Info

                 •        GitHub: github.com/mapbox

                 •        Twitter: @incanus77, @mapbox, and @developmentseed

                 •        App Store: MapBox (iPad only)

                 •        Web: mapbox.com



Monday, August 15, 2011
Thanks!



Monday, August 15, 2011

More Related Content

Viewers also liked

GeoDC: Better data for better elections in Afghanistan
GeoDC: Better data for better elections in AfghanistanGeoDC: Better data for better elections in Afghanistan
GeoDC: Better data for better elections in Afghanistan
Development Seed
 

Viewers also liked (7)

Mapnik2 Performance, September 2011
Mapnik2 Performance, September 2011Mapnik2 Performance, September 2011
Mapnik2 Performance, September 2011
 
Cartography with TileMill, PostGIS, and OpenStreetMap
Cartography with TileMill, PostGIS, and OpenStreetMapCartography with TileMill, PostGIS, and OpenStreetMap
Cartography with TileMill, PostGIS, and OpenStreetMap
 
Tilemill: Making Custom Transit Maps
Tilemill: Making Custom Transit MapsTilemill: Making Custom Transit Maps
Tilemill: Making Custom Transit Maps
 
GeoDC: Better data for better elections in Afghanistan
GeoDC: Better data for better elections in AfghanistanGeoDC: Better data for better elections in Afghanistan
GeoDC: Better data for better elections in Afghanistan
 
Famine Mapping with USAID
Famine Mapping with USAIDFamine Mapping with USAID
Famine Mapping with USAID
 
Nonprofit Mapping at Net2DC Meetup
Nonprofit Mapping at Net2DC MeetupNonprofit Mapping at Net2DC Meetup
Nonprofit Mapping at Net2DC Meetup
 
Introduction to jQuery Mobile - Web Deliver for All
Introduction to jQuery Mobile - Web Deliver for AllIntroduction to jQuery Mobile - Web Deliver for All
Introduction to jQuery Mobile - Web Deliver for All
 

More from Development Seed

Tech@State Preview of Designing Custom Maps with TileMill
Tech@State Preview of Designing Custom Maps with TileMillTech@State Preview of Designing Custom Maps with TileMill
Tech@State Preview of Designing Custom Maps with TileMill
Development Seed
 
ReliefWeb Drupal 7 Build Plan
ReliefWeb Drupal 7 Build PlanReliefWeb Drupal 7 Build Plan
ReliefWeb Drupal 7 Build Plan
Development Seed
 
Offline Mapping: International Crisis
Offline Mapping: International CrisisOffline Mapping: International Crisis
Offline Mapping: International Crisis
Development Seed
 
Aegir one drupal to rule them all
Aegir one drupal to rule them allAegir one drupal to rule them all
Aegir one drupal to rule them all
Development Seed
 

More from Development Seed (13)

Rasters are not Monsters - GeoMTL 2019
Rasters are not Monsters - GeoMTL 2019Rasters are not Monsters - GeoMTL 2019
Rasters are not Monsters - GeoMTL 2019
 
Transparency camp
Transparency campTransparency camp
Transparency camp
 
Tech@State Preview of Designing Custom Maps with TileMill
Tech@State Preview of Designing Custom Maps with TileMillTech@State Preview of Designing Custom Maps with TileMill
Tech@State Preview of Designing Custom Maps with TileMill
 
ReliefWeb Drupal 7 Build Plan
ReliefWeb Drupal 7 Build PlanReliefWeb Drupal 7 Build Plan
ReliefWeb Drupal 7 Build Plan
 
IBM Drupal Users Group Discussion on Managing and Deploying Configuration
IBM Drupal Users Group Discussion on Managing and Deploying ConfigurationIBM Drupal Users Group Discussion on Managing and Deploying Configuration
IBM Drupal Users Group Discussion on Managing and Deploying Configuration
 
Offline Mapping: International Crisis
Offline Mapping: International CrisisOffline Mapping: International Crisis
Offline Mapping: International Crisis
 
Aegir one drupal to rule them all
Aegir one drupal to rule them allAegir one drupal to rule them all
Aegir one drupal to rule them all
 
Backstage with Drupal localization- Part 2
Backstage with Drupal localization- Part 2Backstage with Drupal localization- Part 2
Backstage with Drupal localization- Part 2
 
For every site a make file
For every site a make fileFor every site a make file
For every site a make file
 
Go real time with pubsubhubbub and feeds
Go real time with pubsubhubbub and feedsGo real time with pubsubhubbub and feeds
Go real time with pubsubhubbub and feeds
 
Drupal Distributions: The Dos and Don'ts:
Drupal Distributions: The Dos and Don'ts:Drupal Distributions: The Dos and Don'ts:
Drupal Distributions: The Dos and Don'ts:
 
Open Atrium
Open Atrium Open Atrium
Open Atrium
 
Opening Large Data Sets
Opening Large Data SetsOpening Large Data Sets
Opening Large Data Sets
 

Recently uploaded

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 

Recently uploaded (20)

Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 

Alternative Mapping on iOS

  • 1. Alternative Mapping On iOS Justin Miller Development Seed Monday, August 15, 2011
  • 2. “MapKit? Where we’re going, we don’t need MapKit...” Monday, August 15, 2011
  • 4. Alternative? • Alternative to Apple’s MapKit.framework Monday, August 15, 2011
  • 5. Alternative? • Alternative to Apple’s MapKit.framework • Custom aesthetic - colors, level of detail Monday, August 15, 2011
  • 6. Alternative? • Alternative to Apple’s MapKit.framework • Custom aesthetic - colors, level of detail • Custom behaviors - offline use, layering Monday, August 15, 2011
  • 7. Alternative? • Alternative to Apple’s MapKit.framework • Custom aesthetic - colors, level of detail • Custom behaviors - offline use, layering • Custom sources - boundaries, languages Monday, August 15, 2011
  • 11. Tile-Based Map Images Monday, August 15, 2011
  • 12. Tile-Based Map Images • Can easily number in the millions Monday, August 15, 2011
  • 13. Tile-Based Map Images • Can easily number in the millions • Zoom level 0 Monday, August 15, 2011
  • 14. Tile-Based Map Images • Can easily number in the millions • Zoom level 0 • One 256x256 tile Monday, August 15, 2011
  • 15. Tile-Based Map Images • Can easily number in the millions • Zoom level 0 • One 256x256 tile • Zoom level 18 Monday, August 15, 2011
  • 16. Tile-Based Map Images • Can easily number in the millions • Zoom level 0 • One 256x256 tile • Zoom level 18 • 68,719,476,736 tiles Monday, August 15, 2011
  • 17. Tile-Based Map Images • Can easily number in the millions • Zoom level 0 • One 256x256 tile • Zoom level 18 • 68,719,476,736 tiles • This is a PITA for USB or network transfer en masse Monday, August 15, 2011
  • 18. Tile-Based Map Images • Can easily number in the millions • Zoom level 0 • One 256x256 tile • Zoom level 18 • 68,719,476,736 tiles • This is a PITA for USB or network transfer en masse Monday, August 15, 2011
  • 19. Tile-Based Map Images • Can easily number in the millions • Zoom level 0 • One 256x256 tile • Zoom level 18 • 68,719,476,736 tiles • This is a PITA for USB or network transfer en masse Monday, August 15, 2011
  • 21. Solution? • SQLite: self-contained, cross-platform, serverless Monday, August 15, 2011
  • 22. Solution? • SQLite: self-contained, cross-platform, serverless • “Small. Fast. Reliable. Choose any three.” Monday, August 15, 2011
  • 23. Solution? • SQLite: self-contained, cross-platform, serverless • “Small. Fast. Reliable. Choose any three.” Monday, August 15, 2011
  • 24. Solution? • SQLite: self-contained, cross-platform, serverless • “Small. Fast. Reliable. Choose any three.” • MBTiles: a simple schema Monday, August 15, 2011
  • 25. Solution? • SQLite: self-contained, cross-platform, serverless • “Small. Fast. Reliable. Choose any three.” • MBTiles: a simple schema • Name, zoom levels, attribution, version, etc. Monday, August 15, 2011
  • 26. Solution? • SQLite: self-contained, cross-platform, serverless • “Small. Fast. Reliable. Choose any three.” • MBTiles: a simple schema • Name, zoom levels, attribution, version, etc. • Store tile images as binary data Monday, August 15, 2011
  • 28. Added Bonuses (Bonusi?) • Can weed out duplicate tiles (i.e., oceans) Monday, August 15, 2011
  • 29. Added Bonuses (Bonusi?) • Can weed out duplicate tiles (i.e., oceans) • Generally zip down pretty well Monday, August 15, 2011
  • 30. Added Bonuses (Bonusi?) • Can weed out duplicate tiles (i.e., oceans) • Generally zip down pretty well • 3GB on disk Monday, August 15, 2011
  • 31. Added Bonuses (Bonusi?) • Can weed out duplicate tiles (i.e., oceans) • Generally zip down pretty well • 3GB on disk • 1GB in SQLite Monday, August 15, 2011
  • 32. Added Bonuses (Bonusi?) • Can weed out duplicate tiles (i.e., oceans) • Generally zip down pretty well • 3GB on disk • 1GB in SQLite • 200MB in .ipa Monday, August 15, 2011
  • 33. Added Bonuses (Bonusi?) • Can weed out duplicate tiles (i.e., oceans) • Generally zip down pretty well • 3GB on disk • 1GB in SQLite • 200MB in .ipa • Easy on the user Monday, August 15, 2011
  • 34. Ok, So Now What? Monday, August 15, 2011
  • 35. Ok, So Now What? • Needed a framework Monday, August 15, 2011
  • 36. Ok, So Now What? • Needed a framework • Evaluated; found route-me Monday, August 15, 2011
  • 37. Ok, So Now What? • Needed a framework • Evaluated; found route-me • Google Code at the time; now GitHub Monday, August 15, 2011
  • 38. Ok, So Now What? • Needed a framework • Evaluated; found route-me • Google Code at the time; now GitHub • Reasonably active (GitHub has helped) Monday, August 15, 2011
  • 39. Ok, So Now What? • Needed a framework • Evaluated; found route-me • Google Code at the time; now GitHub • Reasonably active (GitHub has helped) • Open source (BSD license) Monday, August 15, 2011
  • 41. route-me • NOT a MapKit drop-in replacement Monday, August 15, 2011
  • 42. route-me • NOT a MapKit drop-in replacement • It’s got its own funky conventions Monday, August 15, 2011
  • 43. route-me • NOT a MapKit drop-in replacement • It’s got its own funky conventions • It could probably use some refactoring Monday, August 15, 2011
  • 44. route-me • NOT a MapKit drop-in replacement • It’s got its own funky conventions • It could probably use some refactoring • Does a lot with CALayer directly Monday, August 15, 2011
  • 45. route-me • NOT a MapKit drop-in replacement • It’s got its own funky conventions • It could probably use some refactoring • Does a lot with CALayer directly • Not as finely-tuned as MapKit Monday, August 15, 2011
  • 46. route-me • NOT a MapKit drop-in replacement • It’s got its own funky conventions • It could probably use some refactoring • Does a lot with CALayer directly • Not as finely-tuned as MapKit “I’ve got my own customs!” Monday, August 15, 2011
  • 60. GitHubStuff • tilemill • wax • tilestream • tilelive.js • mbtiles-spec • Simple KML • mbutil • Fingertips • carto • route-me* Monday, August 15, 2011
  • 61. For More Info • GitHub: github.com/mapbox • Twitter: @incanus77, @mapbox, and @developmentseed • App Store: MapBox (iPad only) • Web: mapbox.com Monday, August 15, 2011