[WP7] GPS Helper

Le développement d’une application GPS peut être laborieux. Certains Best Practices sont à respecter :

  • Il faut, par exemple, demander à l’utilisateur s’il souhaite être localisé, lui permettre de modifier ce choix en tout temps.
  • Pendant la recherche d’une localisation nous pouvons être amené à montrer le chargement.
  • En fonction du matériel, du réseau GPS disponible, on peut être amené à afficher des statuts différents.

J’ai donc commencé une petite library pour simplifier tout ça ( http://wp7gpshelper.codeplex.com/ ). Une fois le GPSToolKit instancié :

  • Vous pourrez démarrer le GPS en appelant simplement la méthode Start(). Les vérifications sur les autorisations se font automatiquement. Le GPS ne démarrera pas si l’utilisateur ne le souhaite pas.
  • Vous abonner aux évènements habituels StatusChanged et LocationChanged.
  • Un booléen IsIndeterminate permet de savoir si le GPS est en train de chercher ou non. L’évènement IsIndeterminateChanged a été ajouté.
  • La propriété GPSParam.IsGpsAuthorized est sérialisée dans l’isolated storage et permet donc de savoir si l’utilisateur a autorisé ou non le GPS.

Vous pourrez ajouter par vous-même un bouton bindé sur le GPSParam.IsGpsAuthorized dans les options de votre application. Pensez par contre à préciser les politiques de confidentialités de votre application vis-à-vis des coordonnées GPS.

J’ai aussi inclus une classe pour faciliter l’implémentation du Geocoding.  Il suffit maintenant d’instancier la classe Geocoding en lui passant votre credential Bing Map (vous verrez comment l’avoir dans ce précédent article : https://onefor4.wordpress.com/2011/01/02/geocoding-en-silverlight-avec-bing-map/), de vous abonner à l’évènement souhaité en fonction de ce que vous voulez faire (GeocodeRequestCompleted ou ReverseGeocodeRequestCompleted) et d’appeler votre requête (idem, MakeReverseGeocodeRequest ou MakeGeocodeRequest) avec les paramètres adéquats.

Cette library est toujours en test. J’ai essayé de commenter le plus possible que cela puisse aussi servir d’exemple.
Il y a juste la partie où je récupère et retourne la localisation dont je ne suis pas très fier. Pour être sûr de récupérer les points depuis le GPS et non depuis le cache ou le réseau, j’évince volontairement les 4 premiers points récupérés. S’il y a de meilleures techniques, je suis preneur Sourire.

Par JC VASSELON

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s