はじめに
モバイルで地図アプリといえば、多くの方は Google マップや Apple マップ、Yahoo!マップなどを思い浮かべるかもしれません。ArcGIS というとデスクトップ製品のイメージが強く、モバイル向けの印象はあまりないかもしれませんが、ArcGIS Maps SDK for Kotlin を使うことで、Android 向けに地図アプリを開発できます。ArcGIS では Android アプリの開発言語として Kotlin を採用しており、UI は Jetpack Compose を使用します。Jetpack Compose は Android のネイティブ UI を宣言的に構築できる最新のツールキットです。
本記事では、まず地図表示に必須となる GeoView-Compose を紹介し、その後に主要なツールキットをいくつか取り上げます。
本記事に掲載されている画像と動画の一部では、Living Atlas でパブリックに公開されているアイテム「エゾシカ情報マップ(林野庁北海道森林管理局)」を使用しています。
GeoView
GeoView ツールキットは MapVIew や SceneView のコンポーザブル UI コンポーネントを提供します。MapView や SceneView を使うことで、作成したマップやシーンを画面に表示させることができます。
Compass
Compass ツールキットはマップ上にコンパスを表示させるためのコンポーザブル UI コンポーネントを提供します。
Scalebar
Scalebar ツールキットを使うと、マップにスケール バー(縮尺)を表示できます。 ヤード・ポンド法/メートル法の切り替えや、色・サイズの変更などカスタマイズも可能です。
GeoView、Compass、Scalebar を組み合わせた画面例が次の画像です。
Legend
Legend ツールキットはマップ上に凡例を表示させるコンポーザブル UI コンポーネントを提供します。凡例やシンボルは表示されている範囲のレイヤーに応じて動的に変化します。事前に ArcGIS Online 上で参照するレイヤーの設定を変更しておくと、より凡例が見やすくなります。
補足-ArcGIS Online で表示縮尺の設定
- ArcGIS Online もしくは ArcGIS Location Platform で Feature Layer のアイテムを Map Viewer で開く
- 設定対象のレイヤーをクリックしプロパティを開く
- プロパティ内の表示可能な範囲からスライダーを調整する
- 設定したレイヤーそれぞれに対して[・・・]から[保存]をクリックし変更内容を保存する
BasemapGallery
BasemapGallery ツールキットは、利用可能なベースマップをグリッド形式で表示するコンポーザブル UI コンポーネントを提供します。 一般的には、ArcGIS 組織で設定されているベースマップを元に BasemapGalleryItem を作成し、それを BasemapGallery に渡して利用します。
OfflineMapAreas
OfflineMapAreas ツールキットは、Web マップに設定されたオフライン エリアをダウンロードし、オフライン環境でもマップを利用できるようにするコンポーザブル UI コンポーネントを提供します。あらかじめ ArcGIS Online または ArcGIS Location Platform で Web マップにオフライン エリアを設定しておくと、ツールキット側で読み取り、オフライン マップとして利用可能になります。