Site icon Blog ARC Optimizer

Récupération des coordonnées et lancement des emplacements de carte dans Xamarin


Découvrez les fantastiques fonctionnalités cartographiques fournies dans Xamarin Essentials: géocodage, géolocalisation et carte!

Il est presque certain qu'à un moment donné de votre carrière de développement d'applications, vous devrez utiliser des cartes, et vous vous demanderez peut-être, comment faire? Comment obtenir les coordonnées et comment les afficher sur la carte? Que faire si je n'ai pas les coordonnées et seulement l'adresse dans le texte?

La bonne nouvelle est que tout cela est totalement possible et dans cet article, vous apprendrez comment le faire! Nous allons le diviser en points suivants:

✔ Comprendre et utiliser le géocodage
✔ Découvrir la géolocalisation
✔ Apprendre à lancer des cartes

Commençons par comprendre et utiliser le géocodage!

Qu'est-ce que le géocodage? 🤔

La classe de géocodage est une API fournie par Xamarin Essentials qui nous permet de traduire un repère en coordonnées et d'inverser cette action.

Obtenons les informations! ]

Commençons par obtenir les coordonnées de localisation d'une adresse. Pour cet exemple, je prendrai l’adresse de Disneyland. 😍 Ensuite, nous verrons notre exemple avec des données sur les champs d'adresse et d'autres données que nous obtiendrons. Plus tard, nous ferons l'action inverse pour que nous voyions la facilité que nous avons lorsqu'il s'agit de traiter les informations en termes d'adresses.

Disneyland 1313 Disneyland Dr, Anaheim, CA 92802, États-Unis [19659013]Découvrons-le! 😎 Découvrons-le! 😎

Pour l'implémenter dans le code, voyons d'abord la structure suivante.

var locations = wait Geocoding . GetLocationsAsync ( "1313 Disneyland Dr, Anaheim, CA 92802, United States" ) ;

Une fois que nous avons ajouté la ligne précédente, obtenons les détails de l'emplacement:

 var  locationDetails  =  locations ? .  FirstOrDefault  () ; 

Et terminé. De là, vous pouvez accéder à toutes les informations disponibles pour votre adresse, y compris:

Nom Description
Précision [19659036] Obtient / définit la précision de l'emplacement. (En mètres)
Altitude Obtient l'altitude. (Si disponible pour les sujets au-dessus du niveau de la mer)
Course Degrés par rapport au nord géographique.
Latitude Obtient / définit la latitude de l'emplacement.
Longitude Obtient / définit la longitude de l'emplacement.
Vitesse Vitesse en mètres par seconde.

⚠ Il est important de savoir que tous sont de type Double .

Nous connaissons maintenant les informations du adresse indiquée ci-dessous (y compris la latitude et la longitude 🎊):

 double latitude = locationDetails.Latitude; // 📍 Latitude: 33.8153959
double longitude = locationDetails.Longitude; // 📍Longitude: -117.9263991
 

Mais que faire si vous n'avez que les coordonnées de l'adresse? 🤔

var repères = attendent Géocodage . GetPlacemarksAsync ( 33.8153959 - 117.9263991 ) ;

Une fois que nous avons ajouté la ligne précédente, récupérons les détails du repère:

 var  placemarkDetails  =  repères ? .  FirstOrDefault  () ; 

Enfin, vous pouvez obtenir toutes les informations affichées ici!

Voyons maintenant la géolocalisation

Qu'est-ce que la géolocalisation? 🤔

Geolocation est une autre API fournie par Xamarin Essentials qui récupère les coordonnées de géolocalisation actuelles de l'appareil.

Platforms settings

Pour l'utiliser, nous avons besoin pour ajouter des paramètres par plate-forme.

📗 Sur Android: Dans votre AndroidManifest.xml allez dans le champ Required permission et ajoutez les autorisations suivantes. [19659077] AccessFineLocation

  • AccessCoarseLocation
  • 📒 Sur iOS: Dans votre Info.plist accédez à l'onglet Source et ajoutez NSLocationWhenInUseUsageDescription key.

     NSLocationWhenInUseUsageDescription 
     Indiquez la raison pour laquelle votre application doit accéder à l'emplacement. 
    

    📘 Sur UWP: Vous devez définir l'autorisation Location pour L'application. Dans votre Package.appxmanifest sélectionnez l'onglet Capabilities et cochez Location .

    The implementation

    Donc, nous avons déjà appliqué les paramètres pour chaque plate-forme avec la méthode GetLastKnownLocationAsync () et maintenant nous pouvons obtenir les informations de localisation actuelle!

     var  location  =   wait  Geolocation .  GetLastKnownLocationAsync  () ; 
    

    Et les informations suivantes seront disponibles: Latitude Longitude Précision Altitude Course Speed ​​ and TimeSpan .

    Enfin, apprenons à le lancer dans Maps [19659007] Ayant appris différentes manières d'obtenir notre position, il manque quelque chose de très important: comment lancer la carte et l'afficher. Voyons voir!

    La fonctionnalité Map fonctionne en appelant la méthode OpenAsync avec Location ou Placemark pour ouvrir avec MapLaunchOptions facultatives.

    Si vous préférez utiliser un emplacement:

     var  location  = [19659054] nouveau   Emplacement  ( Votre latitude ici  Votre longitude ici ) ; 
    

    Ou si vous préférez utiliser Placemark, vous devrez fournir les informations suivantes:

    • CountryName
    • AdminArea
    • Thoroughfare
    • Locality

    Par exemple:

     var  repère  =   nouveau   repère 
       {
        CountryName  =   "États-Unis" 
        AdminArea  =   "Californie" 
        Voie ferrée  =   "Disneyland Drive" 
        Localité  =   "Anaheim" 
      } ; 
    

    Enfin, vous devez l'implémenter, comme ceci:

     public   class   LaunchMap 
     {
       ] public   async  Task  LaunchingMap  () 
       {
        
         var  locationinfo  =   new   Location  (  Votre latitude ici  Votre longitude ici ) ; 
    
        
         var  locationinfo  =   new   Placemark 
           { ]
          CountryName  =   "États-Unis" 
          AdminArea  =   "Californie" 
          Voie ferrée  =   "Disneyland Drive" 
          Localité  =   "Anaheim" 
          } ; 
    
         var  options  =    new   MapLaunchOptions   { Name  =   "Ajoutez votre nom de lieu"  } ; 
    
         attendez  Carte .  OpenAsync  ( locationinfo  options ) ; 
      } 
    } 
    

    Et voilà votre carte! J'espère que vous avez trouvé cela utile – vous pouvez trouver des références pour tout ce que j'ai couvert ci-dessus ici.

    Références




    Source link
    Quitter la version mobile