Highest resolution GPS data in iOS - ios

For iPhone4+ devices gps resolution, how best can it be? 1 meter, 2 meter or?
I suppose that WiFi, cellular data usage and power are available.

You can specify your desired accuracy, and that will yield at best an accuracy of no smaller than 10 meters. This means that the device is at the coordinate, or somewhere in the circle around that coordinate with a radius of 10 meters.
Time-resolution is at best about one update per second.
Be mindful of the fact that the higher you desired accuracy, the more battery-power you consume.

Related

How to achieve a more accurate distance from device to Beacon?

I am sorry if this has been asked in one way shape or another. I have started working with beacons, and in Xcode (Swift) - using CoreLocation. I really need a more accurate determination between the device and a beacon though. So far I have been using the standard proximity region values (Far, Near, and Immediate), however this just isn't cutting it at all. It seems far too unstable for the solution I am looking for - which is a simple one at best.
My scenario;
I need to display notifications, adverts, images etc to the users device when they are approximately 4 meters away from the beacon. This sounds simple enough, but when I found out that the only real solutions there are for beacons are those aforementioned proximity regions, I started to get worried because I need to only display to devices that are 3-5 meters away, no more.
I am aware of the accuracy property of the CLBeacon class, however Apple state it should not be used for accurate positioning of beacons, which I believe is what I am trying to achieve.
Is there a solution to this? Any help is appreciated!
Thanks,
Olly
There are limitations of physics when it comes to estimating distance with Bluetooth radio signals. Radio noise, signal reflections, and obstructions all affect the ability to estimate distance based on radio signal strength. It's OK to use beacons for estimating distance, but you must set your expectations appropriately.
Apple's algorithms in CoreLocation take a running average of the measured signal strength over 20 seconds or so, then come up with a distance estimate in meters that is put into the CLBeacon accuracy field. The results of this field are then used to come up with the proximity field. (0.5 meters or less means immediate, 0.5-3 meters means near, etc.)
When Apple recommends against using the accuracy field, it is simply trying to protect you against unrealistic expectations. This will never be an exact estimate in meters. Best results will come with a phone out of a pocket, with no obstructions between the beacon and the phone, and the phone relatively stationary. Under best conditions, you might expect to get distance estimates of +/- 1 meter at close distances of 3 meters or less. The further you get away, the more variation you will see.
You have to decide if this is good enough for your use case. If you can control the beacons there are a few things you can do to make the results as good as possible:
Turn the beacon transmitter power setting up as high as possible. This gives you a higher signal to noise ratio, hence better distance estimates.
Turn the advertising rate up as high as possible. This gives you more statistical samples, hence better distance estimates.
Place your beacons in locations where there will be as few obstructions as possible.
Always calibrate your beacon after making the changes like above. Calibration involves measuring the signal level at 1 meter and storing this as a calibration constant inside the beacon. Consult your beacon manufacturer instructions for details of how to do this calibration.

iBeacon: stabilize signals

Currently I have 3 transmitters and 1 receiver (4 devices are iPhones) setup allowing me to work on Trilateration.
However, I found that the signals fluctuate a lot (even when 4 devices are put steady on tables). Is there any strategy to stabilize the signals?
Should I calculate the average X and Y to assume its position, or can I get assistance with GPS, or Wi-Fi signals?
Given that Wi-Fi is turned ON, bluetooth is turned ON, but not all devices have SIM card installed.
The "accuracy" field distanxe estimate returned by iOS for a CLBeacon is already averaged over approximately 20 seconds, so further averaging is unlikely to help unless you are talking about very long periods.
You must be realistic about the precision you can get with beacon ranging in general and trilateration specifically. Radio noise, reflections and attenuation from obstacles limit the technology to rough positioning.
See here for more info: http://developer.radiusnetworks.com/2014/12/04/fundamentals-of-beacon-ranging.html

Determine the exact distance of the Beacon

Can we determine the exact distance of the Beacon from the iOS App using these properties below.
Proximity
accuracy
rssi
If so, How can we achieve it?
Thanks,
accuracy is an estimation of the distance (in meter) between your device and the beacon. It isn't really reliable. As a matter of fact determining an exact distance would require taking into account all things creating interferences or attenuating the signal which isn't possible.
Accuracy is reliable within 1 meter,but the value may fluctuate.With increasing distance error increases.
You can calculate the distance by rssi in the actual environment.

Update/Refresh Rate for monitoring iBeacons

I've been playing around with Estimote Beacons for the last few days. I'm starting to doubt the effectiveness for iBeacons becouse of the high latency they have when it comes to determine a Beacons position.
When you move 2-3 meters it takes a few seconds until it gets the position right.
A usecase-scenario like, capturing a person walking by a beacon can be quite hard to determine.
Is it possible to manipulate the Update/Refresh Rate of a CLLocationManager or a CLBeaconRegion? e.g. every 0.1 Seconds
The reason that you are seeing it take so long for the iOS distance measurement (what they call "accuracy" in the CLBeacon object) to stabilize is because it is based on a running average of the RSSI -- the received signal strength. This signal strength measurement is inherently noisy and it bounces all around. That is why collecting multiple samples is necessary to smooth it out.
But because of this averaging, there is a lag. The most recent estimate is based on measurements from several seconds ago.
You cannot change the refresh rate of the CLLocationManager or the CLBeaconRegion, but you may be able to get an iBeacon that transmits more often than the 1s baseline. More transmissions gives you more RSSI measurements to work with, and it may help smooth out the noise. Because I am not sure of the internal implementation of CoreLocation, I am not positive whether a higher iBeacon transmission rate would reduce the noise on the distance measurement.
You can always calculate your own distance measurement, too, based on RSSI and the Power calibration value sent out by an iBeacon. If you use a single RSSI sample, then there will be no lag from averaging with earlier measurements, but you will have a high degree of variability. You basically have to accept a tradeoff between filtering out noise and filtering out old measurements based on different positions.
If you want to try your own calculation, you can use something like below (See my answer to this question for details).
distanceInMeters = 0.89976 * (rssi/txPower)**7.7095 + 0.111
You have to set realistic expectations on how accurate this estimate is going to be. Apple generally recommends that you don't use their "accuracy" measurement inside CLBeacon, unless it is in combination of other rougher measurements like "proximity" that bucketize the distance measurement into "immediate", "near" and "far" groupings.

How many significant figures do iOS devices calculate current location to?

When an iOS application requests the user's current location, to how many significant figures are the latitude and longitude values returned?
Just looking for the maximum no. of digits for database constraints.
There's no real answer to this. Among other reasons, the accuracy returned by CoreLocation varies and the conversion from degrees to linear distance depends on location.
At this point, I think the lowest accuracy I've seen returned by CoreLocation is 5 meters but in theory this could get better with time.
Wikipedia has a table of conversion from degrees to linear distance at the equator. Six fractional digits gets you down to 10 cm at the equator which is probably higher than the phone is going to provide in the foreseeable future. Five digits gets you to 1 meter but it's not too hard to imagine a future device besting that.

Resources