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.