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
📒 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