Codificación geográfica
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.