I am finishing development of an app that makes use of CoreLocation. Everything works great except that I am unhappy with the accuracy and consistency of the GPS coordiantes that CoreLocation returns. The latitude and longitude that are returned to me using the BestAccuracy setting are only ever to four decimal places and are sometimes inconsisistent when taking a reading at the same location. I have been experimenting with taking various numbers of readings but find that after 2 or 3 CoreLocationUpdates that there is no change to the reading.
Today I downloaded an app that gives your current location to six decimal places. Is this for real or are they making up those last two decimal places?
As far as I know the fourth decimal place is approximately 11 meters, the fifth approximately 1.1 meters, and the sixth approximately 11 cm.
This seems impossible to me that the iPhone's GPS could be this accurate. On the other hand I hope that I am wrong because it would make what I am trying to do with the GPS all the better.
Can anyone confirm for me if it is possible to get latitiude and longitude to more than the fourth decimal place? If so, how do you do it?
I am finishing development of an app that makes use of CoreLocation. Everything works great except that I am unhappy with the accuracy and consistency of the GPS coordiantes that CoreLocation returns. The latitude and longitude that are returned to me using the BestAccuracy setting are only ever to four decimal places and are sometimes inconsisistent when taking a reading at the same location. I have been experimenting with taking various numbers of readings but find that after 2 or 3 CoreLocationUpdates that there is no change to the reading.
Today I downloaded an app that gives your current location to six decimal places. Is this for real or are they making up those last two decimal places?
As far as I know the fourth decimal place is approximately 11 meters, the fifth approximately 1.1 meters, and the sixth approximately 11 cm.
This seems impossible to me that the iPhone's GPS could be this accurate. On the other hand I hope that I am wrong because it would make what I am trying to do with the GPS all the better.
Can anyone confirm for me if it is possible to get latitiude and longitude to more than the fourth decimal place? If so, how do you do it?
According to the CoreLocation documentation, the latitude and longitude position information is provided as 'double' type values, and it's definitely possible to display a double with 6 decimal places. The question is whether the position data ever actually has any significant information beyond the first 3 or 4 decimal places.
I haven't ever looked at the CoreLocation data, so I can't attest to what the data looks like. Have you actually just tried displaying the information with 6 decimal places to see what it looks like?
Thank you Kalimba, you got me headed in the right direction. All I had to do to get the extra decimal places was to use %lf instead of %g when converting my lat and long to strings. I think you are right though that the last few decimal places don't seem to be very useful.
I haven't played with the iPhone location services yet but on a GPS product I work on the receiver spits out quite a bit of precision (to a 100th of a minute).
Is civilian GPS even allowed to be this accurate? It might be possible, but that might assume lab conditions which are quite different from real world conditions
Maybe not, but you can't go lopping off digits as that will reduce whatever accuracy you have (say they only gave you tenths of a minute resolution but it went .05, .15, .25, ... instead of .00, .10, .20, ....).
Is civilian GPS even allowed to be this accurate? It might be possible, but that might assume lab conditions which are quite different from real world conditions
GPS is "allowed" to be as accurate as it possibly can be. Selective Availability was a terrible idea, and was turned off in the early 90's.
Most modern GPS receivers are accurate to 2-3 feet. The iPhone GPS isn't a shining example of an accurate GPS.
I'm working on a CoreLocation application as well and I am also finding the accuracy not that great. I can usually only get a fix with an accuracy of about 50m. That's a pretty big area. On rare occasions, when I am standing in the middle of an open field holding the phone in the air and the wind is blowing in the right direction (yes, my neighbors do think I'm nuts) I can get an accuracy of about 17m (as reported by CoreLocation) - that's acceptable but it only happens rarely. I do find that the coordinates that are returned are actually pretty accurate, even then the accuracy that is returned it high but there is no guarantee of that.
I am finishing development of an app that makes use of CoreLocation. Everything works great except that I am unhappy with the accuracy and consistency of the GPS coordiantes that CoreLocation returns. The latitude and longitude that are returned to me using the BestAccuracy setting are only ever to four decimal places and are sometimes inconsisistent when taking a reading at the same location. I have been experimenting with taking various numbers of readings but find that after 2 or 3 CoreLocationUpdates that there is no change to the reading.
Today I downloaded an app that gives your current location to six decimal places. Is this for real or are they making up those last two decimal places?
As far as I know the fourth decimal place is approximately 11 meters, the fifth approximately 1.1 meters, and the sixth approximately 11 cm.
This seems impossible to me that the iPhone's GPS could be this accurate. On the other hand I hope that I am wrong because it would make what I am trying to do with the GPS all the better.
Can anyone confirm for me if it is possible to get latitiude and longitude to more than the fourth decimal place? If so, how do you do it?
Tin Pot said this, but it bears repeating.
Precision and accuracy are two different things.
Accuracy is how much error there may be in a reading.
Precision is how finely you describe a value (how many decimal places, if you will.)
Computers use one of only a few formats to store floating point numbers: usually float or double. Coordinates in the location manager use double PRECISION numbers, which are able to describe numbers to 14 or 15 decimal places of precision. That does not mean that they are that accurate. Far from it! Remember, too, that computers store floating point numbers in binary, and numbers that fit into an exact number of digits in decimal are repeating values in binary. The number .1, for example, cannot be represented exactly in binary, just like 1/3 can't be represented exactly in decimal.
A CLLocation reading includes horizontal accuracy and vertical accuracy properties. THAT is how you tell how accurate the GPS reading really is.
I have been working on GPS/mapping applications for a several months now, and my latest app includes a display of the horizontal accuracy that comes in with each location. I have found that a "typical best" accuracy is around 55 feet. Sometimes, but rarely, I will get an accuracy of 29 feet. Accuracy values of 125 feet, 250 feet, or even greater, are also pretty common, even after the GPS has a chance to settle down. (These values are reported in meters, but since my app is targeted to the States, it defaults to displaying this info in feet.)
GPS is "allowed" to be as accurate as it possibly can be. Selective Availability was a terrible idea, and was turned off in the early 90's.
Most modern GPS receivers are accurate to 2-3 feet. The iPhone GPS isn't a shining example of an accurate GPS.
Wow... I wish. With differential GPS you can get down to centimeters, but the iPhone doesn't have that. Would make for a cool app though. You could actually somehow network 4 or 5 iphones and increase the accuracy of them all.
Look up PPS, SPS, and SAASM. I can guarantee you that mil GPS is still more accurate (and more bulky).
set the desiredAccuracy property of the location manager
Quote:
Originally Posted by malik_vijay158
how can i set the horizontal and vertical accuracy...please let me now
The CLLocationManager has a property, desiredAccuracy.
That property tells the system how accurate you WANT your readings to be. There is no guarantee that the readings you get will be that accurate however.
Sorry but what are you talking about????
most modern Global Positioning Systems are accurate to about 20 feet, if not 30?
Military GPS is usually only accurate to 5 feet and is not even available to the public.
Quote:
Originally Posted by tmbg
GPS is "allowed" to be as accurate as it possibly can be. Selective Availability was a terrible idea, and was turned off in the early 90's.
Most modern GPS receivers are accurate to 2-3 feet. The iPhone GPS isn't a shining example of an accurate GPS.
__________________
APPS4LIFE
search for me in the app store.