Compartilhar via


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 GetPositionsForAddressAsyncGeocoder 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 GetAddressesForPositionAsyncGeocoder 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.