Technology

IOS 8 Indoor Location

Description
1. © 2014 Apple Inc. All rights reserved. Redistribution or public display not permitted without written permission from Apple. #WWDC14 Taking Core Location Indoors…
Categories
Published
of 101
All materials on our website are shared by users. If you have any questions about copyright issues, please report us to resolve them. We are always happy to assist you.
Related Documents
Share
Transcript
  • 1. © 2014 Apple Inc. All rights reserved. Redistribution or public display not permitted without written permission from Apple. #WWDC14 Taking Core Location Indoors Session 708 Nav Patel Software Engineer Core OS
  • 2. Overview Indoor Positioning How do you use it? Indoor Positioning and iBeacon Technology Next steps
  • 3. Today’s Technology Cellular, GPS, Wi-Fi
  • 4. Today’s Technology Cellular Area in a city Low power Always available
  • 5. Today’s Technology GPS Accurate enough for navigation Available globally Less accurate in urban canyons
  • 6. Today’s Technology Wi-Fi Within a city block Augments GPS positioning Wi-Fi only devices
  • 7. Existing Location Navigation outdoors Works well globally
  • 8. Problem Not great indoors Altitude, not floor
  • 9. Indoor Positioning
  • 10. Playback Speed 10x
  • 11. Indoor Positioning RF Parametric data Motion sensors
  • 12. How Does It All Work? Getting indoors Cell GPS Wi-Fi
  • 13. How Does It All Work? Getting indoors Location Fix Wi-FiGPSCell Motion
  • 14. How Does It All Work? Getting indoors Location Fix Wi-FiGPSCell Motion
  • 15. How Does It All Work? Getting indoors Location FixIndoor Location Fix Wi-FiGPSCell Motion
  • 16. Why Indoors?
  • 17. Why Indoors? Directories
  • 18. Why Indoors? Directories Venue maps
  • 19. Why Indoors? Directories Venue maps Some interactivity
  • 20. Why Indoors? Location is context
  • 21. Why Indoors? Location is context Way-finding
  • 22. Why Indoors? Location is context
  • 23. Find each other Why Indoors? Location is context
  • 24. Find each other Find you Why Indoors? Location is context
  • 25. Why Indoors? Location is context
  • 26. Why Indoors? Location is context Last piece of the puzzle
  • 27. How Do You Use It? Core Location
  • 28. How Do You Use It? Core Location Wi-Fi on, device unlocked
  • 29. How Do You Use It? Core Location Wi-Fi on, device unlocked Exact same Core Location API
  • 30. How Do You Use It? Core Location Wi-Fi on, device unlocked Exact same Core Location API Floor number
  • 31. How Do You Use It? CLFloor
  • 32. How Do You Use It? CLFloor @property(readonly, nonatomic, copy) CLFloor *floor ! @interface CLFloor @property(readonly, nonatomic) NSInteger level; @end
  • 33. Building an Indoor Application Overcoming spherical coordinate challenges Vitali Lovich
  • 34. Geographic Coordinate System Latitude/longitude Common Convenient Difficult to work with
  • 35. Floorplan Image Easy for display Convenient graphical coordinates Display coordinate frame
  • 36. Conversion Three coordinate frames to consider Watch out for spherical distortion
  • 37. Conversion Three coordinate frames to consider Watch out for spherical distortion
  • 38. Helper Functions MKMapPointForCoordinate MKMetersBetweenMapPoints MKMetersPerMapPointAtLatitude CGAffineTransformMakeScale CGAffineTransformMakeRotation CGPointApplyAffineTransform
  • 39. Required Data Two anchor points Anchor point = latitude/longitude + floorplan pixels
  • 40. Scale We need pixelsPerMeter • P2 = MKMapPointForCoordinate(A1.Geo) • P1 = MKMapPointForCoordinate(A2.Geo) • MKMetersBetweenMapPoints(P1, P2) ! hypot(A2.Pixels.x - A1.Pixels.x, A2.Pixels.y - A2.Pixels.y)
  • 41. Orientation XY South East X Y South East
  • 42. Conversion XY South East
  • 43. Conversion XY South East
  • 44. Conversion XY South East
  • 45. XY Conversion South East
  • 46. Conversion South East XY
  • 47. Conversion South East XY θg θf θr = θf - θg
  • 48. Putting It Together Pointuser = MKMapPointForCoordinate(UserPosition) MetersScale = MKMetersPerMapPointAtLatitude(A1.Geo) Metersuser = (Pointuser - PointA1) * MetersScale CGPointApplyAffineTransform(Metersuser, CGAffineTransformMakeScale(Pixels/Meter)) CGPointApplyAffineTransform(Pixelsuser, CGAffineTransformMakeRotation(θr))
  • 49. Availability Coming soon
  • 50. Availability Coming soon California Academy of Sciences, San Francisco Westfield San Francisco Centre, San Francisco Mineta San Jose International Airport, San Jose
  • 51. Discover Your App
  • 52. Discover Your App Advertise at your venue
  • 53. Discover Your App Advertise at your venue App Store—Near Me
  • 54. Discover Your App Advertise at your venue App Store—Near Me Continuity
  • 55. Discover Your App Advertise at your venue App Store—Near Me Continuity
  • 56. Indoor Positioning 
 and iBeacon Technology Position and proximity
  • 57. iBeacon Technology Review iBeacon Technology
  • 58. Indoor Positioning iBeacon Technology Position Proximity Navigation Notification
  • 59. Art Gallery Example
  • 60. Art Gallery Example Region entrance CLCircularRegion
  • 61. Art Gallery Example Region entrance CLCircularRegion
  • 62. Art Gallery Example Region entrance CLCircularRegion
  • 63. Art Gallery Example Region entrance
  • 64. Art Gallery Example Region entrance
  • 65. Art Gallery Example Beacon regions
  • 66. Art Gallery Example Beacon at entrance—Region monitoring [self.locationManager startMonitoringForRegion:beaconRegion]; ! - (void)locationManager:(CLLocationManager *)manager didEnterRegion:(CLRegion *)region
  • 67. Art Gallery Example Beacon at entrance—Region monitoring [self.locationManager startMonitoringForRegion:beaconRegion]; ! - (void)locationManager:(CLLocationManager *)manager didEnterRegion:(CLRegion *)region
  • 68. Art Gallery Example Beacon at entrance—Region monitoring [self.locationManager startMonitoringForRegion:beaconRegion]; ! - (void)locationManager:(CLLocationManager *)manager didEnterRegion:(CLRegion *)region
  • 69. Art Gallery Example Beacon at entrance—Region monitoring [self.locationManager startMonitoringForRegion:beaconRegion]; ! - (void)locationManager:(CLLocationManager *)manager didEnterRegion:(CLRegion *)region
  • 70. Art Gallery Example Navigation and commentary
  • 71. Display user position on map Art Gallery Example Navigation and commentary
  • 72. Display user position on map Art Gallery Example Navigation and commentary
  • 73. Display user position on map Navigate Art Gallery Example Navigation and commentary
  • 74. Display user position on map Navigate Art Gallery Example Navigation and commentary
  • 75. Display user position on map Navigate Art Gallery Example Navigation and commentary
  • 76. Display user position on map Navigate Relevant content based on exhibits nearby Art Gallery Example Navigation and commentary
  • 77. Art Gallery Example Proximity to exhibits
  • 78. Art Gallery Example Proximity to exhibits
  • 79. Art Gallery Example Proximity to exhibits
  • 80. Art Gallery Example Proximity to exhibits
  • 81. Art Gallery Example Proximity to exhibits
  • 82. Art Gallery Example Proximity to exhibits
  • 83. Art Gallery Example Proximity to exhibits
  • 84. Art Gallery Example Beacon at exhibit—Proximity [self.locationManager startRangingBeaconsInRegion:beaconRegion]; ! - (void)locationManager:(CLLocationManager *)manager didRangeBeacons:(NSArray *)beacons inRegion:(CLBeaconRegion *)region ! beacon.proximity ! beacon.major ! beacon.minor !
  • 85. Art Gallery Example Beacon at exhibit—Proximity [self.locationManager startRangingBeaconsInRegion:beaconRegion]; ! - (void)locationManager:(CLLocationManager *)manager didRangeBeacons:(NSArray *)beacons inRegion:(CLBeaconRegion *)region ! beacon.proximity ! beacon.major ! beacon.minor !
  • 86. Art Gallery Example Beacon at exhibit—Proximity [self.locationManager startRangingBeaconsInRegion:beaconRegion]; ! - (void)locationManager:(CLLocationManager *)manager didRangeBeacons:(NSArray *)beacons inRegion:(CLBeaconRegion *)region ! beacon.proximity ! beacon.major ! beacon.minor !
  • 87. Art Gallery Example Beacon at exhibit—Proximity [self.locationManager startRangingBeaconsInRegion:beaconRegion]; ! - (void)locationManager:(CLLocationManager *)manager didRangeBeacons:(NSArray *)beacons inRegion:(CLBeaconRegion *)region ! beacon.proximity ! beacon.major ! beacon.minor !
  • 88. Art Gallery Example Beacon at exhibit—Proximity [self.locationManager startRangingBeaconsInRegion:beaconRegion]; ! - (void)locationManager:(CLLocationManager *)manager didRangeBeacons:(NSArray *)beacons inRegion:(CLBeaconRegion *)region ! beacon.proximity ! beacon.major ! beacon.minor !
  • 89. Art Gallery Example Beacon at exhibit—Proximity [self.locationManager startRangingBeaconsInRegion:beaconRegion]; ! - (void)locationManager:(CLLocationManager *)manager didRangeBeacons:(NSArray *)beacons inRegion:(CLBeaconRegion *)region ! beacon.proximity ! beacon.major ! beacon.minor !
  • 90. Art Gallery Example Beacon at exhibit—Proximity [self.locationManager startRangingBeaconsInRegion:beaconRegion]; ! - (void)locationManager:(CLLocationManager *)manager didRangeBeacons:(NSArray *)beacons inRegion:(CLBeaconRegion *)region ! beacon.proximity ! beacon.major ! beacon.minor !
  • 91. With Great Power Strict security and privacy guidelines Request location only as you need it When In Use authorization Have a clear purpose string
  • 92. Next Steps Sign up  Maps Connect Indoor Positioning—Sign up http://mapsconnect.apple.com Maps Maps & Core Location API http://developer.apple.com/maps iBeacon iBeacon Technology & Licensing http://developer.apple.com/ibeacon
  • 93. Summary Indoor Positioning Precise Indoor Positioning Core Location APIs Indoor Positioning and iBeacon Technology
  • 94. More Information Craig Keithley MFi and I/O Technologies Evangelist keithley@apple.com Documentation Location and Maps Programming Guide http://developer.apple.com Apple Developer Forums http://devforums.apple.com
  • 95. Related Sessions • What’s New in Core Location Marina Tuesday 2:00PM • User Privacy in iOS and OS X Nob Hill Thursday 2:00PM
  • 96. Labs • Core Location Lab Core OS Lab B Thursday 12:45PM
  • We Need Your Support
    Thank you for visiting our website and your interest in our free products and services. We are nonprofit website to share and download documents. To the running of this website, we need your help to support us.

    Thanks to everyone for your continued support.

    No, Thanks
    SAVE OUR EARTH

    We need your sign to support Project to invent "SMART AND CONTROLLABLE REFLECTIVE BALLOONS" to cover the Sun and Save Our Earth.

    More details...

    Sign Now!

    We are very appreciated for your Prompt Action!

    x