Le décodage de la CLLocationAccuracy de const
suivantes sont répertoriés dans CLLocation.h, mais de mon expérience, elles sont trompeuses noms - peut-être pensé à l'origine pour servir à deux fins, 1. pour tester la précision de la localisation est retourné, mais aussi à 2. pour définir comment dur l'emplacement du gestionnaire de travaux, plus précisément ce qui est permis (gps (combien de chaînes sam), comment dur le wifi fonctionne, la triangulation etc.
extern const CLLocationAccuracy kCLLocationAccuracyBestForNavigation; //(raw value: -2)
extern const CLLocationAccuracy kCLLocationAccuracyBest; //(raw value: -1)
extern const CLLocationAccuracy kCLLocationAccuracyNearestTenMeters; //(raw value: 10)
extern const CLLocationAccuracy kCLLocationAccuracyHundredMeters; //(raw value: 100)
extern const CLLocationAccuracy kCLLocationAccuracyKilometer; //(raw value: 1000)
extern const CLLocationAccuracy kCLLocationAccuracyThreeKilometers; //(raw value: 3000)
J'aimerais prendre un coup d'oeil à CLLocation.m, mais comme c'est pas susceptible de se produire de sitôt - quelqu'un aurait-il une quelconque des essais sur le terrain en montrant ce qu'ils pensent qui se passe avec ces différents modes.
c'est à dire, kCLLocationAccuracyBest = 10 par satellite (chaînes/trunks?), 100% de la puissance du wifi etc..
Je suis une sorte de deviner à pailles ici - je pense que c'est le type d'informations que apple aurait fourni-
ce que je veux vraiment savoir, c'est ce qui se passe réellement avec kCLLocationAccuracyThreeKilometers
par rapport à la pile de tirage est le gps? 1 sat coffre? wifi activé? wifi sur une minuterie? qui sait? Je sais que j'aimerais
Vous devez vous connecter pour publier un commentaire.
Je suis d'accord avec Olie que de cacher les détails de l'algorithme est destiné à protéger le développeur de l'application à s'inquiéter de la façon dont l'emplacement est déterminé. Cela dit, je crois qu'il est encore raisonnable de se poser la question: "quelles sont la puissance conséquences de mon choix de la précision?".
J'ai un peu d'informations qui pourraient guider votre décision sur laquelle utiliser, mais je ne sais pas les détails réels de la Pomme de mise en œuvre.
Tout d'abord, supposons que la lecture devient de plus en plus précis, le système aura besoin d'utiliser plus de puissance-faim radios. Par exemple, le GPS sera requis pour le plus détaillé des lectures, à l'intérieur de 100 Mètres, et il utilise le plus d'énergie.
Ici est une supposition éclairée sur le mécanisme utilisé pour déterminer l'exactitude. La liste est ordonnée avec (1) étant le plus élevé, le drainage de la batterie.
Au moment de choisir, il est recommandé par Apple que vous ne sélectionner que les plus gros grains de précision que votre application peut se permettre.
Espère que ça aide, une.peu.
kCLLocationAccuracyHundredMeters
c'est principalement wifi et cellTower.kCLLocationAccuracyThreeKilometer
nous avons peut-être regarder dans les 1-2 tour de toutes les 5-6 minutes, mais aveckCLLocationAccuracyKilometer
nous avons peut-être regarder dans les 3-4 tours pour obtenir une meilleure triangulation et de vérifier toutes les 2 minutes donc, assurez-vous que nous sommes de ne pas manquer l'1km seuil. Probablement l'intervalle entre la vérification sont affectés par la vitesse, c'est à dire si vous êtes à la va vite, puis il va vérifier toutes les 1-2 minutesDans le quartier des affaires de la ville, du wifi et de la cellule de la tour de la triangulation sont tous deux très bons. Banlieues résidentielles ils ne sont pas aussi bonnes. Dans les zones rurales, on a à peine le travail si elles fonctionnent.
GPS ne fonctionne pas très bien à l'intérieur, et peut prendre un temps très long pour obtenir un correctif à tous sans cellule de la tour de l'aide (voire de 20 minutes!!). Elle prend autant de temps pour les satellites de diffusion de renseignements suffisants pour déterminer votre emplacement, et il peut y avoir des pertes de paquets (nuages, des bâtiments, des arbres, des montagnes, etc). Il est intéressant de noter qu'un bon haut de gamme GPS vous avez une antenne de la taille d'un ballon-panier, pas de GPS de poche peut obtenir un signal parfait.
Même à l'extérieur, avec une parfaite signal GPS est imprécis lorsque vous changer de direction rapidement (comme sur l'autoroute ou du vent de la route). Le BestForNavigation paramètre utilise l'accéléromètre et le gyroscope pour compenser cela.
Actuellement, la plate-forme iOS utilise:
Vous donner une précision en mètres que vous avez besoin (les constantes sont tout simplement belles noms de mètres), et il va utiliser une combinaison de ce qui précède, pour vous obtenir ce niveau de précision le plus rapide possible de fixer et de plus faible puissance possible de dessiner. La technique qu'il utilise volonté de changement, d'un utilisateur à un autre, et varie selon la partie du monde où l'utilisateur se tient debout à l'époque.
kCLLocationAccuracyHundredMeters
ie WiFi en utilisant la triangulation, puis ce qui se passe quand vous êtes dans une région éloignée? Serait-il un repli vers le GPS et le drain de la batterie ou celltowers w/ dégradants de la précision? Et qu'entendez-vous par Tour Cellulaire: presque aucun pouvoir dessiner, et fonctionne bien dans la ville. Pas si grande dans les zones rurales. N'existe pas sur certains matériels. entendez-vous pas chaque cellule de la tour a le matériel nécessaire pour la triangulation?Le point de l'ensemble de l'aide externe plutôt que d'exposer ce qui se passe réellement est que les sous-gerwerkkins peuvent changer et votre code n'a pas à s'inquiéter à ce sujet pour ramasser les améliorations.
Cela dit, CLLocationAccuracy est typedef-ed à double, donc je pense qu'il est juste de deviner que kCLLocationAccuracyNearestTenMeters = 10.0, kCLLocationAccuracyHundredMeters = 100.0, etc. Le mieux est probable, soit 0, 1 ou kCLLocationAccuracyNearestTenMeters, et BestForNavigation est probablement l'un ils ont jeté à aider les gens comme TomTom, etc.
Si vous voulez VRAIMENT savoir, vous pouvez imprimer les valeurs ce sont juste des doubles.
Je ne crois pas que le nombre de satellites ou de la puissance du wifi est modifié en fonction de votre niveau de précision désiré. La façon dont je comprends les algorithmes, il est une approximation de calcul qui, le plus de fois dans la boucle, le plus précis qu'il obtient. Par conséquent, moins précise juste bails plus tôt.
Mais, encore une fois, le point le plus important est: il n'a pas d'importance. En particulier, Apple n'a pas décrire ce qui se passe derrière les coulisses, car cela ne fait pas partie de la conception. La conception est la suivante: si vous utilisez kCLLocationAccuracyKilometer, vous obtiendrez une réponse dans un kilomètre, etc. Et Apple est maintenant libre de changer la façon dont ils arrivent à que sans vous prendre soin. Ce type d'isolation est un principe de base de la programmation orientée objet.
EDIT:
CORRECTION -- je suis juste en train de regarder la WWDC session sur l'emplacement (Session 115) et, à environ 22:00 ou alors, il raconte comment, lors de l'utilisation de BestForNavigation, ce qui ajoute dans certains gyroscope de correction (si disponible.) Cependant, il prévient que, tandis que c'est la puissance & UC, et doit être utilisé uniquement lorsque cela est nécessaire, comme avec le tour-par-tour de navigation.
Je ne suis pas sûr de savoir comment beaucoup plus que je peux en parler publiquement, mais, si vous êtes un développeur, vous pouvez obtenir les sessions à partir d'iTunes U.
(C'est de la WWDC 2010, a btw.)