2009-07-28 12 views
5

Je voudrais utiliser des emplacements fiables, même sur un ancien iphone. Cependant, de nombreuses lectures (en particulier de tours de téléphonie cellulaire) sont trop inexactes. Je pense.Quelle est la précision de la précision CLLocation?

Quand je tracer ma position + rayon de précision (ou regarde app Google Maps), je remarque le centre du cercle estimé est généralement proche de mon emplacement physique. Je devine que si je réduis le nombre de "précision" de moitié, je serai toujours dans le cercle 99% du temps.

Je crois que c'est un jeu probabiliste - le manager emplacement tente de fournir une estimation qui est correcte 99,99999% du temps, ils donnent une marge volontairement large. Des pensées/informations?

Répondre

0

Lorsque vous utilisez CoreLocation, vous obtenez des réponses « retour » qui obtiennent de mieux en mieux. J'ai remarqué que la "meilleure" réponse est presque toujours exacte à moins de 100m, donc théoriquement vous pourriez probablement réduire le "tampon" que vous êtes normalement donné. La seule façon de vraiment savoir, cependant, et c'est ce que je ferais, est de tester le test de test. Trouvez des iphones et des ipods de toutes les générations et voyez quels types de précisions vous obtenez et quels types de résultats vous obtenez. Dans beaucoup de façons, cela dépend du type d'application que vous faites, mais si vous voulez fournir des informations sensibles ou importantes en fonction de l'endroit où l'utilisateur est, vous devez vraiment attendre le cadre pour vous donner un endroit presque exact.

+0

Je suis prêt à attendre le meilleur emplacement possible. Ma préoccupation est plus "exactement à quel point cet emplacement est-il indiqué?". Ma conviction est que toutes les précisions rapportées (1000m, 10m, etc.) sont biaisées. – BankStrong

+0

Et vous avez raison à ce sujet, pour des raisons évidentes. – TahoeWolverine

2

Le cadre CoreLocation vous donne le rayon du cercle pour chaque CLLocation que vous obtenez en utilisant les propriétés horizontalAccuracy/verticalAccuracy. Vous pouvez spécifier à la CLLocationManager une propriété desiredAccuracy qui utilisent ces types:

kCLLocationAccuracyNearestTenMeters, kCLLocationAccuracyHundredMeters, kCLLocationAccuracyKilometer, kCLLocationAccuracyThreeKilometers;

Ainsi, vous obtenez des notifications lorsque vous obtenez dans votre gamme désirée. Cela dit, lorsque vous utilisez le CLLocationManager, le premier événement vous est donné dès que possible, puis les événements en cours sont ceux qui satisfont vos conditions.

+0

Je suis moins concentré sur demander la précision désirée et plus intéressé à connaître la «vraie» précision. Lorsque CoreLocation vous dit "que cet emplacement est bon dans un rayon de 100 mètres", cela signifie-t-il vraiment que "cet emplacement sera à moins de 50 mètres 99,9% du temps"? – BankStrong

Questions connexes