Maps 類別可讓應用程式將已安裝的地圖應用程式開啟至特定位置或地標。
開始使用
若要開始使用此 API,請閱讀 入門指南Xamarin.Essentials,以確保連結庫已正確安裝並設定在您的專案中。
使用 Map
在類別中新增 的 Xamarin.Essentials 參考:
using Xamarin.Essentials;
Maps 的運作方式是使用 Location 或 Placemark 呼叫 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 時,需要下列資訊:
CountryNameAdminAreaThoroughfareLocality
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
}
}
}
擴充方法
如果您已經有 Location 或 Placemark 的參考,您可以使用內建擴充方法 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);
}
}
平台差異
平台實作特性
Android 使用 geo: Uri 配置以啟動裝置上的地圖應用程式。 這可能會提示使用者從支援此 Uri 配置的現有應用程式中選取。 Xamarin.Essentials 使用支援此配置的Google Maps 進行測試。