Udostępnij za pośrednictwem


Xamarin.Essentials:Geokodowanie

Klasa Geokoding udostępnia interfejsy API do geokodowania znaku zastępczego do współrzędnych pozycyjnych i współrzędnych odwrotnego kodu geograficznego do znaku zastępczego.

Rozpocznij

Aby rozpocząć korzystanie z tego interfejsu API, przeczytaj przewodnik wprowadzający , Xamarin.Essentials aby upewnić się, że biblioteka jest prawidłowo zainstalowana i skonfigurowana w projektach.

Aby uzyskać dostęp do funkcji geokodowania , wymagana jest następująca konfiguracja specyficzna dla platformy.

Nie jest wymagana żadna dodatkowa konfiguracja.

Korzystanie z geokodowania

Dodaj odwołanie do Xamarin.Essentials klasy:

using Xamarin.Essentials;

Pobieranie współrzędnych lokalizacji dla adresu:

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
}

Wysokość nie zawsze jest dostępna. Jeśli jest niedostępna, Altitude właściwość może być null lub wartość może być równa zero. Jeśli wysokość jest dostępna, wartość jest wyrażona w metrach powyżej poziomu morza.

Używanie odwrotnego geokodowania

Odwrotne geokodowanie to proces pobierania oznaczeń zastępczych dla istniejącego zestawu współrzędnych:

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
}

Odległość między dwiema lokalizacjami

Klasy Location i LocationExtensions definiują metody obliczania odległości między dwiema lokalizacjami. Zobacz artykuł Xamarin.Essentials: Geolokalizacja , aby zapoznać się z przykładem.

interfejs API

Więcej filmów na platformie Xamarin można znaleźć w witrynach Channel 9 i YouTube.