Mostrare mappe con visualizzazioni 2D, 3D e StreetsideDisplay maps with 2D, 3D, and Streetside views

È possibile visualizzare una mappa in una finestra rilasciabile chiara denominata segnaposto mappa o in un controllo mappa completo.You can show a map in light dismissable window called a map placecard or in a full featured map control.

Scaricare l' esempio di mappa per provare alcune delle funzionalità descritte in questa guida.Download the map sample to try out some the features described in this guide.

Visualizzazione della mappa in un segnapostoDisplay map in a placecard

È possibile mostrare agli utenti una mappa all'interno di una finestra popup leggera sopra, sotto o sul lato di un elemento dell'interfaccia utente o di un'area di un'app in cui l'utente tocca.You can show users a map inside of a light-weight pop-up window above, below or to the side of a UI element or an area of an app where the user touches. La mappa può mostrare una città o un indirizzo che si riferisce alle informazioni nell'app.The map can show a city or address that relates to information in your app.

Questo segnaposto Mostra la città di Seattle.This placecard shows the city of Seattle.

segnaposto che mostra la città di Seattle

Ecco il codice che rende Seattle visualizzato in un segnaposto sotto un pulsante.Here's the code that makes Seattle appear in a placecard below a button.

private void Seattle_Click(object sender, RoutedEventArgs e)
{
    Geopoint seattlePoint = new Geopoint
        (new BasicGeoposition { Latitude = 47.6062, Longitude = -122.3321 });

    PlaceInfo spaceNeedlePlace = PlaceInfo.Create(seattlePoint);

    FrameworkElement targetElement = (FrameworkElement)sender;

    GeneralTransform generalTransform =
        targetElement.TransformToVisual((FrameworkElement)targetElement.Parent);

    Rect rectangle = generalTransform.TransformBounds(new Rect(new Point
        (targetElement.Margin.Left, targetElement.Margin.Top), targetElement.RenderSize));

    spaceNeedlePlace.Show(rectangle, Windows.UI.Popups.Placement.Below);
}

Questo segnaposto Mostra la posizione della lancetta dello spazio a Seattle.This placecard shows the location of the Space Needle in Seattle.

segnaposto che mostra la posizione della lancetta dello spazio

Ecco il codice che rende l'ago di spazio visualizzato in un segnaposto sotto un pulsante.Here's the code that makes the Space Needle appear in a placecard below a button.

private void SpaceNeedle_Click(object sender, RoutedEventArgs e)
{
    Geopoint spaceNeedlePoint = new Geopoint
        (new BasicGeoposition { Latitude = 47.6205, Longitude = -122.3493 });

    PlaceInfoCreateOptions options = new PlaceInfoCreateOptions();

    options.DisplayAddress = "400 Broad St, Seattle, WA 98109";
    options.DisplayName = "Seattle Space Needle";

    PlaceInfo spaceNeedlePlace =  PlaceInfo.Create(spaceNeedlePoint, options);

    FrameworkElement targetElement = (FrameworkElement)sender;

    GeneralTransform generalTransform =
        targetElement.TransformToVisual((FrameworkElement)targetElement.Parent);

    Rect rectangle = generalTransform.TransformBounds(new Rect(new Point
        (targetElement.Margin.Left, targetElement.Margin.Top), targetElement.RenderSize));

    spaceNeedlePlace.Show(rectangle, Windows.UI.Popups.Placement.Below);
}

Visualizzare la mappa in un controlloDisplay map in a control

Usare un controllo mappa per visualizzare i dati della mappa completi e personalizzabili nell'app.Use a map control to show rich and customizable map data in your app. Un controllo mappa può visualizzare mappe stradali, aeree, 3D, viste, direzioni, risultati della ricerca e traffico.A map control can display road maps, aerial, 3D, views, directions, search results, and traffic. In una mappa puoi mostrare la posizione dell'utente, indicazioni stradali e punti di interesse.On a map, you can display the user's location, directions, and points of interest. Una mappa può anche mostrare visualizzazioni 3D aeree, visualizzazioni Streetside, il traffico, i trasporti pubblici e le aziende locali.A map can also show aerial 3D views, Streetside views, traffic, transit, and local businesses.

Usa un controllo mappa se vuoi una mappa all'interno dell'app che consenta agli utenti di visualizzare informazioni geografiche generali o specifiche dell'app stessa.Use a map control when you want a map within your app that allows users to view app-specific or general geographic information. Con un controllo mappa nell'app gli utenti non devono uscire dall'app per ottenere tali informazioni.Having a map control in your app means that users don't have to go outside your app to get that information.

Aggiungere un controllo mappa all'appAdd a map control to your app

Puoi visualizzare una mappa in una pagina XAML aggiungendo un controllo MapControl.Display a map on a XAML page by adding a MapControl. Per usare MapControl, devi dichiarare lo spazio dei nomi Windows.UI.Xaml.Controls.Maps nella pagina XAML o nel codice.To use the MapControl, you must declare the Windows.UI.Xaml.Controls.Maps namespace in the XAML page or in your code. Se trascini il controllo dalla casella degli strumenti, la dichiarazione di questo spazio dei nomi viene aggiunta automaticamente.If you drag the control from the Toolbox, this namespace declaration is added automatically. Se aggiungi MapControl manualmente alla pagina XAML, devi aggiungere manualmente la dichiarazione dello spazio dei nomi nella parte superiore della pagina.If you add the MapControl to the XAML page manually, you must add the namespace declaration manually at the top of the page.

L'esempio seguente visualizza un controllo mappa di base e consente di configurare la mappa in modo da visualizzare i controlli di zoom e inclinazione oltre ad accettare l'input tocco.The following example displays a basic map control and configures the map to display the zoom and tilt controls in addition to accepting touch inputs.

<Page
    x:Class="MapsAndLocation1.DisplayMaps"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:MapsAndLocation1"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:Maps="using:Windows.UI.Xaml.Controls.Maps"
    mc:Ignorable="d">

 <Grid x:Name="pageGrid" Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">

    <Maps:MapControl
       x:Name="MapControl1"            
       ZoomInteractionMode="GestureAndControl"
       TiltInteractionMode="GestureAndControl"   
       MapServiceToken="EnterYourAuthenticationKeyHere"/>

 </Grid>
</Page>

Se aggiungi il controllo mappa nel codice, devi dichiarare manualmente lo spazio dei nomi all'inizio del file di codice.If you add the map control in your code, you must declare the namespace manually at the top of the code file.

using Windows.UI.Xaml.Controls.Maps;
...

// Add the MapControl and the specify maps authentication key.
MapControl MapControl2 = new MapControl();
MapControl2.ZoomInteractionMode = MapInteractionMode.GestureAndControl;
MapControl2.TiltInteractionMode = MapInteractionMode.GestureAndControl;
MapControl2.MapServiceToken = "EnterYourAuthenticationKeyHere";
pageGrid.Children.Add(MapControl2);

Recuperare e impostare una chiave di autenticazione per le mappeGet and set a maps authentication key

Prima di poter usare MapControl e i servizi di mapping, è necessario specificare la chiave di autenticazione Maps come valore della proprietà MapServiceToken .Before you can use MapControl and map services, you must specify the maps authentication key as the value of the MapServiceToken property. Negli esempi precedenti sostituisci EnterYourAuthenticationKeyHere con la chiave ottenuta dal centro per sviluppatori di Bing Mappe.In the previous examples, replace EnterYourAuthenticationKeyHere with the key you get from the Bing Maps Developer Center. Il testo Avviso: MapServiceToken non specificato continua a essere visualizzato sotto il controllo finché non specifichi la chiave di autenticazione per le mappe.The text Warning: MapServiceToken not specified continues to appear below the control until you specify the maps authentication key. Per altre info su come recuperare e impostare una chiave di autenticazione per le mappe, vedi Richiedere una chiave di autenticazione per le mappe.For more info about getting and setting a maps authentication key, see Request a maps authentication key.

Impostare il percorso di una mappaSet the location of a map

Puntare la mappa a qualsiasi posizione desiderata o usare la posizione corrente dell'utente.Point the map to any location that you want or use the user's current location.

Impostare una posizione iniziale per la mappaSet a starting location for the map

Impostare il percorso da visualizzare sulla mappa specificando la proprietà Center di MapControl nel codice o associando la proprietà nel markup XAML.Set the location to display on the map by specifying the Center property of the MapControl in your code or by binding the property in your XAML markup. L'esempio seguente visualizza una mappa con la città di Seattle al centro.The following example displays a map with the city of Seattle as its center.

Nota

Poiché non è possibile convertire una stringa in un oggetto Geopoint, non è possibile specificare un valore per la proprietà Center nel markup XAML, a meno che non si usi Data Binding.Since a string can't be converted to a Geopoint, you can't specify a value for the Center property in XAML markup unless you use data binding. Questa limitazione si applica anche alla proprietà associata MapControl.Location.(This limitation also applies to the MapControl.Location attached property.)

 

protected override void OnNavigatedTo(NavigationEventArgs e)
{
   // Specify a known location.
   BasicGeoposition cityPosition = new BasicGeoposition() { Latitude = 47.604, Longitude = -122.329 };
   Geopoint cityCenter = new Geopoint(cityPosition);

   // Set the map location.
   MapControl1.Center = cityCenter;
   MapControl1.ZoomLevel = 12;
   MapControl1.LandmarksVisible = true;
}

Esempio di controllo mappa.

Impostare la posizione corrente della mappaSet the current location of the map

Prima che l'app possa accedere alla posizione dell'utente, l'app deve chiamare il metodo RequestAccessAsync .Before your app can access the user’s location, your app must call the RequestAccessAsync method. A questo punto, l’app deve essere in primo piano e RequestAccessAsync deve essere chiamato dal thread dell’interfaccia utente.At that time, your app must be in the foreground and RequestAccessAsync must be called from the UI thread. L'app può accedere ai dati sulla posizione solo dopo che l'utente ha concesso all'app l'autorizzazione per la propria posizione.Until the user grants your app permission to their location, your app can't access location data.

Ottenere la posizione corrente del dispositivo (se il percorso è disponibile) usando il metodo GetGeopositionAsync della classe Geolocator .Get the current location of the device (if location is available) by using the GetGeopositionAsync method of the Geolocator class. Per ottenere l'oggetto Geopointcorrispondente, usare la proprietà Point di GeoCoordinate GeoPosition.To obtain the corresponding Geopoint, use the Point property of the geoposition's geocoordinate. Per altre info, vedi Ottenere la posizione corrente.For more info, see Get current location.

// Set your current location.
var accessStatus = await Geolocator.RequestAccessAsync();
switch (accessStatus)
{
   case GeolocationAccessStatus.Allowed:

      // Get the current location.
      Geolocator geolocator = new Geolocator();
      Geoposition pos = await geolocator.GetGeopositionAsync();
      Geopoint myLocation = pos.Coordinate.Point;

      // Set the map location.
      MapControl1.Center = myLocation;
      MapControl1.ZoomLevel = 12;
      MapControl1.LandmarksVisible = true;
      break;

   case GeolocationAccessStatus.Denied:
      // Handle the case  if access to location is denied.
      break;

   case GeolocationAccessStatus.Unspecified:
      // Handle the case if  an unspecified error occurs.
      break;
}

Quando visualizzi la posizione del dispositivo su una mappa, è consigliabile visualizzare la grafica e impostare il livello di zoom in base al livello di accuratezza dei dati sulla posizione.When you display your device's location on a map, consider displaying graphics and setting the zoom level based on the accuracy of the location data. Per altre info, vedi Linee guida per le app in grado di riconoscere la posizione.For more info, see Guidelines for location-aware apps.

Modificare la posizione della mappaChange the location of the map

Per modificare il percorso visualizzato in una mappa 2D, chiamare uno degli overload del metodo TrySetViewAsync .To change the location that appears in a 2D map, call one of the overloads of the TrySetViewAsync method. Usare questo metodo per specificare i nuovi valori per Center, ZoomLevel, headinge pitch.Use that method to specify new values for Center, ZoomLevel, Heading, and Pitch. È anche possibile specificare un'animazione facoltativa da usare quando la visualizzazione cambia fornendo una costante dall'enumerazione MapAnimationKind .You can also specify an optional animation to use when the view changes by providing a constant from the MapAnimationKind enumeration.

Per modificare la posizione di una mappa 3D, usa invece il metodo TrySetSceneAsync.To change the location of a 3D map, use the TrySetSceneAsync method instead. Per altre informazioni, vedere visualizzare le visualizzazioni 3D aeree.For more info, see Display aerial 3D views.

Chiamare il metodo TrySetViewBoundsAsync per visualizzare il contenuto di un GeoboundingBox sulla mappa.Call the TrySetViewBoundsAsync method to display the contents of a GeoboundingBox on the map. Usa questo metodo, ad esempio, per visualizzare un itinerario o una parte di itinerario sulla mappa.Use this method, for example, to display a route or a portion of a route on the map. Per altre info, vedi Visualizzare itinerari e indicazioni stradali su una mappa.For more info, see Display routes and directions on a map.

Modificare l'aspetto di una mappaChange the appearance of a map

Per personalizzare l'aspetto della mappa, impostare la proprietà stylesheet del controllo Map su uno degli oggetti MapStyleSheet esistenti.To customize the look and feel of the map, set the StyleSheet property of the map control to any of the existing MapStyleSheet objects.

myMap.StyleSheet = MapStyleSheet.RoadDark();

Mappa di stile scuro

È anche possibile usare JSON per definire stili personalizzati e quindi usare tale JSON per creare un oggetto MapStyleSheet .You can also use JSON to define custom styles and then use that JSON to create a MapStyleSheet object.

Il foglio di stile JSON può essere creato in modo interattivo usando l'applicazione Editor dei fogli di stile mappa .Style sheet JSON can be created interactively using the Map Style Sheet Editor application.

myMap.StyleSheet = MapStyleSheet.ParseFromJson(@"
    {
        ""version"": ""1.0"",
        ""settings"": {
            ""landColor"": ""#FFFFFF"",
            ""spaceColor"": ""#000000""
        },
        ""elements"": {
            ""mapElement"": {
                ""labelColor"": ""#000000"",
                ""labelOutlineColor"": ""#FFFFFF""
            },
            ""water"": {
                ""fillColor"": ""#DDDDDD""
            },
            ""area"": {
                ""fillColor"": ""#EEEEEE""
            },
            ""political"": {
                ""borderStrokeColor"": ""#CCCCCC"",
                ""borderOutlineColor"": ""#00000000""
            }
        }
    }
");

Mappa di stile personalizzata

Per informazioni di riferimento complete sulla voce JSON, vedere riferimento a un foglio di stile mappa.For the complete JSON entry reference, see Map style sheet reference.

È possibile iniziare con un foglio esistente e quindi usare JSON per eseguire l'override di tutti gli elementi desiderati.You can start with an existing sheet and then use JSON to override any elements that you want. Questo esempio inizia con uno stile esistente e usa JSON per modificare solo il colore delle aree d'acqua.This example, starts with an existing style and uses JSON to change only the color of water areas.

 MapStyleSheet \customSheet = MapStyleSheet.ParseFromJson(@"
    {
        ""version"": ""1.0"",
        ""elements"": {
            ""water"": {
                ""fillColor"": ""#DDDDDD""
            }
        }
    }
");

MapStyleSheet builtInSheet = MapStyleSheet.RoadDark();

myMap.StyleSheet = MapStyleSheet.Combine(new List<MapStyleSheet> { builtInSheet, customSheet });

Combina mappa stile

Nota

Gli stili definiti nel secondo foglio di stile eseguono l'override degli stili nella prima.Styles that you define in the second style sheet override the styles in the first.

Imposta orientamento e prospettivaSet orientation and perspective

Zoom avanti, zoom indietro, ruota e inclina la fotocamera della mappa per ottenere solo l'angolo giusto per l'effetto desiderato.Zoom in, zoom out, rotate, and tilt the map's camera to get just the right angle for the effect that you want. Provare queste proprietà.Try these properties.

  • Imposta il valore center della mappa su un punto geografico mediante la proprietà Center.Set the center of the map to a geographic point by setting the Center property.
  • Imposta il valore zoom level della mappa impostando la proprietà ZoomLevel su un valore compreso tra 1 e 20.Set the zoom level of the map by setting the ZoomLevel property to a value between 1 and 20.
  • Imposta il valore rotation della mappa impostando la proprietà Heading, dove 0 o 360° = nord , 90 = est, 180 = sud e 270 = ovest.Set the rotation of the map by setting the Heading property, where 0 or 360 degrees = North, 90 = East, 180 = South, and 270 = West.
  • Imposta il valore tilt della mappa impostando la proprietà DesiredPitch su una valore compreso tra 0 e 65°.Set the tilt of the map by setting the DesiredPitch property to a value between 0 and 65 degrees.

Mostrare e nascondere le funzionalità della mappaShow and hide map features

Mostrare o nascondere le funzionalità della mappa come le strade e i punti di riferimento impostando i valori delle proprietà seguenti di MapControl.Show or hide map features such as roads and landmarks by setting the values of the following properties of the MapControl.

Per info su come visualizzare puntine, forme e controlli XAML nell’elemento MapControl, vedi Visualizzare punti di interesse su una mappa.For info about how to display pushpins, shapes, and XAML controls in the MapControl, see Display points of interest (POI) on a map.

Visualizzare visualizzazioni StreetsideDisplay Streetside views

Una visualizzazione Streetside è la prospettiva a livello di strada di una posizione indicata all'inizio del controllo mappa.A Streetside view is a street-level perspective of a location that appears on top of the map control.

Esempio di visualizzazione Streetside del controllo mappa.

Immagina l'esperienza all'interno della visualizzazione Streetside come distinta rispetto alla mappa visualizzata in origine nel controllo mappa.Consider the experience "inside" the Streetside view separate from the map originally displayed in the map control. La modifica della posizione nella visualizzazione Streetside non implica ad esempio la modifica della posizione o dell'aspetto della mappa sotto la visualizzazione Streetside.For example, changing the location in the Streetside view does not change the location or appearance of the map "under" the Streetside view. Dopo aver chiuso la visualizzazione Streetside, facendo clic sulla X nell’angolo in alto a destra del controllo, la mappa originale rimane invariata.After you close the Streetside view (by clicking the X in the upper right corner of the control), the original map remains unchanged.

Per visualizzare una visualizzazione StreetsideTo display a Streetside view

  1. Determinare se le visualizzazioni Streetside sono supportate nel dispositivo controllando IsStreetsideSupported.Determine if Streetside views are supported on the device by checking IsStreetsideSupported.
  2. Se è supportata la visualizzazione Streetside, creare un StreetsidePanorama vicino al percorso specificato chiamando FindNearbyAsync.If Streetside view is supported, create a StreetsidePanorama near the specified location by calling FindNearbyAsync.
  3. Determinare se è stato trovato un panorama vicino controllando se StreetsidePanorama non è nullDetermine if a nearby panorama was found by checking if the StreetsidePanorama is not null
  4. Se è stato trovato un panorama vicino, creare un StreetsideExperience per la proprietà CustomExperience del controllo mappa.If a nearby panorama was found, create a StreetsideExperience for the map control's CustomExperience property.

Questo esempio mostra come visualizzare una visualizzazione Streetside simile all'immagine precedente.This example shows how to display a Streetside view similar to the previous image.

Nota    Il mapping della panoramica non verrà visualizzato se le dimensioni del controllo mappa sono troppo ridotte.Note  The overview map will not appear if the map control is sized too small.

 

private async void showStreetsideView()
{
   // Check if Streetside is supported.
   if (MapControl1.IsStreetsideSupported)
   {
      // Find a panorama near Avenue Gustave Eiffel.
      BasicGeoposition cityPosition = new BasicGeoposition() { Latitude = 48.858, Longitude = 2.295};
      Geopoint cityCenter = new Geopoint(cityPosition);
      StreetsidePanorama panoramaNearCity = await StreetsidePanorama.FindNearbyAsync(cityCenter);

      // Set the Streetside view if a panorama exists.
      if (panoramaNearCity != null)
      {
         // Create the Streetside view.
         StreetsideExperience ssView = new StreetsideExperience(panoramaNearCity);
         ssView.OverviewMapVisible = true;
         MapControl1.CustomExperience = ssView;
      }
   }
   else
   {
      // If Streetside is not supported
      ContentDialog viewNotSupportedDialog = new ContentDialog()
      {
         Title = "Streetside is not supported",
         Content ="\nStreetside views are not supported on this device.",
         PrimaryButtonText = "OK"
      };
      await viewNotSupportedDialog.ShowAsync();            
   }
}
## Visualizzare viste aeree 3DDisplay aerial 3D views

Specificare una prospettiva 3D della mappa utilizzando la classe MapScene .Specify a 3D perspective of the map by using the MapScene class. La scena della mappa rappresenta la vista 3D visualizzata nella mappa.The map scene represents the 3D view that appears in the map. La classe MapCamera rappresenta la posizione della fotocamera che visualizza tale vista.The MapCamera class represents the position of the camera that would display such a view.

Diagramma della posizione di MapCamera nella posizione della scena della mappa

Per rendere le costruzioni e altre funzionalità sulla superficie della mappa visualizzate in 3D, impostare la proprietà stile del controllo mappa su MapStyle. Aerial3DWithRoads.To make buildings and other features on the map surface appear in 3D, set the map control's Style property to MapStyle.Aerial3DWithRoads. Questo è un esempio di vista 3D con lo stile Aerial3DWithRoads.This is an example of a 3D view with the Aerial3DWithRoads style.

Esempio di vista 3D della mappa.

Per visualizzare una vista 3DTo display a 3D view

  1. Determinare se le visualizzazioni 3D sono supportate nel dispositivo controllando Is3DSupported.Determine if 3D views are supported on the device by checking Is3DSupported.
  2. Se le viste 3D sono supportate, imposta la proprietà Style del controllo su MapStyle.Aerial3DWithRoads.If 3D views is supported, set the map control's Style property to MapStyle.Aerial3DWithRoads.
  3. Crea un oggetto MapScene usando uno dei numerosi metodi CreateFrom disponibili, come CreateFromLocationAndRadius e CreateFromCamera.Create a MapScene object using one of the many CreateFrom methods, such as CreateFromLocationAndRadius and CreateFromCamera.
  4. Chiama TrySetSceneAsync per visualizzare la vista 3D.Call TrySetSceneAsync to display the 3D view. È anche possibile specificare un'animazione facoltativa da usare quando la visualizzazione cambia fornendo una costante dall'enumerazione MapAnimationKind .You can also specify an optional animation to use when the view changes by providing a constant from the MapAnimationKind enumeration.

L'esempio seguente mostra come visualizzare una vista 3D.This example shows how to display a 3D view.

private async void display3DLocation()
{
   if (MapControl1.Is3DSupported)
   {
      // Set the aerial 3D view.
      MapControl1.Style = MapStyle.Aerial3DWithRoads;

      // Specify the location.
      BasicGeoposition hwGeoposition = new BasicGeoposition() { Latitude = 43.773251, Longitude = 11.255474};
      Geopoint hwPoint = new Geopoint(hwGeoposition);

      // Create the map scene.
      MapScene hwScene = MapScene.CreateFromLocationAndRadius(hwPoint,
                                                                           80, /* show this many meters around */
                                                                           0, /* looking at it to the North*/
                                                                           60 /* degrees pitch */);
      // Set the 3D view with animation.
      await MapControl1.TrySetSceneAsync(hwScene,MapAnimationKind.Bow);
   }
   else
   {
      // If 3D views are not supported, display dialog.
      ContentDialog viewNotSupportedDialog = new ContentDialog()
      {
         Title = "3D is not supported",
         Content = "\n3D views are not supported on this device.",
         PrimaryButtonText = "OK"
      };
      await viewNotSupportedDialog.ShowAsync();
   }
}

Ottenere informazioni sulle posizioniGet info about locations

Ottenere informazioni sulle posizioni sulla mappa chiamando i metodi seguenti di MapControl.Get info about locations on the map by calling the following methods of the MapControl.

  • Metodo TryGetLocationFromOffset : ottiene la posizione geografica che corrisponde al punto specificato nel viewport del controllo mappa.TryGetLocationFromOffset method - Get the geographic location that corresponds to the specified point in the viewport of the Map control.
  • Metodo GetOffsetFromLocation : Ottiene il punto nel viewport del controllo mappa che corrisponde alla posizione geografica specificata.GetOffsetFromLocation method - Get the point in the viewport of the Map control that corresponds to the specified geographic location.
  • Metodo IsLocationInView - Determinare se la posizione geografica specificata è attualmente visibile nel riquadro di visualizzazione del controllo Mappa.IsLocationInView method - Determine whether the specified geographic location is currently visible in the viewport of the Map control.
  • Metodo FindMapElementsAtOffset - Recuperare gli elementi della mappa che si trovano nel punto specificato nel riquadro di visualizzazione del controllo Mappa.FindMapElementsAtOffset method - Get the elements on the map located at the specified point in the viewport of the Map control.

Gestire interazioni e modificheHandle interaction and changes

Gestire i movimenti di input dell'utente sulla mappa gestendo gli eventi seguenti di MapControl.Handle user input gestures on the map by handling the following events of the MapControl. Ottenere informazioni sulla posizione geografica sulla mappa e sulla posizione fisica nel viewport in cui si è verificato il movimento controllando i valori delle proprietà location e position del MapInputEventArgs.Get info about the geographic location on the map and the physical position in the viewport where the gesture occurred by checking the values of the Location and Position properties of the MapInputEventArgs.

Determinare se la mappa viene caricata o completamente caricata gestendo l'evento LoadingStatusChanged del controllo.Determine whether the map is loading or completely loaded by handling the control's LoadingStatusChanged event.

Gestire le modifiche che si verificano quando l'utente o l'app modifica le impostazioni della mappa gestendo gli eventi seguenti del MapControl.Handle changes that happen when the user or the app changes the settings of the map by handling the following events of the MapControl. Linee guida per le mappeGuidelines for maps

Indicazioni sulle procedure consigliateBest practice recommendations

  • Usa uno spazio ampio dello schermo, oppure l'intero schermo, per visualizzare la mappa, in modo che gli utenti non debbano ricorrere eccessivamente a panoramica e zoom per visualizzare le informazioni geografiche.Use ample screen space (or the entire screen) to display the map so that users don't have to pan and zoom excessively to view geographical information.

  • Se la mappa viene usata solo per mostrare una visualizzazione informativa statica, potrebbe essere appropriato l'uso di una mappa più piccola.If the map is only used to present a static, informational view, then using a smaller map might be more appropriate. Se scegli una mappa più piccola e statica, determina le dimensioni in base a un'usabilità abbastanza piccola da far risparmiare spazio sufficiente sullo schermo, ma abbastanza grande da rimanere leggibile.If you go with a smaller, static map, base its dimensions on usability—small enough to conserve enough screen real estate, but large enough to remain legible.

  • Incorpora i punti di interesse nella scena della mappa tramite map elements. Eventuali informazioni aggiuntive possono essere visualizzate come elementi temporanei dell'interfaccia utente, sovrapposti alla scena della mappa.Embed the points of interest in the map scene using map elements; any additional information can be displayed as transient UI that overlays the map scene.