オフライン編集のサンプル アプリケーションの紹介 ~ArcGIS Runtime SDK for iOS~

ArcGIS Runtime SDK for iOS は iPhone や iPad 向けのネイティブ アプリケーションを開発するための開発キットです。ArcGIS Runtime SDK for iOS は ArcGIS for Server で配信されている Web マップ サービスのクライアント製品であるため、基本的にインターネットに接続されている(オンライン)環境で使用することが前提ですが、一時的にインターネットに接続されていない(オフライン)環境で使用できるようにアプリケーションを開発することも可能です。

米国 Esri 社の ArcGIS Online には一時的なオフライン環境でデータ編集(新規フィーチャの作成)を行うサンプル アプリケーションが公開されています。
※ArcGIS for Server で配信されている Web マップ サービスを編集するには、「フィーチャ サービス」という形式でマップ サービスを公開する必要があります

ArcGIS Online:「Online-Offline Editing Sample」
※提供は終了しました

Sample_2


このサンプルではオフライン環境で使用するために以下の 2 つの仕組みを利用しています。

①タイル パッケージを使用したベースマップの表示(背景地図用)
ArcGIS 10.1 からタイル パッケージという機能が用意されています。タイル パッケージは ArcMap 上でマップから縮尺毎のタイル(画像)のセットを *.tpk ファイルという形式で作成します。この tpk ファイルを iOS デバイス上にコピーすることで、オフライン環境でもアプリケーション上でマップを表示することが可能です。
※タイル パッケージはベースマップ(背景地図)としてのみ利用可能で、属性情報の表示や検索は行えません

Tpk_3

ArcGIS Runtime SDK for iOS では、この tpk ファイルを表示するために「AGSLocalTiledLayer」クラスが用意されています。
・実装例
AGSLocalTiledLayer* layer = [AGSLocalTiledLayer localTiledLayerWithnmae:@”<tpk ファイルの名前>”];

AGSLocalTiledLayer クラスの詳細については、ヘルプをご参照ください。

②JSON を使用したフィーチャの編集(主題図用)
ArcGIS Runtime SDK for iOS ではオフライン環境で編集を行うためにレイヤやフィーチャの情報(ジオメトリや属性)を JSON 形式の文字列に変換することが可能です。
ArcGIS Runtime SDK for iOS で提供される各クラス(AGSFeatureLayer, AGSFeatureSet, AGSPoint, AGSPolygon など)には、encodeToJSON というメソッドが用意されています。このメソッドを使用して、オフライン環境では新規に作成したフィーチャの情報を JSON 形式の文字列に変換し、デバイスのローカルファイルやデータベースに書き込みます。保存した JSON 形式の文字列は各クラスに用意されている initWithJSON などのメソッドを使用して、元の形式に戻すことが可能です。
サンプルではこれらの仕組みを利用して、オフライン環境でフィーチャ サービスに対して編集を行っています。

Json_4

ArcGIS Runtime SDK for iOS での JSON の利用に関しては、ヘルプ「Working with JSON」をご参照ください。

開発者の方は ArcGIS Online に公開されているサンプル アプリケーションをダウンロードすることで、一時的なオフライン環境で利用できるアプリケーションを開発するための詳細なプログラミング方法を知ることができます。
現在リリースされているスマートフォンやタブレット向けの ArcGIS 製品では、今回ご紹介したような機能を実装する必要がありますが、現在、米国 Esri 社では標準機能としてオフライン環境で利用できるような仕組みを開発中です。今後、より簡単にオフライン環境で利用できるスマートフォンやタブレット向けの ArcGIS 製品にご期待ください。

また、今年のGISコミュニティフォーラム(プレフォーラム・セミナー)の下記セッションでは、このサンプルを使用したデモ及び機能の実装方法についてもご紹介します。
ご興味がある方は是非ご参加いただければ幸いです。

Gcf_2

■関連リンク
ArcGIS Runtime SDK for iOS
第9回 GISコミュニティフォーラム