J'ai récemment travaillé sur une application basée sur la localisation et j'ai remarqué des valeurs étranges pour CLLocation. J'obtiens souvent un horizontalAccuracy
de 1414
et un verticalAccuracy
sur -1
. Un indice de ce que cela indique? Autant que je sache, ces points sont souvent très précis. Quelle est la différence entre verticalAccuracy et horizontalAccuracy?
Le -1 pour verticalAccuracy
indique que l'altitude dans le CLLocation
n'est pas valide. Vous n'obtenez de l'altitude qu'avec une position GPS 3D.
Le 1414 pour horizontalAccuracy
indique que la position horizontale (lat/lon) pourrait être jusqu'à 1414 m (il ne s'agit que d'une erreur estimée). Il s'agit probablement d'un emplacement déterminé par la triangulation de la tour cellulaire ou les données de localisation WiFi. Les emplacements GPS indiquent généralement 100 m ou mieux.
Pour obtenir une localisation plus précise (300 m ou mieux), vous devez définir desiredAccuracy
et attendre que le récepteur GPS se verrouille sur au moins 3 satellites (ou 4 pour un repère 3D). Jusqu'à ce que cela se produise, CLLocationManager
vous donnera le meilleur dont il dispose, à savoir les résultats de triangulation WiFi ou Cell Tower.