Compartir a través de


Codificación geográfica

Browse sample.Examinar la muestra.

En este artículo se describe cómo puede usar la interfaz IGeocoding de .NET Multi-platform App UI (.NET MAUI). Esta interfaz proporciona las API para geocodificar una marca de posición en una coordenada de posición e invertir las coordenadas de código geográfico a una marca de posición.

La implementación predeterminada de la interfaz IGeocoding está disponible a través de la propiedad Geocoding.Default. Tanto la interfaz IGeocoding como la clase Geocoding están contenidas en el espacio de nombres Microsoft.Maui.Devices.Sensors.

Introducción

Para acceder a la funcionalidad de Geocodificación, se requiere la siguiente configuración específica para la plataforma.

No es necesario realizar ninguna configuración.

Uso de la geocodificación

En el ejemplo siguiente se muestra cómo puedes obtener las coordenadas de ubicación de una dirección:

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

La altitud no siempre está disponible. Si no está disponible, es posible que la propiedad Altitude sea null o que el valor sea 0. Si lo está, el valor se expresa en metros sobre el nivel del mar.

Geocodificación inversa

La geocodificación inversa es el proceso de obtener marcas de posición para un conjunto de coordenadas existente. En el ejemplo siguiente se muestra cómo obtener marcas de posición:

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

Obtener la distancia entre dos ubicaciones

Las clases Location y LocationExtensions definen métodos para calcular la distancia entre dos ubicaciones. Para ver un ejemplo de cómo obtener la distancia entre dos ubicaciones, consulta Distancia entre dos ubicaciones.