Xamarin.Essentials地圖:

Maps 類別可讓應用程式將已安裝的地圖應用程式開啟至特定位置或地標。

開始使用

若要開始使用此 API,請閱讀 入門指南Xamarin.Essentials,以確保連結庫已正確安裝並設定在您的專案中。

使用 Map

在類別中新增 的 Xamarin.Essentials 參考:

using Xamarin.Essentials;

Maps 的運作方式是使用 LocationPlacemark 呼叫 OpenAsync 方法,來使用選擇性的 MapLaunchOptions 開啟。

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

當開啟 Placemark 時,需要下列資訊:

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

擴充方法

如果您已經有 LocationPlacemark 的參考,您可以使用內建擴充方法 OpenMapAsync 搭配選擇性的 MapLaunchOptions

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

路線模式

如果您呼叫 OpenMapAsync 而不搭配任何 MapLaunchOptions,地圖將會開啟至指定的位置。 您也可以選擇從裝置的目前位置計算導航路線。 這是透過設定 MapLaunchOptions 上的 NavigationMode 來完成的:

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

平台差異

  • NavigationMode 支援腳踏車、開車與走路。

平台實作特性

Android 使用 geo: Uri 配置以啟動裝置上的地圖應用程式。 這可能會提示使用者從支援此 Uri 配置的現有應用程式中選取。 Xamarin.Essentials已測試Google 地圖,其支援此配置。

API

Channel 9YouTube 上尋找更多 Xamarin 影片。