Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Il MapControl visualizza una mappa simbolica interattiva della Terra basata su Azure Maps. È possibile visualizzare posizioni, aggiungere puntini e livelli personalizzati e consentire agli utenti di interagire con la mappa usando controlli panoramica, zoom, rotazione e inclinazione.
MapControl richiede un account Azure Maps. Seguire le istruzioni riportate in Gestire l'account Azure Maps per creare un account e ottenere un token del servizio di mapping.
Questo è il controllo giusto?
Usa mapControl quando vuoi visualizzare i dati geografici nella tua app, ad esempio:
- Visualizzazione di una posizione su una mappa con un segnaposto.
- Visualizzazione di una raccolta di punti di interesse.
- Offrire un'esperienza interattiva sulla mappa con zoom e panoramica.
Creare un oggetto MapControl
- API importanti: classe MapControl, classe MapIcon, classe MapElementsLayer
![]()
L'app Raccolta WinUI 3 include esempi interattivi di controlli e funzionalità WinUI. Ottenere l'app dal Microsoft Store o esplorare il codice sorgente in GitHub.
Aggiungere un oggetto MapControl alla pagina e impostare MapServiceToken sulla chiave Azure Maps.
<MapControl x:Name="myMap"
MapServiceToken="YOUR_AZURE_MAPS_TOKEN"
Height="400" />
Impostare la posizione della mappa
Impostare le proprietà Center e ZoomLevel per controllare la visualizzazione della mappa.
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" />
Aggiungere puntini alla mappa
Usare MapIcon per visualizzare i segnalini sulla mappa. Aggiungere icone a mapElementsLayer, quindi aggiungere il livello all'insieme Layers della mappa.
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);
Mostrare o nascondere controlli interattivi
La proprietà InteractiveControlsVisible controlla se la mappa visualizza controlli di sovrapposizione predefiniti per lo zoom, la rotazione, l'inclinazione e lo stile della mappa.
<MapControl x:Name="myMap"
MapServiceToken="YOUR_AZURE_MAPS_TOKEN"
InteractiveControlsVisible="True"
Height="400" />
Gestire i clic degli elementi della mappa
Sottoscrivere l'evento MapElementClick per rispondere quando l'utente fa clic su un elemento della mappa, ad esempio un pin.
myMap.MapElementClick += (sender, args) =>
{
foreach (var element in args.MapElements)
{
if (element is MapIcon clickedIcon)
{
// Handle the clicked icon
}
}
};
Gestire gli errori del servizio mappa
Sottoscriviti all'evento MapServiceErrorOccurred per rilevare i problemi di comunicazione con il servizio di mappe, ad esempio un MapServiceToken non valido o mancante.
myMap.MapServiceErrorOccurred += (sender, args) =>
{
// Log or display the error
System.Diagnostics.Debug.WriteLine("Map service error occurred.");
};