Xamarin.Essentials: géocodage

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.

Démarrage

Pour commencer à utiliser cette API, lisez le guide de prise en main pour Xamarin.Essentials vous assurer que la bibliothèque est correctement installée et configurée dans vos projets.

Pour accéder à la fonctionnalité de géocodage, la configuration suivante spécifique à la plateforme est obligatoire.

Aucune configuration supplémentaire n’est requise.

Utilisation du géocodage

Ajoutez une référence à Xamarin.Essentials votre classe :

using Xamarin.Essentials;

Obtention des coordonnées de localisation d’une adresse :

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. Dans ce cas, la propriété Altitude peut avoir une valeur null ou égale à zéro. Si l’altitude est disponible, la valeur est exprimée en mètres au-dessus du niveau de la mer.

Utilisation du géocodage inversé

Le géocodage inversé est le processus d’obtention de repères pour un ensemble existant de coordonnées :

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 emplacements

Les classes Location et LocationExtensions définissent des méthodes qui permettent de calculer la distance entre deux emplacements. Consultez l’article Xamarin.Essentials: Géolocalisation pour un exemple.

API

Retrouvez d’autres vidéos Xamarin sur Channel 9 et YouTube.