Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
O MapControl apresenta um mapa simbólico e interativo da Terra alimentado por Azure Maps. Pode mostrar localizações, adicionar pinos e camadas personalizadas, e permitir que os utilizadores interajam com o mapa usando controlos de panorâmica, zoom, rotação e pitch.
O MapControl requer uma conta Azure Maps. Siga as instruções em Gerir a sua conta de Azure Maps para criar uma conta e obter um token de serviço de mapa.
Será este o controlo correto?
Use um MapControl quando quiser mostrar dados geográficos na sua aplicação, tais como:
- Mostrar uma localização num mapa com um alfinete.
- Exibindo uma coleção de pontos de interesse.
- Proporcionando uma experiência interativa de mapa com zoom e panorâmica.
Crie um MapControl
- APIs importantes: classe MapControl, classe MapIcon, classe MapElementsLayer
![]()
A aplicação WinUI 3 Gallery inclui exemplos interativos de controlos e funcionalidades WinUI. Descarrega a aplicação na Microsoft Store ou navega pelo código-fonte no GitHub.
Adicione um MapControl à sua página e defina o MapServiceToken na sua chave Azure Maps.
<MapControl x:Name="myMap"
MapServiceToken="YOUR_AZURE_MAPS_TOKEN"
Height="400" />
Definir a localização do mapa
Defina as propriedades Center e ZoomLevel para controlar o que é exibido no mapa.
using Windows.Devices.Geolocation;
var position = new BasicGeoposition { Latitude = 47.6062, Longitude = -122.3321 };
myMap.Center = new Geopoint(position);
myMap.ZoomLevel = 12;
<!-- Set initial center and zoom in XAML is not supported; set in code-behind -->
<MapControl x:Name="myMap"
MapServiceToken="YOUR_AZURE_MAPS_TOKEN"
Height="400" />
Adicionar pinos ao mapa
Usa o MapIcon para mostrar os alfinetes no mapa. Adicione ícones a um MapElementsLayer e depois adicione a camada à coleção de Camadas do mapa.
using Windows.Devices.Geolocation;
using Microsoft.UI.Xaml.Controls;
using System.Collections.Generic;
var position = new BasicGeoposition
{
Latitude = 47.6062,
Longitude = -122.3321
};
var icon = new MapIcon
{
Location = new Geopoint(position),
};
var layer = new MapElementsLayer
{
MapElements = new List<MapElement> { icon }
};
myMap.Layers.Add(layer);
Mostrar ou esconder controlos interativos
A propriedade InteractiveControlsVisible controla se o mapa apresenta controlos de sobreposição incorporados para zoom, rotação, inclinação e estilo do mapa.
<MapControl x:Name="myMap"
MapServiceToken="YOUR_AZURE_MAPS_TOKEN"
InteractiveControlsVisible="True"
Height="400" />
Gerir cliques em elementos do mapa
Subscreva o evento MapElementClick para responder quando o utilizador clicar num elemento do mapa, como um pin.
myMap.MapElementClick += (sender, args) =>
{
foreach (var element in args.MapElements)
{
if (element is MapIcon clickedIcon)
{
// Handle the clicked icon
}
}
};
Lidar com erros de serviço de mapas
Subscreva o evento MapServiceErrorOccurred para detetar problemas de comunicação com o serviço de mapas, como um MapServiceToken inválido ou em falta.
myMap.MapServiceErrorOccurred += (sender, args) =>
{
// Log or display the error
System.Diagnostics.Debug.WriteLine("Map service error occurred.");
};
Artigos relacionados
Windows developer