ArcGIS Runtime SDK for Android は幾度もバージョンアップを重ね、今現在も進歩し続けている Android マッピング アプリケーションの開発キットです。その中でも今回は API の新機能ではなく、改善に焦点を当ててご紹介します。10.2 以降の改善でよりシンプルに地図表示ができるようになりました。
MapOptions クラスおよび mapoption 属性を使ったプログラムの簡易化
10.2 以降導入された新しい API では ArcGIS Online のベースマップを利用する場合に、MapView(マップを表示するための UI コンポーネント)をより簡単に作成できるようになりました。
以前の API では、画面レイアウト(XML)ファイルで初期表示範囲(Xmin,Ymin,Xmax,Ymax)を指定したり、
initExtent = "15554860 4255318 15562198 4258710"
Java ファイルでレイヤを追加したりする必要がありました。
// クラスのインポート import com.esri.android.map.MapView; import com.esri.android.map.ags.ArcGISTiledMapServiceLayer; … // マップ表示 UI コンポーネントの変数宣言 MapView mMapView; … // 画面レイアウト ファイルから初期表示範囲を取得 mMapView = (MapView)findViewById(R.id.map); // MapView にレイヤを追加 mMapView.addLayer(new ArcGISTiledMapServiceLayer ("http://services.arcgisonline.com/arcgis/rest/services/World_Street_Map/MapServer"));
新しい API で MapOptions クラスを使用すれば緯度経度による地図の中心やズームレベル、ベースマップの種類などをあらかじめ定義した MapView が簡単にインスタンス化できます。
MapOptions topo = new MapOptions(MapType.TOPO, 35.6810, 139.7671, 15); MapView mMapView = new MapView(this, topo);
また Java で実装せずに mapoptions 属性を用いた 画面レイアウト(XML)ファイルで MapOptions を MapView に割り当てることも可能です。
<!-- MapView に MapOptions(地形図(ベースマップ)、ズームレベル、地図の中心)を割り当てる --> <com.esri.android.map.MapView android:id="@+id/map" android:layout_width="fill_parent" android:layout_height="fill_parent" mapoptions.MapType="topo" mapoptions.ZoomLevel="15" mapoptions.center="35.6810, 139.7671"/>
いかがでしたか?今回ご紹介したのは非常に簡単な一例です。このように ArcGIS Runtime SDK for Android は、よりシンプルに、開発しやすいよう進化しています。
今後のバージョンアップもぜひご期待ください。
■関連リンク
ESRIジャパン Web サイト:http://www.esrij.com/products/arcgis-runtime-sdk-for-android/
ArcGIS Runtime SDK for Android:https://developers.arcgis.com/android/