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

  • NavigationMode unterstützt Radfahren, Fahren und Gehen.

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

Auf Channel 9 und auf YouTube finden Sie weitere Videos zu Xamarin.