Aprire l'app per la mappa
Questo articolo descrive come usare l'interfaccia dell'interfaccia utente dell'app multipiattaforma .NET (.NET MAUI). IMap Questa interfaccia consente a un'applicazione di aprire l'applicazione mappa installata in una posizione o un punto di posizione specifico.
L'implementazione predefinita dell'interfaccia IMap
è disponibile tramite la Map.Default proprietà . Sia l'interfaccia che Map
la IMap
classe sono contenute nello spazio dei Microsoft.Maui.ApplicationModel
nomi .
Introduzione
Per accedere alla funzionalità del browser, è necessaria la configurazione specifica della piattaforma seguente.
Android usa lo geo:
schema URI per avviare l'applicazione maps nel dispositivo. Ciò potrebbe richiedere all'utente di selezionare da un'app esistente che supporta questo schema URI. Google Mappe supporta questo schema.
Nel file Platforms/Android/AndroidManifest.xml aggiungere i nodi seguenti queries/intent
al manifest
nodo:
<queries>
<intent>
<action android:name="android.intent.action.VIEW" />
<data android:scheme="geo"/>
</intent>
</queries>
Uso della mappa
La funzionalità della mappa funziona chiamando il IMap.OpenAsync metodo e passando un'istanza Location del tipo o Placemark . L'esempio seguente apre l'app mappa installata in una posizione GPS specifica:
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
}
}
Suggerimento
I Location
tipi e Placemark
si trovano nello spazio dei Microsoft.Maui.Devices.Sensors
nomi .
Quando si usa un Placemark
oggetto per aprire la mappa, sono necessarie altre informazioni. Le informazioni consentono all'app di mappa di cercare il posto che si sta cercando. Sono richieste le informazioni seguenti:
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 se la mappa è stata aperta
È sempre possibile che l'apertura dell'app mappa non sia riuscita, ad esempio quando non è presente un'app mappa o che l'app non dispone delle autorizzazioni corrette. Per ogni IMap.OpenAsync overload del metodo è presente un metodo corrispondente IMap.TryOpenAsync , che restituisce un valore booleano che indica che l'app della mappa è stata aperta correttamente. Nell'esempio di codice seguente viene usato il TryOpenAsync
metodo per aprire la mappa:
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
}
Metodi di estensione
Finché lo Microsoft.Maui.Devices.Sensors
spazio dei nomi viene importato, che esegue automaticamente un nuovo progetto MAUI .NET, è possibile usare il metodo OpenMapsAsync
di estensione predefinito per aprire la mappa:
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
}
}
Aggiungere l'esplorazione
Quando si apre la mappa, è possibile calcolare un itinerario dalla posizione corrente del dispositivo alla posizione specificata. Passare il MapLaunchOptions tipo al Map.OpenAsync
metodo , specificando la modalità di spostamento. L'esempio seguente apre l'app mappa e specifica una modalità di spostamento di guida:
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
}
}
Differenze tra le piattaforme
Questa sezione descrive le differenze specifiche della piattaforma con l'API mappe.
NavigationMode
supporta Bicycling, Driving e Walking.