Determining Location Using Bluetooth Beacons
Beacons aren't like GPS in that there's no advertised or calculated physical location. There are two ways to obtain location. The first uses the received signal strength indicator (RSSI) of the beacon. The second way is using angle of arrival (AoA) and special hardware with multiple receiving antenna.
Our article on setting the transmitted power explains how the power varies with distance. The main problem with signal strength (RSSI) is that it varies too much to be used to accurately calculate distance. The direction also isn't known. Factors such as the room, the beacon, walls, other items or even people can affect the received signal strength. How the user holds the phone can even affect the effectiveness of the antenna which in turn affects the signal strength.
Many projects try but fail to get cm accuracy from RSSI. You should take the hint from Apple that iOS APIs only go so far as to extrapolate 'Immediate' (within a few centimetres), 'Near' (within a couple of meters) and 'Far' (greater than 10 meters away) from the RSSI. Anything more detailed is more likely to be unreliable or need tuning/calibration for a specific scenario. As with most systems, higher tuning usually implies less tolerance to future changes. It's more pragmatic to create systems based on 'zones' as opposed to specific location. Projects that derive more detailed location derived from RSSI, typically via trilateration, weighted averages and calibration, usually achieve accuracies of about 5m at the extreme range of the beacon or 1.5m within a shorter range confined space.
AoA uses special beacons that advertise a continuous tone extension (CTS). The variation in phase of the tone hitting multiple antenna at different angles is used to calculate the angle of arrival. The angles are used to triangulate the location of the beacon to sub-metre accuracy. More information is available in our article on Bluetooth Direction Finding.
Read the article on Using Beacons for Real-time Locating Systems (RTLS)
View the Direction Finding Products.