Xamarin.Forms Geocodificação de mapas
O Xamarin.Forms.Maps
namespace fornece uma Geocoder
classe, que converte entre endereços de cadeia de caracteres e coordenadas de latitude e longitude armazenadas em Position
objetos. Para obter mais informações sobre a Position
estrutura, consulte Mapear posição e distância.
Observação
Uma API de geocodificação alternativa está disponível no Xamarin.Essentials. A Xamarin.EssentialsGeocoding
API oferece dados de endereço estruturados ao geocodificar endereços, em oposição às cadeias de caracteres retornadas por essa API. Para obter mais informações, consulte Xamarin.Essentials: Geocodificação.
Geocodificar um endereço
Um endereço de rua pode ser geocodificado em coordenadas de latitude e longitude criando uma Geocoder
instância e chamando o GetPositionsForAddressAsync
Geocoder
método na instância:
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}";
O GetPositionsForAddressAsync
método usa um string
argumento que representa o endereço e retorna de forma assíncrona uma coleção de Position
objetos que podem representar o endereço.
Reverter geocodificação de um endereço
As coordenadas de latitude e longitude podem ser geocodificadas inversamente em um endereço de rua criando uma Geocoder
instância e chamando o GetAddressesForPositionAsync
Geocoder
método na instância:
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();
O GetAddressesForPositionAsync
método usa um Position
argumento composto de coordenadas de latitude e longitude e retorna de forma assíncrona uma coleção de cadeias de caracteres que representam os endereços próximos à posição.