Xamarin.EssentialsCarte :
La classe Map permet à une application d’ouvrir l’application de cartes installée à un emplacement spécifique.
Pour commencer à utiliser cette API, lisez le guide de prise en main pour Xamarin.Essentials vous assurer que la bibliothèque est correctement installée et configurée dans vos projets.
Ajoutez une référence à Xamarin.Essentials votre classe :
using Xamarin.Essentials;
La fonctionnalité Carte appelle la méthode OpenAsync
avec le Location
ou Placemark
à ouvrir avec des MapLaunchOptions
facultatif.
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
}
}
}
Lors de l’ouverture avec un Placemark
, les informations suivantes sont requises :
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
}
}
}
Si vous avez déjà une référence à un Location
ou Placemark
, vous pouvez utiliser la méthode d’extension intégrée OpenMapAsync
avec MapLaunchOptions
facultatif :
public class MapTest
{
public async Task OpenPlacemarkOnMap(Placemark placemark)
{
try
{
await placemark.OpenMapAsync();
}
catch (Exception ex)
{
// No map application available to open
}
}
}
Si vous appelez OpenMapAsync
sans MapLaunchOptions
, la carte se lancera à l’emplacement spécifié. Si vous le souhaitez, vous pouvez avoir un itinéraire de navigation calculé à partir de la position actuelle de l’appareil. Pour ce faire, il vous de définir NavigationMode
sur 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);
}
}
NavigationMode
prend en charge Bicycling (vélo), Driving (voiture) et Walking (marche).
Android utilise le schéma d’URI geo:
pour lancer l’application Cartes sur l’appareil. L’utilisateur peut être invité à sélectionner à partir d’une application existante qui prend en charge ce schéma d’URI. Xamarin.Essentials est testé avec Google Maps, qui prend en charge ce schéma.