Xamarin.Essentials地圖:
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
時,需要下列資訊:
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
}
}
}
擴充方法
如果您已經有 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 地圖,其支援此配置。