Ouvrir l’application de carte
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).