Xamarin.Essentials: GéocodageXamarin.Essentials: Geocoding

La classe Geocoding fournit des API qui permettent de géocoder un repère en coordonnées de position, et d’inverser les coordonnées de géocodage en un repère.The Geocoding class provides APIs to geocode a placemark to a positional coordinates and reverse geocode coordinates to a placemark.

Prise en mainGet started

Pour commencer à utiliser cette API, lisez le Guide de prise en main de Xamarin.Essentials pour vérifier que la bibliothèque est correctement installée et configurée dans vos projets.To start using this API, read the getting started guide for Xamarin.Essentials to ensure the library is properly installed and set up in your projects.

Pour accéder à la fonctionnalité de géocodage, la configuration suivante spécifique à la plateforme est obligatoire.To access the Geocoding functionality the following platform specific setup is required.

Aucune configuration supplémentaire n’est requise.No additional setup required.

Utilisation du géocodageUsing Geocoding

Ajoutez une référence à Xamarin.Essentials dans votre classe :Add a reference to Xamarin.Essentials in your class:

using Xamarin.Essentials;

Obtention des coordonnées de localisation d’une adresse :Getting location coordinates for an address:

try
{
    var address =  "Microsoft Building 25 Redmond WA USA";
    var locations = await Geocoding.GetLocationsAsync(address);

    var location = locations?.FirstOrDefault();
    if (location != null)
    {
        Console.WriteLine($"Latitude: {location.Latitude}, Longitude: {location.Longitude}, Altitude: {location.Altitude}");
    }
}
catch (FeatureNotSupportedException fnsEx)
{
    // Feature not supported on device
}
catch (Exception ex)
{
    // Handle exception that may have occurred in geocoding
}

L’altitude n’est pas toujours disponible.The altitude isn't always available. Dans ce cas, la propriété Altitude peut avoir une valeur null ou égale à zéro.If it is not available, the Altitude property might be null or the value might be zero. Si l’altitude est disponible, la valeur est exprimée en mètres au-dessus du niveau de la mer.If the altitude is available, the value is in meters above sea level.

Utilisation du géocodage inverséUsing Reverse Geocoding

Le géocodage inversé est le processus d’obtention de repères pour un ensemble existant de coordonnées :Reverse geocoding is the process of getting placemarks for an existing set of coordinates:

try
{
    var lat = 47.673988;
    var lon = -122.121513;

    var placemarks = await Geocoding.GetPlacemarksAsync(lat, lon);

    var placemark = placemarks?.FirstOrDefault();
    if (placemark != null)
    {
        var geocodeAddress =
            $"AdminArea:       {placemark.AdminArea}\n" +
            $"CountryCode:     {placemark.CountryCode}\n" +
            $"CountryName:     {placemark.CountryName}\n" +
            $"FeatureName:     {placemark.FeatureName}\n" +
            $"Locality:        {placemark.Locality}\n" +
            $"PostalCode:      {placemark.PostalCode}\n" +
            $"SubAdminArea:    {placemark.SubAdminArea}\n" +
            $"SubLocality:     {placemark.SubLocality}\n" +
            $"SubThoroughfare: {placemark.SubThoroughfare}\n" +
            $"Thoroughfare:    {placemark.Thoroughfare}\n";

        Console.WriteLine(geocodeAddress);
    }
}
catch (FeatureNotSupportedException fnsEx)
{
    // Feature not supported on device
}
catch (Exception ex)
{
    // Handle exception that may have occurred in geocoding
}

Distance entre deux emplacementsDistance between Two Locations

Les classes Location et LocationExtensions définissent des méthodes qui permettent de calculer la distance entre deux emplacements.The Location and LocationExtensions classes define methods to calculate the distance between two locations. Consultez l’article Xamarin.Essentials : Géolocalisation pour obtenir un exemple.See the article Xamarin.Essentials: Geolocation for an example.

APIAPI

Retrouvez d’autres vidéos Xamarin sur Channel 9 et YouTube.Find more Xamarin videos on Channel 9 and YouTube.