Xamarin.EssentialsCarte :
La classe Map permet à une application d’ouvrir l’application de cartes installée à un emplacement spécifique.
Démarrage
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.
Utilisation de Map
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
}
}
}
Méthodes d’extension
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
}
}
}
Mode Directions
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);
}
}
Différences entre les plateformes
NavigationMode
prend en charge Bicycling (vélo), Driving (voiture) et Walking (marche).
Caractéristiques de mise en œuvre de la plateforme
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.