(Originally written on February 27, 2014)
One iPhone broadcasting as a beacon, the other receiving.
Maps are a huge business for both Google and Apple. Although Apple’s initial effort on mapping fell short, they quickly fixed their most glaring problems and now have a nearly equivalent offering to that of Google.
That being said, relying on GPS for location positioning works well on a macro scale, but is at best a rough estimate of where a device is located (within 50 to 100 meters (164 to 328 feet) depending on the accuracy requested by the device). You can see this in Google Maps, which draws a circle around your position (representing the possible error range at the time).
Apple has been expanding their mapping capabilities with a number of technologies, and has been looking to conquer another frontier: indoor positioning. What started with the launch of iBeacons in 2013, is now being augmented by their new iOS 8 CoreLocation indoor features (using a combination of iBeacon, Wifi signals, and M7/motion sensors). Their end goal is to offer extremely accurate indoor mapping and navigation functionality.
When I was working on the Pizza Hut app in 2011, we discussed the idea of using location detection to automate selecting a user’s local store. Every physical address only has one store location that is supposed to deliver to them (and each store might have slightly different products), which is why we had to ask for people’s physical locations before they could order. This would (somewhat) work for house locations (depending on their local GPS range), but would not work for apartments or office building locations.
However, once indoor positioning becomes truly ubiquitous, not only could we identify a specific apartment or office, as well as floor (i.e. “third floor apartment 3102”), we might even be able to identify a specific user as they move about a crowded stadium, in order to deliver an individual slice of pizza.
There will be a lot of work before indoor positioning “just works” everywhere, but until then, we can start by using iBeacons.
At their core, iBeacons are small Bluetooth LE chips that broadcast a signal with a unique code. A number of manufacturers (such as Roximity and Estimote) have already started making iBeacons available. They are usually powered by small watch batteries, but are so energy efficient that the batteries will last two or more years.
Any iPhone since the iPhone 4s can listen for iBeacons, because they have an internal Bluetooth LE chip. Also, the Bluetooth LE chip inside those phones is a transceiver, meaning they can both broadcast as well as receive iBeacon signals. This is convenient for testing, because we can set up additional iPhones as broadcasters.
To help with testing, I created an app called Beaconator that can be used to use an iPhone as a beacon. You can use your own udid or generate a random one, along with a major and minor number. For multiple locations, the major number could be the id of the specific location, and the minor number could be a combination of the floor and an arbitrarily defined section of the floorplan.
A beacon broadcasts a weak signal, so there are really two different pieces of information you can find when you detect a beacon: the numbers that the beacon are broadcasting, and the strength of the signal. That signal strength tells you (approximately) how close you are to the beacon. Comparing the signal strength between multiple beacons can then help locate you within a particular floor-plan. This locating is called “trilateration” (not to be confused with triangulation) because it is a measurement of the distance between your origin point and three (or more) beacons.
Estimote has made this complicated math much easier with the release of a new SDK which translates the signal strengths between beacons into an x, y coordinate for easier navigation. Their SDK supports installing and mapping beacons, as well as retrieving information about where a device is within a room.
These technologies are going to become more and more prevalent, and as they do so, it is likely that CoreLocation will be enhanced to support all of these external efforts. Apple is currently partnering with many commercial real estate venues and national retail chains in order to boost this internal mapping. In a few short years, we should be able to navigate within our homes or offices at a much finer level of control than we do now when using navigational systems on the road.