Xamarin.Essentials: Karte
Mit der Map-Klasse kann eine Anwendung die installierte Kartenanwendung für einen bestimmten Standort oder eine bestimmte Ortsmarkierung öffnen.
Erste Schritte
Lesen Sie zum Einstieg in die Verwendung dieser API den Leitfaden mit ersten Schritte für Xamarin.Essentials, um sicherzustellen, dass die Bibliothek ordnungsgemäß installiert und in Ihren Projekten eingerichtet ist.
Verwenden von Map
Fügen Sie in Ihrer Klasse einen Verweis auf Xamarin.Essentials hinzu:
using Xamarin.Essentials;
Die Map-Funktionalität ruft die OpenAsync
-Methode mit Location
oder Placemark
zum Öffnen des optionalen MapLaunchOptions
auf.
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
}
}
}
Beim Öffnen mit einem Placemark
-Element werden die folgenden Informationen benötigt:
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
}
}
}
Erweiterungsmethoden
Wenn Sie bereits einen Verweis auf ein Location
- oder Placemark
-Element haben, können Sie die integrierte Erweiterungsmethode OpenMapAsync
mit dem optionalen MapLaunchOptions
-Element verwenden:
public class MapTest
{
public async Task OpenPlacemarkOnMap(Placemark placemark)
{
try
{
await placemark.OpenMapAsync();
}
catch (Exception ex)
{
// No map application available to open
}
}
}
Modus „Wegbeschreibung“
Wenn Sie OpenMapAsync
ohne MapLaunchOptions
aufrufen, startet die Karte an der angegebenen Position. Optional können Sie eine Navigationsroute ausgehend von der aktuellen Position des Geräts berechnen lassen. Dafür muss NavigationMode
für MapLaunchOptions
festgelegt werden.
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);
}
}
Plattformunterschiede
Besonderheiten bei der plattformspezifischen Implementierung
Android verwendet das URI-Schema geo:
, um die Kartenanwendung auf dem Gerät zu starten. Möglicherweise wird der Benutzer aufgefordert, eine vorhandene App auszuwählen, die dieses URI-Schema unterstützt. Xamarin.Essentials wurde mit Google Maps getestet, da dieser Dienst das Schema unterstützt.
API
Zugehörige Videos
Auf Channel 9 und auf YouTube finden Sie weitere Videos zu Xamarin.