モバイルで地図アプリといえば、多くの方は 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 ツールキットは MapVIew や SceneView のコンポーザブル UI コンポーネントを提供します。MapView や SceneView を使うことで、作成したマップやシーンを画面に表示させることができます。
Compass ツールキットはマップ上にコンパスを表示させるためのコンポーザブル UI コンポーネントを提供します。
Scalebar ツールキットを使うと、マップにスケール バー(縮尺)を表示できます。 ヤード・ポンド法/メートル法の切り替えや、色・サイズの変更などカスタマイズも可能です。
GeoView、Compass、Scalebar を組み合わせた画面例が次の画像です。
Legend ツールキットはマップ上に凡例を表示させるコンポーザブル UI コンポーネントを提供します。凡例やシンボルは表示されている範囲のレイヤーに応じて動的に変化します。事前に ArcGIS Online 上で参照するレイヤーの設定を変更しておくと、より凡例が見やすくなります。
BasemapGallery ツールキットは、利用可能なベースマップをグリッド形式で表示するコンポーザブル UI コンポーネントを提供します。 一般的には、ArcGIS 組織で設定されているベースマップを元に BasemapGalleryItem を作成し、それを BasemapGallery に渡して利用します。
OfflineMapAreas ツールキットは、Web マップに設定されたオフライン エリアをダウンロードし、オフライン環境でもマップを利用できるようにするコンポーザブル UI コンポーネントを提供します。あらかじめ ArcGIS Online または ArcGIS Location Platform で Web マップにオフライン エリアを設定しておくと、ツールキット側で読み取り、オフライン マップとして利用可能になります。
OverviewMap ツールキットは概観図を表示させるためのコンポーザブル UI コンポーネントを提供します。一般的には マップ ビューの上に表示して使われます。
本記事では、ArcGIS Maps SDK for Kotlin の主要な UI ツールキットをいくつか紹介しました。このほかにも FeatureForm や Popup など、多数のコンポーネントが利用可能です。興味がある方はこちらのツールキット一覧から探してみてください。