I've been working on a location based app recently and am noticing some strange values for CLLocation. I often get a horizontalAccuracy
of 1414
and a verticalAccuracy
of -1
. Any clue what this indicates? As far as I can tell, these points are often very accurate. What is the difference between verticalAccuracy and horizontalAccuracy?
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
回答1:
The -1 for verticalAccuracy
indicates that the altitude in the CLLocation
is not valid. You only get altitude with a 3D GPS position.
The 1414 for horizontalAccuracy
indicates that the horizontal (lat/lon) position could be up to 1414m off (this is just an estimated error). This is probably a location determined by cell tower triangulation or WiFi location data. GPS locations usually report 100m or better.
To get a higher accuracy location (300m or better) you need to set desiredAccuracy
and wait for the GPS receiver to lock onto at least 3 satellites (or 4 for a 3D fix). Until that happens CLLocationManager
will give you the best it has which is WiFi or Cell tower triangulation results.