Geocodificação
Este artigo descreve como você pode usar a interface .NET Multi-platform App UI (.NET MAUI). IGeocoding Essas interfaces fornecem APIs para geocodificar um marcador para coordenadas posicionais e inverter coordenadas geográficas para um marcador.
A implementação padrão da interface está disponível por meio da IGeocoding
Geocoding.Default propriedade. A interface e Geocoding
a IGeocoding
classe estão contidas no Microsoft.Maui.Devices.Sensors
namespace.
Introdução
Para acessar a funcionalidade de codificação geográfica, é necessária a seguinte configuração específica da plataforma.
Nenhuma confiuração é necessária.
Usar geocodificação
O exemplo a seguir demonstra como obter as coordenadas de local para um endereço:
string address = "Microsoft Building 25 Redmond WA USA";
IEnumerable<Location> locations = await Geocoding.Default.GetLocationsAsync(address);
Location location = locations?.FirstOrDefault();
if (location != null)
Console.WriteLine($"Latitude: {location.Latitude}, Longitude: {location.Longitude}, Altitude: {location.Altitude}");
A altitude nem sempre está disponível. Se não estiver disponível, a Altitude propriedade pode ser , ou o valor pode ser null
0
. Se a altitude estiver disponível, o valor estará em metros acima do nível do mar.
Geocodificação reversa
A geocodificação reversa é o processo de obter marcadores para um conjunto existente de coordenadas. O exemplo a seguir demonstra a obtenção de marcadores:
private async Task<string> GetGeocodeReverseData(double latitude = 47.673988, double longitude = -122.121513)
{
IEnumerable<Placemark> placemarks = await Geocoding.Default.GetPlacemarksAsync(latitude, longitude);
Placemark placemark = placemarks?.FirstOrDefault();
if (placemark != null)
{
return
$"AdminArea: {placemark.AdminArea}\n" +
$"CountryCode: {placemark.CountryCode}\n" +
$"CountryName: {placemark.CountryName}\n" +
$"FeatureName: {placemark.FeatureName}\n" +
$"Locality: {placemark.Locality}\n" +
$"PostalCode: {placemark.PostalCode}\n" +
$"SubAdminArea: {placemark.SubAdminArea}\n" +
$"SubLocality: {placemark.SubLocality}\n" +
$"SubThoroughfare: {placemark.SubThoroughfare}\n" +
$"Thoroughfare: {placemark.Thoroughfare}\n";
}
return "";
}
Obter a distância entre dois locais
As classes Location e LocationExtensions definem métodos para calcular a distância entre dois locais. Para obter um exemplo de como obter a distância entre dois locais, consulte Distância entre dois locais.