Share via


Xamarin.Essentials:Carte

La classe Map permet à une application d’ouvrir l’application de cartes installée à un emplacement spécifique.

Bien démarrer

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 dans 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.

API

Retrouvez d’autres vidéos Xamarin sur Channel 9 et YouTube.