デスクトップ地図アプリ開発 -マップ表示-

363
0
02-01-2024 05:13 PM
Labels (1)

デスクトップ地図アプリ開発 -マップ表示-

「デスクトップ地図アプリ開発」シリーズの第3弾の記事です。

net00_01.png

3弾では、2で作成した Visual Studio プロジェクトに第1弾で作成した Web マップを表示する機能を実装します。

 

マップ表示の実装

2弾で作成した Visual Studio プロジェクトに Web マップを表示する機能を実装していきます。本記事で紹介する機能のサンプル コードは Esriジャパン GitHub でも公開しています。

 

1. MapViewModel.cs MapViewModel() を下記のように置き換えます。

 

MapViewModel.cs

public MapViewModel()
{
   _ = SetupMap();
}

 

2. MapViewModel クラスに SetupMap 関数を追加します。PortalItem.CreateAsync() メソッドの引数には、Web マップの ID を指定します。ここでは、サンプルの Web マップの ID を指定していますが、ご自身で Web マップを作成した場合は、ID を置き換えてください。

 

MapViewModel.cs

private async Task SetupMap()
{
   // Web マップの ID を使用してマップを取得する
   ArcGISPortal portal = await ArcGISPortal.CreateAsync();
   PortalItem mapItem = await PortalItem.CreateAsync(portal, "3bf36dae4cc545c8956a521fa9ada1eb");

   // MapView の Map プロパティに Web マップを割り当てる
   Map = new Map(mapItem);
   // マップをロードする
   await Map.LoadAsync();
}

 

3. ArcGIS Platform のベースマップやジオコード サービス(今後のステップで使用)にアクセスするために API キーを設定する必要があります。API キーの役割及び API キーの作成方法については、「API キーの取得」をご参照ください。

 

App.xaml.cs

ArcGISRuntimeEnvironment.Initialize(config => config
                // .UseLicense("[Your ArcGIS Maps SDK License key]")
                 .UseApiKey("[ここに取得した API キーを設定]")
                  .ConfigureAuthentication(auth => auth
                     .UseDefaultChallengeHandler() // Use the default authentication dialog

 

4. アプリを実行して、マップが表示されるか確認します。この時点では、ベースマップの地名ラベルが英語で表示されています。

net03_01.png

 

5. 次のコードを使用して、ベースマップの地名ラベルをローカライズする処理を追加します。BasemapStyleParameters を使用することで、ベースマップの地名ラベルを指定した特定の言語や、アプリを実行する OS のロケールの言語で表示することができます。

 

MapViewModel.cs

Map = new Map(mapItem);

// ベースマップ スタイルのパラメーターを作成する
var basemapStyleParameters = new BasemapStyleParameters()
{
   // ベースマップの地名ラベルを OS のロケールの言語で表示する
   LanguageStrategy = BasemapStyleLanguageStrategy.ApplicationLocale
};

// ベースマップのタイプ(ArcGISTopographic:地形図)とベースマップ スタイルのパラメーターを指定して、新しい Basemap オブジェクトを作成する
var localizedBasemap = new Basemap(BasemapStyle.ArcGISTopographic, basemapStyleParameters);
// Map の Basemap オブジェクトを新しく作成した Basemap オブジェクトに置き換える
Map.Basemap = localizedBasemap;

await Map.LoadAsync();

 

6. 再度アプリを実行して、マップが表示されるか確認します。ベースマップの地名ラベルが日本語(アプリを実行する OS のロケールの言語)で表示されています。

net03_02.png

‍‍‍‍‍‍‍‍‍‍‍Tips:ベースマップのタイプ(BasemapStyle)は、地形図(ArcGISTopographic)の他にも、道路地図(ArcGISStreets)、衛星画像(ArcGISImagery)、OpenStreetMapOSMStandard)なども使用できます。

 

3弾「マップ表示」では Web マップを表示する方法を紹介してきました。次回、第4弾ではマップ操作機能の実装方法を紹介します。


関連リンク

Labels (1)
Version history
Last update:
‎02-01-2024 08:27 PM
Updated by:
Contributors