Open Mapping on iOS
Justin Miller • MapBox
YaC 2013 • Moscow • October 2013
Overview
Overview
•What is iOS mapping like out of the box?
Overview
•What is iOS mapping like out of the box?
•What is geodata? How can you use it?
Overview
•What is iOS mapping like out of the box?
•What is geodata? How can you use it?
•What software exists for custom ...
About Me
About Me
•I live and work in Portland, USA
About Me
•I live and work in Portland, USA
•I’ve been building with Cocoa for ~10 years
About Me
•I live and work in Portland, USA
•I’ve been building with Cocoa for ~10 years
•I lead iOS & OS X engineering at ...
About MapBox
About MapBox
•We are pushing the space around open data & open source
for maps
About MapBox
•We are pushing the space around open data & open source
for maps
•Why? I will show you by way of iOS
About MapBox
•We are pushing the space around open data & open source
for maps
•Why? I will show you by way of iOS
•With o...
About MapBox
•We are pushing the space around open data & open source
for maps
•Why? I will show you by way of iOS
•With o...
About MapBox
•We are pushing the space around open data & open source
for maps
•Why? I will show you by way of iOS
•With o...
What Apple GivesYou
What Apple GivesYou
•MapKit.framework
What Apple GivesYou
•MapKit.framework
•Available since iOS 3 (2009)
What Apple GivesYou
•MapKit.framework
•Available since iOS 3 (2009)
•Incrementally improved in each iOS release
What Apple GivesYou
•MapKit.framework
•Available since iOS 3 (2009)
•Incrementally improved in each iOS release
•Apple ven...
What Apple GivesYou
•MapKit.framework
•Available since iOS 3 (2009)
•Incrementally improved in each iOS release
•Apple ven...
Inherent Limitations
Inherent Limitations
•No custom styling
Inherent Limitations
•No custom styling
•No formal offline capabilities
Inherent Limitations
•No custom styling
•No formal offline capabilities
•Weak interactivity
Inherent Limitations
•No custom styling
•No formal offline capabilities
•Weak interactivity
•Not fine-grained
Inherent Limitations
•No custom styling
•No formal offline capabilities
•Weak interactivity
•Not fine-grained
•Not offline-ca...
Inherent Limitations
•No custom styling
•No formal offline capabilities
•Weak interactivity
•Not fine-grained
•Not offline-ca...
What Do We Need?
What Do We Need?
1.Custom maps
What Do We Need?
1.Custom maps
2.Software to integrate them
What Do We Need?
1.Custom maps
2.Software to integrate them
3.Apple’s blessing
What Do We Need?
1.Custom maps
2.Software to integrate them
3.Apple’s blessing
•Alternate frameworks are ok!
What Do We Need?
1.Custom maps
2.Software to integrate them
3.Apple’s blessing
•Alternate frameworks are ok!
•I’ll explain...
Custom Maps
Custom Maps
•MapBox is building a cloud platform on OpenStreetMap
Custom Maps
•MapBox is building a cloud platform on OpenStreetMap
•OSM is like Wikipedia for maps
Custom Maps
•MapBox is building a cloud platform on OpenStreetMap
•OSM is like Wikipedia for maps
•Over one million contri...
Custom Maps
•MapBox is building a cloud platform on OpenStreetMap
•OSM is like Wikipedia for maps
•Over one million contri...
Custom Maps
•MapBox is building a cloud platform on OpenStreetMap
•OSM is like Wikipedia for maps
•Over one million contri...
Custom Maps
Custom Maps
•We make (and use) TileMill for styling geodata
Custom Maps
•We make (and use) TileMill for styling geodata
•TileMill works with both:
Custom Maps
•We make (and use) TileMill for styling geodata
•TileMill works with both:
• Large (OSM extracts or full)
Custom Maps
•We make (and use) TileMill for styling geodata
•TileMill works with both:
• Large (OSM extracts or full)
• Sm...
Can Be Combined!
Can Be Combined!
•Use OSM for the base layer
Can Be Combined!
•Use OSM for the base layer
•Custom (or not) worldwide map
Can Be Combined!
•Use OSM for the base layer
•Custom (or not) worldwide map
•Use alpha-transparent overlays for details
Can Be Combined!
•Use OSM for the base layer
•Custom (or not) worldwide map
•Use alpha-transparent overlays for details
•B...
But I’m Not a Map Maker!
But I’m Not a Map Maker!
But I’m Not a Map Maker!
•MapBox provides easy, slider-based styling of
OSM in a web UI
But I’m Not a Map Maker!
•MapBox provides easy, slider-based styling of
OSM in a web UI
•The point of TileMill is to make ...
But I’m Not a Map Maker!
•MapBox provides easy, slider-based styling of
OSM in a web UI
•The point of TileMill is to make ...
Geodata
Geodata
•Many formats:
Geodata
•Many formats:
•GeoJSON, KML, Shapefile,YMapsML, PostGIS & SQLite
databases, even CSV (+ more)
Geodata
•Many formats:
•GeoJSON, KML, Shapefile,YMapsML, PostGIS & SQLite
databases, even CSV (+ more)
•You can layer data ...
TileMill Concepts
Geodata
russia.geojson
Import
#russia layer
Export
Russia map image
Code/Style
#russia { ... }
Geodata
russia.geojson
Import
#russia layer
Export
Russia map image
Code/Style
#russia { ... }
Geodata
russia.geojson
Import
#russia layer
Export
Russia map image
Code/Style
#russia { ... }
Geodata
russia.geojson
Import
#russia layer
Export
Russia map image
Code/Style
#russia { ... }
Geodata Import
Export Code/Style
Geodata Import
Export Code/Style
Geodata Import
Export Code/Style
Geodata Import
Export Code/Style
Geodata Import
Export Code/Style
TileMill is Cross-Platform
TileMill is Cross-Platform
•Supports OS X,Windows, and Linux
TileMill is Cross-Platform
•Supports OS X,Windows, and Linux
•Also can be run as a web service
TileMill is Cross-Platform
•Supports OS X,Windows, and Linux
•Also can be run as a web service
•It’s made of Node.js
TileMill is Cross-Platform
•Supports OS X,Windows, and Linux
•Also can be run as a web service
•It’s made of Node.js
•Enti...
TileMill is Cross-Platform
•Supports OS X,Windows, and Linux
•Also can be run as a web service
•It’s made of Node.js
•Enti...
Maps Produce Tiles
Maps Produce Tiles
•2D plane: x & y values
Maps Produce Tiles
•2D plane: x & y values
•Detail zooming: z value
Maps Produce Tiles
•2D plane: x & y values
•Detail zooming: z value
•Whole world in one tile at z1
Maps Produce Tiles
•2D plane: x & y values
•Detail zooming: z value
•Whole world in one tile at z1
•Maybe one city block a...
Tiles Are Numerous
Tiles Are Numerous
•For zoom level z there are 4z tiles
Tiles Are Numerous
•For zoom level z there are 4z tiles
•Whole world at once: 1 tile (40)
Tiles Are Numerous
•For zoom level z there are 4z tiles
•Whole world at once: 1 tile (40)
•Whole world by blocks: 417 tile...
Tiles Are Numerous
•For zoom level z there are 4z tiles
•Whole world at once: 1 tile (40)
•Whole world by blocks: 417 tile...
MBTiles
MBTiles
•Take many tiles (z, x, y values + image data)
MBTiles
•Take many tiles (z, x, y values + image data)
•Stuff them into database rows using SQLite
MBTiles
•Take many tiles (z, x, y values + image data)
•Stuff them into database rows using SQLite
•Easily compress, trans...
or
What Do We Need?
1.Custom maps ✓
2.Software to integrate them ←
3.Apple’s blessing
Software
Software
•Apple’s MapKit allows tile overlays
Software
•Apple’s MapKit allows tile overlays
•Since iOS 4 (MKOverlay protocol)
Software
•Apple’s MapKit allows tile overlays
•Since iOS 4 (MKOverlay protocol)
•-drawMapRect:... (similar to -drawRect:)
Software
•Apple’s MapKit allows tile overlays
•Since iOS 4 (MKOverlay protocol)
•-drawMapRect:... (similar to -drawRect:)
...
Software
•Apple’s MapKit allows tile overlays
•Since iOS 4 (MKOverlay protocol)
•-drawMapRect:... (similar to -drawRect:)
...
Software
•Apple’s MapKit allows tile overlays
•Since iOS 4 (MKOverlay protocol)
•-drawMapRect:... (similar to -drawRect:)
...
Software
•Apple’s MapKit allows tile overlays
•Since iOS 4 (MKOverlay protocol)
•-drawMapRect:... (similar to -drawRect:)
...
So We Built...
So We Built...
•MapBox iOS SDK
So We Built...
•MapBox iOS SDK
•Ground-up workalike of MapKit
So We Built...
•MapBox iOS SDK
•Ground-up workalike of MapKit
•Entirely open source & free
So We Built...
•MapBox iOS SDK
•Ground-up workalike of MapKit
•Entirely open source & free
•Fully-featured
Example Usage
Example Usage
•RMMapBoxSource
Example Usage
•RMMapBoxSource
•[[RMMapBoxSource alloc]
initWithMapID:@”justin.russia”]
Example Usage
•RMMapBoxSource
•[[RMMapBoxSource alloc]
initWithMapID:@”justin.russia”]
•RMMBTilesSource
Example Usage
•RMMapBoxSource
•[[RMMapBoxSource alloc]
initWithMapID:@”justin.russia”]
•RMMBTilesSource
•[[RMMapBoxSource ...
Interactivity
Interactivity
•Simple key/value query on a CGPoint at the current zoom level
Interactivity
•Simple key/value query on a CGPoint at the current zoom level
•[mapView
formattedOutputOfType:RMInteractive...
Interactivity
•Simple key/value query on a CGPoint at the current zoom level
•[mapView
formattedOutputOfType:RMInteractive...
Attention to Detail
•User location tracking
Attention to Detail
•User location tracking
•Expected behavior & gestures
Attention to Detail
•User location tracking
•Expected behavior & gestures
•Ready for iOS 7!
Attention to Detail
One More Thing...
Yet another Thing? ;-)
What Do We Need?
1.Custom maps ✓
2.Software to integrate them ✓
3.Apple’s blessing ←
iOS 7 MapKit
iOS 7 MapKit
•iOS 7 MapKit lets you bring your own tiles
iOS 7 MapKit
•iOS 7 MapKit lets you bring your own tiles
•Apple’s official blessing of open maps
iOS 7 MapKit
•iOS 7 MapKit lets you bring your own tiles
•Apple’s official blessing of open maps
•And it works on OS X 10.9!
Announcing MBXMapKit
Announcing MBXMapKit
MBXMapKit
MBXMapKit
•Builds on Apple’s MapKit
MBXMapKit
•Builds on Apple’s MapKit
•iOS 7+ and OS X 10.9+
MBXMapKit
•Builds on Apple’s MapKit
•iOS 7+ and OS X 10.9+
•No other dependencies
MBXMapKit
•Builds on Apple’s MapKit
•iOS 7+ and OS X 10.9+
•No other dependencies
Simpler Integration
Simpler Integration
•One class + one line of code!
Simpler Integration
•One class + one line of code!
1. #import <MBXMapKit/MBXMapKit.h>
Simpler Integration
•One class + one line of code!
1. #import <MBXMapKit/MBXMapKit.h>
2. -[MBXMapView initWithFrame:mapID:...
Free & Open Source
Free & Open Source
•MBXMapKit will continue to evolve
Free & Open Source
•MBXMapKit will continue to evolve
•Will parallel development of our SDK
Free & Open Source
•MBXMapKit will continue to evolve
•Will parallel development of our SDK
•This is a great validation by...
Review
Review
•Custom maps from geodata using open source tools
Review
•Custom maps from geodata using open source tools
•Native iOS interaction with open source libraries
Review
•Custom maps from geodata using open source tools
•Native iOS interaction with open source libraries
•Lets you focu...
ThankYou!
ThankYou!
•Contact Info
•@incanus77
•justin@mapbox.com
ThankYou!
•Contact Info
•@incanus77
•justin@mapbox.com
•Software
•github.com/mapbox/mapbox-ios-sdk
•github.com/mapbox/mbxm...
ThankYou!
•Contact Info
•@incanus77
•justin@mapbox.com
•Software
•github.com/mapbox/mapbox-ios-sdk
•github.com/mapbox/mbxm...
"Open Mapping on iOS" — Justin Miller, MapBox
"Open Mapping on iOS" — Justin Miller, MapBox
"Open Mapping on iOS" — Justin Miller, MapBox
"Open Mapping on iOS" — Justin Miller, MapBox
"Open Mapping on iOS" — Justin Miller, MapBox
"Open Mapping on iOS" — Justin Miller, MapBox
"Open Mapping on iOS" — Justin Miller, MapBox
"Open Mapping on iOS" — Justin Miller, MapBox
"Open Mapping on iOS" — Justin Miller, MapBox
"Open Mapping on iOS" — Justin Miller, MapBox
"Open Mapping on iOS" — Justin Miller, MapBox
"Open Mapping on iOS" — Justin Miller, MapBox
Upcoming SlideShare
Loading in …5
×

"Open Mapping on iOS" — Justin Miller, MapBox

1,494 views

Published on

Open mapping refers to using open source software to display and interact with maps and using open source tools and data to make the maps themselves. You will hear about ways to make maps from common data as well as how to use them in both online and offline environments on Apple's iOS ecosystem. We will cover some basic types of geographic data, bringing them all together and designing a map, and working with Apple's closed, proprietary operating system in more flexible and open ways. You will learn about some of the challenges that map-enabled app developers face in a mobile environment and how various open source projects and standards can help solve those problems.

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,494
On SlideShare
0
From Embeds
0
Number of Embeds
231
Actions
Shares
0
Downloads
11
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

"Open Mapping on iOS" — Justin Miller, MapBox

  1. 1. Open Mapping on iOS Justin Miller • MapBox YaC 2013 • Moscow • October 2013
  2. 2. Overview
  3. 3. Overview •What is iOS mapping like out of the box?
  4. 4. Overview •What is iOS mapping like out of the box? •What is geodata? How can you use it?
  5. 5. Overview •What is iOS mapping like out of the box? •What is geodata? How can you use it? •What software exists for custom mapping?
  6. 6. About Me
  7. 7. About Me •I live and work in Portland, USA
  8. 8. About Me •I live and work in Portland, USA •I’ve been building with Cocoa for ~10 years
  9. 9. About Me •I live and work in Portland, USA •I’ve been building with Cocoa for ~10 years •I lead iOS & OS X engineering at MapBox
  10. 10. About MapBox
  11. 11. About MapBox •We are pushing the space around open data & open source for maps
  12. 12. About MapBox •We are pushing the space around open data & open source for maps •Why? I will show you by way of iOS
  13. 13. About MapBox •We are pushing the space around open data & open source for maps •Why? I will show you by way of iOS •With open tech, we also leave options open
  14. 14. About MapBox •We are pushing the space around open data & open source for maps •Why? I will show you by way of iOS •With open tech, we also leave options open •No inherent lock-in
  15. 15. About MapBox •We are pushing the space around open data & open source for maps •Why? I will show you by way of iOS •With open tech, we also leave options open •No inherent lock-in •Mix vendors, software, and data
  16. 16. What Apple GivesYou
  17. 17. What Apple GivesYou •MapKit.framework
  18. 18. What Apple GivesYou •MapKit.framework •Available since iOS 3 (2009)
  19. 19. What Apple GivesYou •MapKit.framework •Available since iOS 3 (2009) •Incrementally improved in each iOS release
  20. 20. What Apple GivesYou •MapKit.framework •Available since iOS 3 (2009) •Incrementally improved in each iOS release •Apple vends their own maps
  21. 21. What Apple GivesYou •MapKit.framework •Available since iOS 3 (2009) •Incrementally improved in each iOS release •Apple vends their own maps •Pre-iOS 6, famously, they vended Google’s
  22. 22. Inherent Limitations
  23. 23. Inherent Limitations •No custom styling
  24. 24. Inherent Limitations •No custom styling •No formal offline capabilities
  25. 25. Inherent Limitations •No custom styling •No formal offline capabilities •Weak interactivity
  26. 26. Inherent Limitations •No custom styling •No formal offline capabilities •Weak interactivity •Not fine-grained
  27. 27. Inherent Limitations •No custom styling •No formal offline capabilities •Weak interactivity •Not fine-grained •Not offline-capable
  28. 28. Inherent Limitations •No custom styling •No formal offline capabilities •Weak interactivity •Not fine-grained •Not offline-capable •Not at the pixel level
  29. 29. What Do We Need?
  30. 30. What Do We Need? 1.Custom maps
  31. 31. What Do We Need? 1.Custom maps 2.Software to integrate them
  32. 32. What Do We Need? 1.Custom maps 2.Software to integrate them 3.Apple’s blessing
  33. 33. What Do We Need? 1.Custom maps 2.Software to integrate them 3.Apple’s blessing •Alternate frameworks are ok!
  34. 34. What Do We Need? 1.Custom maps 2.Software to integrate them 3.Apple’s blessing •Alternate frameworks are ok! •I’ll explain more about this later
  35. 35. Custom Maps
  36. 36. Custom Maps •MapBox is building a cloud platform on OpenStreetMap
  37. 37. Custom Maps •MapBox is building a cloud platform on OpenStreetMap •OSM is like Wikipedia for maps
  38. 38. Custom Maps •MapBox is building a cloud platform on OpenStreetMap •OSM is like Wikipedia for maps •Over one million contributors
  39. 39. Custom Maps •MapBox is building a cloud platform on OpenStreetMap •OSM is like Wikipedia for maps •Over one million contributors •But the open tools also let you self-host
  40. 40. Custom Maps •MapBox is building a cloud platform on OpenStreetMap •OSM is like Wikipedia for maps •Over one million contributors •But the open tools also let you self-host •Start small, grow large
  41. 41. Custom Maps
  42. 42. Custom Maps •We make (and use) TileMill for styling geodata
  43. 43. Custom Maps •We make (and use) TileMill for styling geodata •TileMill works with both:
  44. 44. Custom Maps •We make (and use) TileMill for styling geodata •TileMill works with both: • Large (OSM extracts or full)
  45. 45. Custom Maps •We make (and use) TileMill for styling geodata •TileMill works with both: • Large (OSM extracts or full) • Small (vacation.geojson)
  46. 46. Can Be Combined!
  47. 47. Can Be Combined! •Use OSM for the base layer
  48. 48. Can Be Combined! •Use OSM for the base layer •Custom (or not) worldwide map
  49. 49. Can Be Combined! •Use OSM for the base layer •Custom (or not) worldwide map •Use alpha-transparent overlays for details
  50. 50. Can Be Combined! •Use OSM for the base layer •Custom (or not) worldwide map •Use alpha-transparent overlays for details •Brought in locally (bundled) or via the cloud (MapBox or other)
  51. 51. But I’m Not a Map Maker!
  52. 52. But I’m Not a Map Maker!
  53. 53. But I’m Not a Map Maker! •MapBox provides easy, slider-based styling of OSM in a web UI
  54. 54. But I’m Not a Map Maker! •MapBox provides easy, slider-based styling of OSM in a web UI •The point of TileMill is to make everyone a map maker!
  55. 55. But I’m Not a Map Maker! •MapBox provides easy, slider-based styling of OSM in a web UI •The point of TileMill is to make everyone a map maker! •Analogy: think about design assets in your application
  56. 56. Geodata
  57. 57. Geodata •Many formats:
  58. 58. Geodata •Many formats: •GeoJSON, KML, Shapefile,YMapsML, PostGIS & SQLite databases, even CSV (+ more)
  59. 59. Geodata •Many formats: •GeoJSON, KML, Shapefile,YMapsML, PostGIS & SQLite databases, even CSV (+ more) •You can layer data together to style a map
  60. 60. TileMill Concepts
  61. 61. Geodata russia.geojson Import #russia layer Export Russia map image Code/Style #russia { ... }
  62. 62. Geodata russia.geojson Import #russia layer Export Russia map image Code/Style #russia { ... }
  63. 63. Geodata russia.geojson Import #russia layer Export Russia map image Code/Style #russia { ... }
  64. 64. Geodata russia.geojson Import #russia layer Export Russia map image Code/Style #russia { ... }
  65. 65. Geodata Import Export Code/Style
  66. 66. Geodata Import Export Code/Style
  67. 67. Geodata Import Export Code/Style
  68. 68. Geodata Import Export Code/Style
  69. 69. Geodata Import Export Code/Style
  70. 70. TileMill is Cross-Platform
  71. 71. TileMill is Cross-Platform •Supports OS X,Windows, and Linux
  72. 72. TileMill is Cross-Platform •Supports OS X,Windows, and Linux •Also can be run as a web service
  73. 73. TileMill is Cross-Platform •Supports OS X,Windows, and Linux •Also can be run as a web service •It’s made of Node.js
  74. 74. TileMill is Cross-Platform •Supports OS X,Windows, and Linux •Also can be run as a web service •It’s made of Node.js •Entirely open source and free
  75. 75. TileMill is Cross-Platform •Supports OS X,Windows, and Linux •Also can be run as a web service •It’s made of Node.js •Entirely open source and free •Help us make it great(er)!
  76. 76. Maps Produce Tiles
  77. 77. Maps Produce Tiles •2D plane: x & y values
  78. 78. Maps Produce Tiles •2D plane: x & y values •Detail zooming: z value
  79. 79. Maps Produce Tiles •2D plane: x & y values •Detail zooming: z value •Whole world in one tile at z1
  80. 80. Maps Produce Tiles •2D plane: x & y values •Detail zooming: z value •Whole world in one tile at z1 •Maybe one city block at z17
  81. 81. Tiles Are Numerous
  82. 82. Tiles Are Numerous •For zoom level z there are 4z tiles
  83. 83. Tiles Are Numerous •For zoom level z there are 4z tiles •Whole world at once: 1 tile (40)
  84. 84. Tiles Are Numerous •For zoom level z there are 4z tiles •Whole world at once: 1 tile (40) •Whole world by blocks: 417 tiles (!)
  85. 85. Tiles Are Numerous •For zoom level z there are 4z tiles •Whole world at once: 1 tile (40) •Whole world by blocks: 417 tiles (!) •Transport at any reasonable scale becomes a problem
  86. 86. MBTiles
  87. 87. MBTiles •Take many tiles (z, x, y values + image data)
  88. 88. MBTiles •Take many tiles (z, x, y values + image data) •Stuff them into database rows using SQLite
  89. 89. MBTiles •Take many tiles (z, x, y values + image data) •Stuff them into database rows using SQLite •Easily compress, transport, and bundle
  90. 90. or
  91. 91. What Do We Need? 1.Custom maps ✓ 2.Software to integrate them ← 3.Apple’s blessing
  92. 92. Software
  93. 93. Software •Apple’s MapKit allows tile overlays
  94. 94. Software •Apple’s MapKit allows tile overlays •Since iOS 4 (MKOverlay protocol)
  95. 95. Software •Apple’s MapKit allows tile overlays •Since iOS 4 (MKOverlay protocol) •-drawMapRect:... (similar to -drawRect:)
  96. 96. Software •Apple’s MapKit allows tile overlays •Since iOS 4 (MKOverlay protocol) •-drawMapRect:... (similar to -drawRect:) •However, you can’t turn off Apple’s maps*
  97. 97. Software •Apple’s MapKit allows tile overlays •Since iOS 4 (MKOverlay protocol) •-drawMapRect:... (similar to -drawRect:) •However, you can’t turn off Apple’s maps* •Loading artifacts under your layer(s)
  98. 98. Software •Apple’s MapKit allows tile overlays •Since iOS 4 (MKOverlay protocol) •-drawMapRect:... (similar to -drawRect:) •However, you can’t turn off Apple’s maps* •Loading artifacts under your layer(s) •Network/rendering overhead
  99. 99. Software •Apple’s MapKit allows tile overlays •Since iOS 4 (MKOverlay protocol) •-drawMapRect:... (similar to -drawRect:) •However, you can’t turn off Apple’s maps* •Loading artifacts under your layer(s) •Network/rendering overhead •Unpredictable caching & rendering
  100. 100. So We Built...
  101. 101. So We Built... •MapBox iOS SDK
  102. 102. So We Built... •MapBox iOS SDK •Ground-up workalike of MapKit
  103. 103. So We Built... •MapBox iOS SDK •Ground-up workalike of MapKit •Entirely open source & free
  104. 104. So We Built... •MapBox iOS SDK •Ground-up workalike of MapKit •Entirely open source & free •Fully-featured
  105. 105. Example Usage
  106. 106. Example Usage •RMMapBoxSource
  107. 107. Example Usage •RMMapBoxSource •[[RMMapBoxSource alloc] initWithMapID:@”justin.russia”]
  108. 108. Example Usage •RMMapBoxSource •[[RMMapBoxSource alloc] initWithMapID:@”justin.russia”] •RMMBTilesSource
  109. 109. Example Usage •RMMapBoxSource •[[RMMapBoxSource alloc] initWithMapID:@”justin.russia”] •RMMBTilesSource •[[RMMapBoxSource alloc] initWithTileSetResource:@”russia” ofType:@”mbtiles”]
  110. 110. Interactivity
  111. 111. Interactivity •Simple key/value query on a CGPoint at the current zoom level
  112. 112. Interactivity •Simple key/value query on a CGPoint at the current zoom level •[mapView formattedOutputOfType:RMInteractiveSourceOutputTypeFull forPoint:gesturePoint]
  113. 113. Interactivity •Simple key/value query on a CGPoint at the current zoom level •[mapView formattedOutputOfType:RMInteractiveSourceOutputTypeFull forPoint:gesturePoint] •Returns HTML that can be used in UIWebView
  114. 114. Attention to Detail
  115. 115. •User location tracking Attention to Detail
  116. 116. •User location tracking •Expected behavior & gestures Attention to Detail
  117. 117. •User location tracking •Expected behavior & gestures •Ready for iOS 7! Attention to Detail
  118. 118. One More Thing...
  119. 119. Yet another Thing? ;-)
  120. 120. What Do We Need? 1.Custom maps ✓ 2.Software to integrate them ✓ 3.Apple’s blessing ←
  121. 121. iOS 7 MapKit
  122. 122. iOS 7 MapKit •iOS 7 MapKit lets you bring your own tiles
  123. 123. iOS 7 MapKit •iOS 7 MapKit lets you bring your own tiles •Apple’s official blessing of open maps
  124. 124. iOS 7 MapKit •iOS 7 MapKit lets you bring your own tiles •Apple’s official blessing of open maps •And it works on OS X 10.9!
  125. 125. Announcing MBXMapKit
  126. 126. Announcing MBXMapKit
  127. 127. MBXMapKit
  128. 128. MBXMapKit •Builds on Apple’s MapKit
  129. 129. MBXMapKit •Builds on Apple’s MapKit •iOS 7+ and OS X 10.9+
  130. 130. MBXMapKit •Builds on Apple’s MapKit •iOS 7+ and OS X 10.9+ •No other dependencies
  131. 131. MBXMapKit •Builds on Apple’s MapKit •iOS 7+ and OS X 10.9+ •No other dependencies
  132. 132. Simpler Integration
  133. 133. Simpler Integration •One class + one line of code!
  134. 134. Simpler Integration •One class + one line of code! 1. #import <MBXMapKit/MBXMapKit.h>
  135. 135. Simpler Integration •One class + one line of code! 1. #import <MBXMapKit/MBXMapKit.h> 2. -[MBXMapView initWithFrame:mapID:] or -[MBXMapView initWithFrame:MBTilesPath:]
  136. 136. Free & Open Source
  137. 137. Free & Open Source •MBXMapKit will continue to evolve
  138. 138. Free & Open Source •MBXMapKit will continue to evolve •Will parallel development of our SDK
  139. 139. Free & Open Source •MBXMapKit will continue to evolve •Will parallel development of our SDK •This is a great validation by Apple of the value of open mapping!
  140. 140. Review
  141. 141. Review •Custom maps from geodata using open source tools
  142. 142. Review •Custom maps from geodata using open source tools •Native iOS interaction with open source libraries
  143. 143. Review •Custom maps from geodata using open source tools •Native iOS interaction with open source libraries •Lets you focus on combining great services together
  144. 144. ThankYou!
  145. 145. ThankYou! •Contact Info •@incanus77 •justin@mapbox.com
  146. 146. ThankYou! •Contact Info •@incanus77 •justin@mapbox.com •Software •github.com/mapbox/mapbox-ios-sdk •github.com/mapbox/mbxmapkit •tilemill.com
  147. 147. ThankYou! •Contact Info •@incanus77 •justin@mapbox.com •Software •github.com/mapbox/mapbox-ios-sdk •github.com/mapbox/mbxmapkit •tilemill.com •Slides at tinyurl.com/MapBoxYaC13

×