Sdílet prostřednictvím


Xamarin.Essentials:Mapa

Třída Map umožňuje aplikaci otevřít nainstalovanou mapovou aplikaci na konkrétní místo nebo značku místa.

Začínáme

Pokud chcete začít používat toto rozhraní API, přečtěte si úvodní příručkuXamarin.Essentials, abyste měli jistotu, že je knihovna správně nainstalovaná a nastavená ve vašich projektech.

Použití mapy

Přidejte do Xamarin.Essentials předmětu odkaz:

using Xamarin.Essentials;

Funkce Map funguje voláním OpenAsync metody s Location volitelným MapLaunchOptionsnebo Placemark otevřeným .

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
        }
    }
}

Při otevření pomocí ou Placemark, jsou vyžadovány následující informace:

  • 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
        }
    }
}

Metody rozšíření

Pokud již máte odkaz na metodu Location nebo Placemark, můžete použít integrovanou metodu OpenMapAsync rozšíření s volitelným kódem MapLaunchOptions:

public class MapTest
{
    public async Task OpenPlacemarkOnMap(Placemark placemark)
    {
        try
        {
            await placemark.OpenMapAsync();
        }
        catch (Exception ex)
        {
            // No map application available to open
        }
    }
}

Režim navigačních pokynů

Pokud zavoláte bez jakéhokoli MapLaunchOptionsvoláníOpenMapAsync, mapa se spustí do zadaného umístění. Volitelně můžete mít navigační trasu vypočítanou z aktuální pozice zařízení. Toho dosáhnete nastavením na NavigationMode MapLaunchOptions:

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);
    }
}

Rozdíly mezi platformami

  • NavigationMode podporuje Bicycling, Driving, and Walking.

Specifika implementace platformy

Android používá schéma identifikátoru geo: URI ke spuštění aplikace mapy na zařízení. To může uživatele vyzvat k výběru z existující aplikace, která podporuje toto schéma identifikátorů URI. Xamarin.Essentials je testován s Google Maps, který podporuje toto schéma.

rozhraní API

Další videa o Xamarinu najdete na Channel 9 a YouTube.