Xamarin.Essentials:マップXamarin.Essentials: Map

Map クラスを使用すると、アプリケーションによってインストールされているマップ アプリケーションを使用して、特定の場所または placemark を開くことができます。The Map class enables an application to open the installed map application to a specific location or placemark.

作業開始Get started

この API の使用を始めるには、Xamarin.Essentials の概要ガイドを読み、ライブラリが正しくインストールされてプロジェクトに設定されていることを確認してください。To start using this API, read the getting started guide for Xamarin.Essentials to ensure the library is properly installed and set up in your projects.

Map の使用Using Map

自分のクラスの Xamarin.Essentials に参照を追加します。Add a reference to Xamarin.Essentials in your class:

using Xamarin.Essentials;

Map 機能は、OpenAsync メソッドを、開く Location または Placemark と省略可能な MapLaunchOptions と共に呼び出すことで動作します。The Map functionality works by calling the OpenAsync method with the Location or Placemark to open with optional MapLaunchOptions.

public class MapTest
{
    public async Task NavigateToBuilding25()
    {
        var location = new Location(47.645160, -122.1306032);
        var options =  new MapLaunchOptions { Name = "Microsoft Building 25" };

        await Map.OpenAsync(location, options);
    }
}

Placemark と共に開く場合、次の情報が必要です。When opening with a Placemark, the following information is required:

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

        await Map.OpenAsync(placemark, options);
    }
}

拡張メソッドExtension Methods

Location または Placemark への参照が既にある場合は、省略可能な MapLaunchOptions と共に組み込みの拡張メソッド OpenMapAsync を使用することができます。If you already have a reference to a Location or Placemark, you can use the built-in extension method OpenMapAsync with optional MapLaunchOptions:

public class MapTest
{
    public async Task OpenPlacemarkOnMap(Placemark placemark)
    {
        await placemark.OpenMapAsync();
    }
}

ルート案内Directions Mode

MapLaunchOptions なしで OpenMapAsync を呼び出した場合、指定した場所でマップが起動します。If you call OpenMapAsync without any MapLaunchOptions, the map will launch to the location specified. 必要に応じて、デバイスの現在位置から計算されるナビゲーション ルートを取得することができます。Optionally, you can have a navigation route calculated from the device's current position. これは、MapLaunchOptionsNavigationMode を設定することによって行います。This is accomplished by setting the NavigationMode on the 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);
    }
}

プラットフォームによる違いPlatform Differences

  • NavigationMode ではサイクリング、ドライビング、徒歩がサポートされています。NavigationMode supports Bicycling, Driving, and Walking.

プラットフォームの実装の詳細Platform Implementation Specifics

Android では、URI スキーム geo: を使用してデバイス上のマップ アプリケーションを起動します。Android uses the geo: Uri scheme to launch the maps application on the device. これにより、この URI スキームをサポートしている既存のアプリから選択するよう、ユーザーが求められる場合があります。This may prompt the user to select from an existing app that supports this Uri scheme. Xamarin.Essentials は、このスキームをサポートしている Google マップを使用してテストされます。Xamarin.Essentials is tested with Google Maps, which supports this scheme.

APIAPI

他の Xamarin ビデオは、Channel 9 および YouTube でご覧いただけます。Find more Xamarin videos on Channel 9 and YouTube.