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
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.Essentials viene testato con Google Maps, che supporta questo schema.
API
Video correlato
Altri video di Xamarin sono disponibili su Channel 9 e YouTube.