Xamarin.EssentialsMappa:

La classe Map consente a un'applicazione di aprire l'applicazione per le mappe installata su una località o un indicatore di posizione specifici.

Operazioni preliminari

Per iniziare a usare questa API, leggere la guida introduttiva per Xamarin.Essentials assicurarsi che la libreria sia installata e configurata correttamente nei progetti.

Uso di Map

Aggiungere un riferimento a Xamarin.Essentials nella classe :

using Xamarin.Essentials;

La funzionalità Map opera chiamando il metodo OpenAsync con Location o Placemark per l'apertura con le opzioni facoltative MapLaunchOptions.

public class MapTest
{
    public async Task NavigateToBuilding25()
    {
        var location = new Location(47.645160, -122.1306032);
        var options =  new MapLaunchOptions { Name = "Microsoft Building 25" };

        try
        {
            await Map.OpenAsync(location, options);
        }
        catch (Exception ex)
        {
            // No map application available to open
        }
    }
}

In caso di apertura con Placemark, sono necessarie le informazioni seguenti:

  • CountryName
  • AdminArea
  • Thoroughfare
  • Locality
public class MapTest
{
    public async Task NavigateToBuilding25()
    {
        var placemark = new Placemark
            {
                CountryName = "United States",
                AdminArea = "WA",
                Thoroughfare = "Microsoft Building 25",
                Locality = "Redmond"
            };
        var options =  new MapLaunchOptions { Name = "Microsoft Building 25" };

        try
        {
            await Map.OpenAsync(placemark, options);
        }
        catch (Exception ex)
        {
            // No map application available to open or placemark can not be located
        }
    }
}

Metodi di estensione

Se è già disponibile un riferimento a Location oppure Placemark, è possibile usare il metodo di estensione predefinito OpenMapAsync con le opzioni facoltative MapLaunchOptions:

public class MapTest
{
    public async Task OpenPlacemarkOnMap(Placemark placemark)
    {
        try
        {
            await placemark.OpenMapAsync();
        }
        catch (Exception ex)
        {
            // No map application available to open
        }
    }
}

Modalità indicazioni

Se si chiama OpenMapAsync senza MapLaunchOptions, la mappa verrà avviata sulla posizione specificata. Facoltativamente, è possibile calcolare un percorso dalla posizione corrente del dispositivo. Questa operazione viene eseguita impostando NavigationMode in MapLaunchOptions:

public class MapTest
{
    public async Task NavigateToBuilding25()
    {
        var location = new Location(47.645160, -122.1306032);
        var options =  new MapLaunchOptions { NavigationMode = NavigationMode.Driving };

        await Map.OpenAsync(location, options);
    }
}

Differenze tra le piattaforme

  • NavigationMode supporta Bicycling, Driving e Walking.

Informazioni di implementazione specifiche della piattaforma

Android usa lo schema URI geo: per avviare l'applicazione per le mappe nel dispositivo. Ciò potrebbe richiedere all'utente di effettuare una selezione da un'app esistente che supporta questo schema URI. Xamarin.Essentialsviene testato con Google Mappe, che supporta questo schema.

API

Altri video di Xamarin sono disponibili su Channel 9 e YouTube.