Compartir vía


Geocodificación de mapa Xamarin.Forms

El espacio de nombres Xamarin.Forms.Maps proporciona una clase Geocoder, que convierte entre direcciones de cadena y coordenadas de latitud y longitud que se almacenan en objetos Position. Para obtener más información sobre la estructura Position, vea Posición y distancia de mapa.

Nota:

Hay disponible una API de geocodificación alternativa en Xamarin.Essentials. La API de Xamarin.EssentialsGeocoding ofrece datos de direcciones estructurados al geocodificación de direcciones, en lugar de las cadenas devueltas por esta API. Para obtener más información, vea Xamarin.Essentials: Geocodificación.

Geocodificación de una dirección

Una dirección postal se puede codificar geográficamente en coordenadas de latitud y longitud mediante la creación de una instancia Geocoder y la llamada al método GetPositionsForAddressAsync en la instancia Geocoder:

using Xamarin.Forms.Maps;
// ...
Geocoder geoCoder = new Geocoder();

IEnumerable<Position> approximateLocations = await geoCoder.GetPositionsForAddressAsync("Pacific Ave, San Francisco, California");
Position position = approximateLocations.FirstOrDefault();
string coordinates = $"{position.Latitude}, {position.Longitude}";

El método GetPositionsForAddressAsync toma un argumento string que representa la dirección y devuelve de forma asincrónica una colección de objetos Position que podrían representar la dirección.

Geocodificación inversa de una dirección

Las coordenadas de latitud y longitud se pueden codificar geográficamente en una dirección postal mediante la creación de una instancia Geocoder y la llamada al método GetAddressesForPositionAsync en la instancia Geocoder:

using Xamarin.Forms.Maps;
// ...
Geocoder geoCoder = new Geocoder();

Position position = new Position(37.8044866, -122.4324132);
IEnumerable<string> possibleAddresses = await geoCoder.GetAddressesForPositionAsync(position);
string address = possibleAddresses.FirstOrDefault();

El método GetAddressesForPositionAsync toma un argumento Position formado por coordenadas de latitud y longitud y devuelve de forma asincrónica una colección de cadenas que representan las direcciones cerca de la posición.