Udostępnij za pośrednictwem


Geokodowanie

Browse sample. Przeglądanie przykładu

W tym artykule opisano sposób używania interfejsu użytkownika aplikacji wieloplatformowej platformy .NET (.NET MAUI). IGeocoding Te interfejsy udostępniają interfejsy API do geokodowania znaku zastępczego do współrzędnych pozycyjnych i współrzędnych odwrotnego kodu geograficznego do znaku zastępczego.

Domyślna implementacja interfejsu IGeocoding jest dostępna za pośrednictwem Geocoding.Default właściwości . Zarówno interfejs, jak IGeocoding i Geocoding klasa są zawarte w Microsoft.Maui.Devices.Sensors przestrzeni nazw.

Rozpocznij

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

Nie jest wymagana żadna konfiguracja.

Korzystanie z geokodowania

W poniższym przykładzie pokazano, jak uzyskać współrzędne lokalizacji dla adresu:

string address = "Microsoft Building 25 Redmond WA USA";
IEnumerable<Location> locations = await Geocoding.Default.GetLocationsAsync(address);

Location location = locations?.FirstOrDefault();

if (location != null)
    Console.WriteLine($"Latitude: {location.Latitude}, Longitude: {location.Longitude}, Altitude: {location.Altitude}");

Wysokość nie zawsze jest dostępna. Jeśli nie jest dostępna, Altitude właściwość może mieć nullwartość , lub może to być 0wartość . Jeśli wysokość jest dostępna, wartość jest wyrażona w metrach powyżej poziomu morza.

Odwrotne geokodowanie

Odwrotne geokodowanie to proces pobierania oznaczeń zastępczych dla istniejącego zestawu współrzędnych. W poniższym przykładzie pokazano pobieranie oznaczeń zastępczych:

private async Task<string> GetGeocodeReverseData(double latitude = 47.673988, double longitude = -122.121513)
{
    IEnumerable<Placemark> placemarks = await Geocoding.Default.GetPlacemarksAsync(latitude, longitude);

    Placemark placemark = placemarks?.FirstOrDefault();

    if (placemark != null)
    {
        return
            $"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";

    }

    return "";
}

Uzyskiwanie odległości między dwiema lokalizacjami

Klasy Location i LocationExtensions definiują metody obliczania odległości między dwiema lokalizacjami. Aby zapoznać się z przykładem uzyskiwania odległości między dwiema lokalizacjami, zobacz Odległość między dwiema lokalizacjami.