Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Importante
As APIs da plataforma UWP MapControl e Windows Maps (Windows.Services.Maps.*) foram preteridas e podem não estar disponíveis em versões futuras do Windows. Para obter mais informações, consulte Recursos para funcionalidades descontinuadas.
Importante
Descontinuação do serviço Bing Maps for Enterprise
O MapControl UWP e os serviços de mapa dos namespaces Windows.Services.Maps dependem do Bing Maps. O Bing Maps for Enterprise foi preterido e será desativado, quando o MapControl e os serviços não receberão mais dados.
Para obter mais informações, consulte o Centro de Desenvolvedores do Bing Maps e a documentação do Bing Maps .
Observação
MapControl e serviços de mapa exigem uma chave de autenticação de mapas chamada MapServiceToken. Para obter mais informações sobre como obter e definir uma chave de autenticação de mapas, consulte Solicitar uma chave de autenticação de mapas.
Este guia mostra como converter endereços de rua em localizações geográficas (geocodificação) e converter localizações geográficas em endereços (geocodificação inversa) chamando os métodos da classe MapLocationFinder
As aulas envolvidas em geocodificação e geocodificação reversa estão organizadas da seguinte forma.
- A classe MapLocationFinder contém métodos que manipulam geocodificação (FindLocationsAsync) e geocodificação reversa (FindLocationsAtAsync).
- Esses métodos retornam uma MapLocationFinderResult instância.
- A propriedade Locations do MapLocationFinderResult expõe uma coleção de objetos MapLocation.
- objetos MapLocation têm tanto uma propriedade Address, que expõe um objeto MapAddress representando um endereço de rua, como uma propriedade Point, que expõe um objeto Geopoint que representa uma localização geográfica.
Importante
Você deve especificar uma chave de autenticação de mapas antes de poder usar os serviços de mapa. Para obter mais informações, consulte Solicitar uma chave de autenticação de mapas.
Obter uma localização (Geocódigo)
Esta seção mostra como converter um endereço ou um nome de lugar em uma localização geográfica (geocodificação).
- Chame uma das sobrecargas do método
da classe de MapLocationFinderFindLocationsAsync com um nome de lugar ou endereço. - O método FindLocationsAsync retorna um objeto MapLocationFinderResult.
- Use a propriedade Locations do MapLocationFinderResult para expor uma coleção MapLocation objetos. Pode haver vários objetos MapLocation porque o sistema pode encontrar vários locais que correspondem à entrada dada.
using Windows.Services.Maps;
using Windows.Devices.Geolocation;
...
private async void geocodeButton_Click(object sender, RoutedEventArgs e)
{
// The address or business to geocode.
string addressToGeocode = "Microsoft";
// The nearby location to use as a query hint.
BasicGeoposition queryHint = new BasicGeoposition();
queryHint.Latitude = 47.643;
queryHint.Longitude = -122.131;
Geopoint hintPoint = new Geopoint(queryHint);
// Geocode the specified address, using the specified reference point
// as a query hint. Return no more than 3 results.
MapLocationFinderResult result =
await MapLocationFinder.FindLocationsAsync(
addressToGeocode,
hintPoint,
3);
// If the query returns results, display the coordinates
// of the first result.
if (result.Status == MapLocationFinderStatus.Success)
{
tbOutputText.Text = "result = (" +
result.Locations[0].Point.Position.Latitude.ToString() + "," +
result.Locations[0].Point.Position.Longitude.ToString() + ")";
}
}
Esse código exibe os seguintes resultados para a caixa de texto tbOutputText.
result = (47.6406099647284,-122.129339994863)
Obter um endereço (código geográfico reverso)
Esta seção mostra como converter uma localização geográfica em um endereço (geocodificação inversa).
- Chame o método FindLocationsAtAsync da classe MapLocationFinder.
- O método
retorna um objeto MapLocationFinderResultFindLocationsAtAsync que contém uma coleção de objetos MapLocation correspondentes . - Use a propriedade Locations do MapLocationFinderResult para expor uma coleção MapLocation objetos. Pode haver vários objetos MapLocation porque o sistema pode encontrar vários locais que correspondem à entrada dada.
- Aceda objetos MapAddress através da propriedade Address de cada MapLocation.
using Windows.Services.Maps;
using Windows.Devices.Geolocation;
...
private async void reverseGeocodeButton_Click(object sender, RoutedEventArgs e)
{
// The location to reverse geocode.
BasicGeoposition location = new BasicGeoposition();
location.Latitude = 47.643;
location.Longitude = -122.131;
Geopoint pointToReverseGeocode = new Geopoint(location);
// Reverse geocode the specified geographic location.
MapLocationFinderResult result =
await MapLocationFinder.FindLocationsAtAsync(pointToReverseGeocode);
// If the query returns results, display the name of the town
// contained in the address of the first result.
if (result.Status == MapLocationFinderStatus.Success)
{
tbOutputText.Text = "town = " +
result.Locations[0].Address.Town;
}
}
Esse código exibe os seguintes resultados para a caixa de texto tbOutputText.
town = Redmond