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 o Position
struct, 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 vez das 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.
Geocodificar geograficamente um endereço
As coordenadas de latitude e longitude podem ser geocodificadas de forma reversa em um endereço criando uma Geocoder
instância e chamando o Geocoder
GetAddressesForPositionAsync
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 por 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.