MapControl

MapControl zobrazuje symbolickou interaktivní mapu Země, která využívá Azure Maps. Můžete zobrazit umístění, přidat špendlíky a vlastní vrstvy a umožnit uživatelům interakci s mapou pomocí ovládacích prvků posouvání, přiblížení, otočení a roztečení.

MapControl vyžaduje účet Azure Maps. Podle pokynů v Spravujte účet Azure Maps a vytvořte účet a získejte token služby mapování.

Je to správná kontrola?

MapControl použijte, když chcete v aplikaci zobrazit geografická data, například:

  • Zobrazení umístění na mapě se značkou.
  • Zobrazuje kolekci bodů zájmu.
  • Poskytuje interaktivní prostředí mapy s přiblížením a posouváním.

Vytvoření MapControl

Ikona galerie WinUI 3 Aplikace Galerie WinUI 3 obsahuje interaktivní příklady ovládacích prvků a funkcí WinUI. Získejte aplikaci z Microsoft Store nebo vyhledejte zdrojový kód na GitHub.

Přidejte na stránku MapControl a nastavte MapServiceToken na klíč Azure Maps.

<MapControl x:Name="myMap"
            MapServiceToken="YOUR_AZURE_MAPS_TOKEN"
            Height="400" />

Nastavení umístění mapy

Nastavte vlastnosti Center a ZoomLevel tak, aby ovládly, co mapa zobrazuje.

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" />

Přidejte piny na mapu

Pomocí MapIconu můžete zobrazit připínáky na mapě. Přidejte ikony do MapElementsLayer a pak přidejte vrstvu do kolekce Vrstvy mapy.

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);

Zobrazení nebo skrytí interaktivních ovládacích prvků

Vlastnost InteractiveControlsVisible určuje, zda mapa zobrazuje integrované překryvné ovládací prvky pro přiblížení, otočení, výšku a styl mapy.

<MapControl x:Name="myMap"
            MapServiceToken="YOUR_AZURE_MAPS_TOKEN"
            InteractiveControlsVisible="True"
            Height="400" />

Zacházení s kliknutími na prvek mapy

Přihlaste se k události MapElementClick, abyste mohli reagovat, když uživatel klikne na prvek mapy, například na pin.

myMap.MapElementClick += (sender, args) =>
{
    foreach (var element in args.MapElements)
    {
        if (element is MapIcon clickedIcon)
        {
            // Handle the clicked icon
        }
    }
};

Zpracování chyb mapové služby

Přihlaste se k odběru události MapServiceErrorOccurred a detekujte problémy s komunikací s mapovou službou, jako je neplatný nebo chybějící MapServiceToken.

myMap.MapServiceErrorOccurred += (sender, args) =>
{
    // Log or display the error
    System.Diagnostics.Debug.WriteLine("Map service error occurred.");
};