Partager via


Ouvrir l’application de carte

Browse sample. Parcourir l’exemple

Cet article explique comment utiliser l’interface utilisateur de l’application multiplateforme .NET (.NET MAUI). IMap Cette interface permet à une application d’ouvrir l’application de carte installée à un emplacement ou une marque de place spécifique.

L’implémentation par défaut de l’interface IMap est disponible via la Map.Default propriété. L’interface et Map la IMap classe sont contenues dans l’espace Microsoft.Maui.ApplicationModel de noms.

Démarrage

Pour accéder à la fonctionnalité de navigateur, la configuration spécifique à la plateforme suivante est requise.

Android utilise le geo: schéma d’URI pour lancer l’application cartes sur l’appareil. Cela peut inviter l’utilisateur à sélectionner à partir d’une application existante qui prend en charge ce schéma d’URI. Google Cartes prend en charge ce schéma.

Dans le fichier Platforms/Android/AndroidManifest.xml , ajoutez les nœuds suivants queries/intent au manifest nœud :

<queries>
  <intent>
    <action android:name="android.intent.action.VIEW" />
    <data android:scheme="geo"/>
  </intent>
</queries>

Utilisation de la carte

La fonctionnalité de mappage fonctionne en appelant la IMap.OpenAsync méthode et en passant une instance du ou Placemark du Location type. L’exemple suivant ouvre l’application de carte installée à un emplacement GPS spécifique :

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

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

Conseil

Les Location types et Placemark les types se trouvent dans l’espace Microsoft.Maui.Devices.Sensors de noms.

Lorsque vous utilisez un Placemark pour ouvrir la carte, des informations supplémentaires sont requises. Les informations permettent à l’application cartographique de rechercher l’endroit que vous recherchez. Les informations suivantes sont requises :

public async Task NavigateToBuilding()
{
    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.Default.OpenAsync(placemark, options);
    }
    catch (Exception ex)
    {
        // No map application available to open or placemark can not be located
    }
}

Test si la carte a été ouverte

Il est toujours possible que l’ouverture de l’application de carte échoue, par exemple lorsqu’il n’existe pas d’application de carte ou que votre application ne dispose pas des autorisations appropriées. Pour chaque IMap.OpenAsync surcharge de méthode, il existe une méthode correspondante IMap.TryOpenAsync , qui retourne une valeur booléenne indiquant que l’application de carte a été ouverte avec succès. L’exemple de code suivant utilise la TryOpenAsync méthode pour ouvrir la carte :

var location = new Location(47.645160, -122.1306032);
var options = new MapLaunchOptions { Name = "Microsoft Building 25" };

if (await Map.Default.TryOpenAsync(location, options) == false)
{
    // Map failed to open
}

Méthodes d’extension

Tant que l’espace Microsoft.Maui.Devices.Sensors de noms est importé, qu’un nouveau projet MAUI .NET effectue automatiquement, vous pouvez utiliser la méthode OpenMapsAsync d’extension intégrée pour ouvrir la carte :

public async Task NavigateToBuildingByPlacemark()
{
    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 placemark.OpenMapsAsync(options);
    }
    catch (Exception ex)
    {
        // No map application available to open or placemark can not be located
    }
}

Ajouter la navigation

Lorsque vous ouvrez la carte, vous pouvez calculer un itinéraire entre l’emplacement actuel de l’appareil et l’emplacement spécifié. Passez le MapLaunchOptions type à la Map.OpenAsync méthode, en spécifiant le mode de navigation. L’exemple suivant ouvre l’application de carte et spécifie un mode de navigation de conduite :

public async Task DriveToBuilding25()
{
    var location = new Location(47.645160, -122.1306032);
    var options = new MapLaunchOptions { Name = "Microsoft Building 25",
                                         NavigationMode = NavigationMode.Driving };

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

Différences de plateforme

Cette section décrit les différences spécifiques à la plateforme avec l’API cartes.

NavigationMode prend en charge Bicycling (vélo), Driving (voiture) et Walking (marche).