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

Mapnik2 Performance, September 2011
Mapnik2 Performance, September 2011Mapnik2 Performance, September 2011
Mapnik2 Performance, September 2011Development Seed
 
Cartography with TileMill, PostGIS, and OpenStreetMap
Cartography with TileMill, PostGIS, and OpenStreetMapCartography with TileMill, PostGIS, and OpenStreetMap
Cartography with TileMill, PostGIS, and OpenStreetMapDevelopment Seed
 
Tilemill: Making Custom Transit Maps
Tilemill: Making Custom Transit MapsTilemill: Making Custom Transit Maps
Tilemill: Making Custom Transit MapsDevelopment Seed
 
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 AfghanistanDevelopment Seed
 
Nonprofit Mapping at Net2DC Meetup
Nonprofit Mapping at Net2DC MeetupNonprofit Mapping at Net2DC Meetup
Nonprofit Mapping at Net2DC MeetupDevelopment Seed
 
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 AllMarc Grabanski
 

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

Rasters are not Monsters - GeoMTL 2019
Rasters are not Monsters - GeoMTL 2019Rasters are not Monsters - GeoMTL 2019
Rasters are not Monsters - GeoMTL 2019Development 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 TileMillDevelopment Seed
 
ReliefWeb Drupal 7 Build Plan
ReliefWeb Drupal 7 Build PlanReliefWeb Drupal 7 Build Plan
ReliefWeb Drupal 7 Build PlanDevelopment Seed
 
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 ConfigurationDevelopment Seed
 
Offline Mapping: International Crisis
Offline Mapping: International CrisisOffline Mapping: International Crisis
Offline Mapping: International CrisisDevelopment 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 allDevelopment Seed
 
Backstage with Drupal localization- Part 2
Backstage with Drupal localization- Part 2Backstage with Drupal localization- Part 2
Backstage with Drupal localization- Part 2Development Seed
 
For every site a make file
For every site a make fileFor every site a make file
For every site a make fileDevelopment Seed
 
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 feedsDevelopment Seed
 
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: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

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)wesley chun
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
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 Scriptwesley chun
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbuapidays
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024The Digital Insurer
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
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...DianaGray10
 
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...Drew Madelung
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusZilliz
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 

Recently uploaded (20)

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)
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
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
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
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...
 
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...
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 

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