La géolocalisation est un aspect crucial du développement mobile. Heureusement, il est facile de localiser les utilisateurs sur Windows Phone 8! Ce tutoriel va vous montrer comment faire en montrant le Géolocateur
classe.
Le kit de développement logiciel Windows Phone est une plate-forme de développement très puissante qui permet aux développeurs de créer d’excellentes applications avec le cadre Silverlight. La mise à niveau récente du kit de développement logiciel (SDK) vers la version 8.0 (Windows Phone 8) apporte une foule de modifications facilitant certaines tâches génériques. L’application Location API est l’un des domaines dans lesquels Windows Phone 8 a été amélioré. Dans les versions précédentes du kit de développement logiciel Windows Phone, obtenir l'emplacement actuel de l'utilisateur était un peu désordonné, mais la technique actuelle pour ce faire a été perfectionnée et rendue un peu plus directe..
La nouvelle technique utilise l'appel de méthode ASYNC de Microsoft, qui améliore les performances des applications tout en permettant d'accéder à l'emplacement d'un utilisateur. Regardons de plus près cette nouvelle façon d'accéder à l'emplacement actuel sur Windows Phone 8.
Pour essayer ce tutoriel, je suppose que vous avez une compréhension de base de la plate-forme Windows Phone. Je voudrais aussi croire que vous avez une compréhension de base du XAML et du C #, car c’est le langage avec lequel nous allons écrire notre application. Vous devez également disposer de Visual Studio 2012 ou version ultérieure avec le SDK Windows Phone 8 et d'un émulateur Windows Phone opérationnel installé sur votre ordinateur local. Vous pouvez également utiliser un périphérique Windows Phone réel à la place de l'émulateur..
Ouvrez Visual Studio et créez un nouveau projet Windows Phone avec Fichier -> Nouveau -> Projet
.
Dans le volet gauche de la nouvelle fenêtre de projet, veillez à sélectionner l'option Windows Phone dans la sous-catégorie Visual C #. Choisissez Windows Phone App dans la fenêtre principale et nommez le projet comme vous le souhaitez, puis cliquez sur OK lorsque vous avez terminé..
Maintenant que nous avons créé notre application, nous pouvons nous concentrer sur notre objectif principal: obtenir l'emplacement actuel de l'utilisateur et l'afficher à l'écran. En termes simples, notre application ne comportera que 2 éléments, un bouton et un bloc de texte. Le bouton serait ce sur quoi nous cliquerions pour indiquer à notre application de saisir l'emplacement actuel d'un utilisateur, et le TextBlock afficherait les coordonnées géographiques de notre emplacement actuel..
Continuons et créons notre interface utilisateur simple. Utilisez la Boîte à outils Visual Studio pour faire glisser un bouton et un TextBlock n’importe où sur l’écran. À ce stade, votre application doit avoir un TextBlock et un bouton dans son interface utilisateur..
Cela devrait ressembler à ceci:
Je vous recommande fortement de modifier la propriété name de votre bouton et de votre TextBlock afin d'être cohérent avec ce tutoriel. Définissez le nom du bouton sur MyButton et celui du TextBlock sur MyTextBlock à partir de la fenêtre de code XAML..

À ce stade, notre interface utilisateur est prête et nous pouvons commencer et écrire la logique de notre application. Double-cliquez sur le bouton dans la vue du concepteur. Visual Studio doit automatiquement accéder à la vue du code avec une méthode déjà créée..
void privé MyButton_Click (expéditeur d'objet, RoutedEventArgs e)
Cette méthode générée est une méthode de délégué ou de rappel pour l'événement click de notre bouton. Cela signifie que le code dans cette méthode ne sera exécuté que lorsque notre bouton sera cliqué. Pour nous aligner sur notre objectif, nous placerions le code correspondant à notre emplacement actuel dans cette méthode, car nous voulons que notre emplacement actuel soit déterminé chaque fois que nous cliquons sur notre bouton. Pour ce faire, nous allons utiliser les classes GeoLocator et GeoPosition.
La classe GeoLocator aide à obtenir notre position actuelle, effectue toutes les interactions avec le GPS / réseau et renvoie un objet GeoPosition. D'autre part, la classe GeoPosition nous fournit un moyen de consommer les données renvoyées par le GeoLocator. Fondamentalement, considérez GeoLocator comme un outil de demande et l’objet GeoPosition comme un outil de réponse. Ces classes permettent également de personnaliser nos demandes et nos réponses. Par exemple, nous pouvons indiquer au géolocateur à quel point nous voulons que notre position actuelle soit précise (au mètre près) et à quelle vitesse nous voulons que notre position actuelle soit interrogée..
J'ai écrit une méthode qui aide à obtenir notre emplacement actuel et je l'expliquerai en détail un peu plus tard. Pour l'instant, ajoutez la référence d'espace de nom suivante à votre: Windows.Devices.Geolocation;
. Ensuite, copiez l'extrait de code ci-dessous et collez-le dans:
Vovide asynchrone privé GetCurrentLocation ()  Geolocator locationFinder = new Geolocator  DesiredAccuracyInMeters = 50, DesiredAccuracy = PositionAccuracy.Default; try Geoposition currentLocation = attend locationFinder.GetGeopositionAsync (maximumAge: TimeSpan.FromSeconds (120), délai d’expiration: TimeSpan.FromSeconds (10)); Longitude de chaîne = currentLocation.Coordinate.Longitude.ToString ("0.00"); String latitude = currentLocation.Coordinate.Latitude.ToString ("0.00"); MyTextBlock.Text = "Long:" + longitude + "Lat:" + latitude;   catch (UnauthorizedAccessException)   MessageBox.Show ("Et une exception s'est produite"); 
Cette méthode fait tout le travail pour nous et va même jusqu'à définir notre propriété text TextBlock pour nous. Examinons de près ce que fait la méthode.
Premièrement, nous créons un nouvel objet GeoLocator appelé locationFinder
. Nous lui indiquons d’abord la précision en mètres que nous voulons pour notre position et nous définissons la précision avec laquelle nous voulons le résultat..
Géolocalisateur locationFinder = nouveau géolocateur  DesiredAccuracyInMeters = 50, DesiredAccuracy = PositionAccuracy.Default;
Ensuite, nous instancions un objet GeoPosition appelé Localisation actuelle
dans un bloc try / catch en cas d'exception. Nous l'attribuons ensuite à l'objet GeoPosition renvoyé que notre objet GeoLocator renvoie à l'aide de la commande GetGeoPostionAsync
méthode.
Geoposition currentLocation = wait locationFinder.GetGeopositionAsync (maximumAge: TimeSpan.FromSeconds (120), timeout: TimeSpan.FromSeconds (10)); LongitudeChaine longitude = currentLocation.Coordinate.Longitude.ToString ("0.00"); Latitude Latitude de chaîne = currentLocation.Coordinate.Latitude.ToString ("0.00");
Enfin, nous obtenons nos longitude et latitude renvoyées et configurons notre TextBlock pour afficher ces valeurs.
MyTextBlock.Text = "Lon:" + longitude + "Lat:" + latitude;
C'est aussi simple que ça! Il reste encore quelques choses à faire avant de tester notre application. Premièrement, nous devons appeler notre GetCurrentLocation
méthode dans la méthode déléguée de notre bouton qui a été créé pour nous initialement.
void privé MyButton_Click (expéditeur d'objet, RoutedEventArgs e) GetCurrentLocation ();
Cela signifie que chaque fois que nous cliquons sur notre bouton, notre GetCurrentLocation
La méthode sera exécutée et notre emplacement actuel serait récupéré pour nous.
Enfin, nous devons demander l'autorisation d'utiliser l'API Location sur Windows Phone. Nous faisons cela en éditant notre fichier manifeste. Dans l'explorateur de solutions, recherchez une entrée intitulée Propriétés et basculez-la pour afficher ses sous-entrées. L'un des noms de fichier des sous-entrées doit être WMAppManifest.xml. Double-cliquez dessus et vous verrez une interface graphique avec quatre onglets, l'un d'eux est intitulé Capacités. Sélectionnez cet onglet et vous devriez voir quelque chose comme ça:
Maintenant, vérifiez l'option ID_CAP_LOCATION
si décoché et enregistrez votre projet (CTRL + S). Ceci fait, vous pouvez fermer la fenêtre WMAppManifest.xml. Ce que nous venons de faire est explicitement la permission d’autoriser notre application à utiliser l’outil GPS / localisation de Windows Phone. Ceci fait, nous pouvons maintenant exécuter notre application pour la première fois.!
Si vous utilisez un appareil Windows Phone physique à des fins de test, assurez-vous que l'option Emplacement est activée et que vous disposez d'une connexion Internet valide via un réseau Wifi ou Mobile. Ceci est très important et obligatoire pour que notre application fonctionne. Si vous utilisez un émulateur Windows Phone, assurez-vous également que l'emplacement est également activé sur l'émulateur et que la connexion Internet est opérationnelle..
Pour lancer l'application, recherchez le bouton de lecture vert dans le menu de visual studio et sélectionnez votre émulateur ou l'option Périphérique si vous utilisez un combiné. Assurez-vous que la configuration de la solution à droite du bouton est définie sur Debug..
Cliquez sur le bouton vert pour lancer l'application. L'application devrait lancer et afficher la page sur laquelle nous avons dessiné notre interface utilisateur. Maintenant, cliquez sur le bouton pour commander l'application pour obtenir nos coordonnées de localisation actuelles et vous devriez être présenté avec un résultat qui ressemble à ceci:
Vous avez peut-être déjà remarqué que nous avons réussi à atteindre nos objectifs et que notre position actuelle nous est affichée. Vous pouvez voir à quel point il était facile d'y parvenir avec une programmation aussi minimale! Il s’agit d’une opération très simple et pourtant importante dans le développement de Windows Phone. N'hésitez pas à jouer avec les paramètres personnalisables des classes GeoLocator et GeoPosition. Merci d'avoir lu!