「デスクトップ地図アプリ開発」シリーズ第6弾です。
![net00_01.png net00_01.png](https://community.esri.com/t5/image/serverpage/image-id/91946iA2AFAC25564699F0/image-size/large?v=v2&px=999)
今回は、第5弾で作成した地図アプリに、デバイスの現在地を表示する機能を追加します。本記事で紹介する機能のサンプル コードは Esriジャパン GitHub で公開しています。
現在地の表示
ArcGIS Maps SDK for .NET(以下、SDK)では、デバイスの現在地をマップ上に簡単に表示できます。現在地にシンボルを表示したり、現在地の変化に応じて、現在地がマップの中心にくるように、自動でナビゲーションされたりするような機能などが用意されています。現在地はデバイス内蔵の位置情報プロバイダーの情報を使用できる他、外部接続された GNSS デバイスやシミュレートされた位置(テキスト情報)を使用することもできます。今回は、Windows デバイス内蔵の位置情報プロバイダーが提供する現在地をマップに表示する機能を実装します。
1. MainWindow.xaml.cs の InitializeComponent() の後に、MapViewの LocationDisplay 現在地表示を有効化する機能を設定します。
MainWindow.xaml.cs
public MainWindow()
{
InitializeComponent();
// 現在地をマップ上に表示する
MainMapView.LocationDisplay.IsEnabled = true;
MainMapView.LocationDisplay.AutoPanMode = LocationDisplayAutoPanMode.Recenter;
}
Tips: LocationDisplay の AutoPanModeには4つのモードが用意されています。
- Recenter: マップの範囲外に現在地が移動したとき、現在地をマップの中心するようにマップが自動で移動します。
- Navigation: 現在地シンボルはスクリーン上の一点に固定され、マップは現在地の更新と進行方向に基づいて自動で移動/回転します。
- CompassNavigation: 現在地シンボルはスクリーン上の一点に固定され、マップはユーザーの方位(磁北を基準)に応じて自動で移動/回転します。
- Off: マップ上の現在地シンボル位置のみを更新します。現在地が変化してもマップは移動しません。
Windows デバイスで位置情報サービスを有効にする
Windows デバイスの位置情報サービスが無効になっている場合は、SDK の機能を確認するためその設定を有効にします。
1. Windows の [設定] → [プライバシーとセキュリティ] → 「アプリのアクセス許可」カテゴリにある [位置情報] → [位置情報サービス] の順でクリックし、下記項目をオンにします。
- 位置情報サービス
- アプリに位置情報へのアクセスを許可する
- デスクトップ アプリに位置情報へのアクセスを許可する
2. アプリを実行してみましょう。デバイスの位置情報サービスで提供される現在地に青い円が表示されているのが確認できます。
![net06_01.png net06_01.png](https://community.esri.com/t5/image/serverpage/image-id/91947i407774BB0AEFBCB4/image-size/large?v=v2&px=999)
第6弾「現在地の表示」ではデバイスの現在地をマップ上に表示する方法を紹介しました。次回、第7弾では住所検索機能の実装方法を紹介します。
関連リンク