Compartilhar via


Geocodificação

Browse sample. Navegue pelo exemplo

Este artigo descreve como você pode usar a interface .NET Multi-platform App UI (.NET MAUI). IGeocoding Essas interfaces fornecem APIs para geocodificar um marcador para coordenadas posicionais e inverter coordenadas geográficas para um marcador.

A implementação padrão da interface está disponível por meio da IGeocodingGeocoding.Default propriedade. A interface e Geocoding a IGeocoding classe estão contidas no Microsoft.Maui.Devices.Sensors namespace.

Introdução

Para acessar a funcionalidade de codificação geográfica, é necessária a seguinte configuração específica da plataforma.

Nenhuma confiuração é necessária.

Usar geocodificação

O exemplo a seguir demonstra como obter as coordenadas de local para um endereço:

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}");

A altitude nem sempre está disponível. Se não estiver disponível, a Altitude propriedade pode ser , ou o valor pode ser null0. Se a altitude estiver disponível, o valor estará em metros acima do nível do mar.

Geocodificação reversa

A geocodificação reversa é o processo de obter marcadores para um conjunto existente de coordenadas. O exemplo a seguir demonstra a obtenção de marcadores:

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 "";
}

Obter a distância entre dois locais

As classes Location e LocationExtensions definem métodos para calcular a distância entre dois locais. Para obter um exemplo de como obter a distância entre dois locais, consulte Distância entre dois locais.