Question

Je recherche des commentaires, des liens de blog, etc. qui offrent des conseils et astuces pour le développement GPS sur iPhone. J'ai lu et compris l'API, mon application de démonstration est prête à fonctionner, etc., mais j'ai rencontré quelques & "; Bizarreries &"; avec gps sur iphone. Par exemple, il semble que vous recevrez beaucoup moins de mises à jour de localisation lorsque votre iphone entrera dans & "Power Save &"; mode. J'ai lu que vous pouvez lutter contre cela en jouant de la musique dans votre application (je ne sais pas si cela est vrai).

Il semble également que, pour créer un podomètre raisonnable, vous devriez filtrer toute lecture avec une précision horizontale inférieure à 20 mètres. Cela vous semble-t-il correct?

Existe-t-il une liste de contrôle sur le Web pour les pièges de l'iphone gps?

Merci d'avance.

Était-ce utile?

La solution

Je ne connais pas de liste spécifique, mais voici quelques points à garder à l'esprit:

  • Vous ne faites pas de recherches GPS. Vous effectuez des recherches sur l'emplacement de base. L'emplacement principal peut ou non obtenir ses informations du GPS. Beaucoup de gens utilisent encore des iPhones pré-3G n'ayant pas de GPS, et même sur un téléphone 3G, le GPS peut ne pas être disponible dans de nombreux cas (si la personne est à l'intérieur, par exemple). Dans ces cas, le téléphone tentera de trianguler en fonction des tours de téléphonie cellulaire et Core Location renverra le résultat. Ce sera beaucoup moins précis que le GPS.
  • Core Location mettra les données en cache. La première lecture fournie à votre application est probablement une lecture ancienne, qui peut ne pas être exacte, selon que le téléphone a été déplacé ou non. Assurez-vous de vérifier l’horodatage de n’importe quel emplacement et de voir s’il s’agit bien d’avant votre application.
  • Je ne sais pas ce que vous entendez par & "Power Save &"; mode, mais si vous pensez que l'écran est verrouillé / désactivé, cela n'empêche pas Core Location de s'exécuter si votre application est toujours en cours d'exécution. Au contraire, il est facile de vider la batterie de votre téléphone beaucoup plus rapidement que vous ne le pensiez si vous verrouillez le téléphone lorsqu'une application utilisant Core Location est en cours d'exécution, car le téléphone continuera à mettre à jour l'application lorsque de nouvelles données de localisation sont disponibles. Vous pouvez éviter cela dans votre application en écoutant UIApplicationWillResignActiveNotification pour détecter le verrouillage de l'écran et UIApplicationDidBecomeActiveNotification pour détecter le déverrouillage.
  • L’acquisition de résultats plus précis prendra plus de temps, car plus vous attendez, meilleurs seront les résultats, jusqu’à une limite. Si vous décidez que vous devez vous trouver à moins de N mètres, déterminez combien de temps l'utilisateur devra attendre jusqu'à ce que le téléphone reste à sa place.

Vous ne pouvez répondre à la question de savoir si 20 mètres sont suffisamment précis, en fonction de la manière dont vous envisagez d’utiliser votre application. Testez l'application et voyez si elle fonctionne comme vous le souhaitez.

Autres conseils

Tom a eu une bonne réponse (je voulais surtout noter que le retour habituel de la première valeur peut être un ancien emplacement mis en cache), mais il me reste encore quelques choses à ajouter:

  • Vous pouvez indiquer au responsable de la localisation de s'arrêter et de recommencer si vous voulez le forcer à vous envoyer au moins une mise à jour supplémentaire.
  • Si vous ne le saviez pas, il existe des méthodes pratiques dans CLLocation pour vous indiquer la distance entre deux emplacements.
  • En tant que note documentaire, vous devez implémenter locationManager: didFailWithError: même si vous n’avez pas à le faire (ne serait-ce que pour arrêter les mises à jour du gestionnaire d’emplacement pendant un certain temps).
  • Testez minutieusement les scénarios dans lesquels l'utilisateur interdit les mises à jour d'emplacement pour votre application!
  • Très, très rarement, vous pouvez obtenir des mises à jour hors service (c’est-à-dire que vous obtenez un emplacement plus précis suivi d’un emplacement légèrement moins précis datant de plus tôt)
  • Le simulateur vous donnera une mise à jour de votre position, mais indiquera toujours votre position en tant que siège Apple.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top