ArcGISアプリケーション開発種類¶
概要¶
ArcGISでは、ネットワークサービス、Webアプリケーション、デスクトップアプリケーション、モバイル端末アプリケーションなどを開発することができます。
プラットフォーム別¶
デスクトップアプリケーション¶
開発には、ArcObjectsと呼ばれるGIS基盤部品集を使うものと、ArcGIS Runtime SDKと呼ばれるGISライブラリを使うものがあります。また、最近、ArcGIS Proと呼ばれるArcObjectsの後継が登場しました。
ArcObjectsは古くから積み重ねられてきた熟成のライブラリで、ArcMap・ArcScene・ArcGlobeのコアでもあり、非常に多くの機能を持ちます。一方、Windows 32bitのCOM技術で作られているので、Windows以外のOSでの利用や使用できるメモリ空間の制約といったデメリットもあります。
ArcGIS Runtime SDKは64bit対応/マルチスレッド対応の新しいライブラリで、モバイル端末を含む幅広いプラットフォームに対応しています。ただし、ArcObjectsほどの機能はありません。
この両者の選択はトレードオフになります。
ArcGIS Proは、.NET Framework上で動作するアプリケーションです。64bit対応、2D/3Dの統合、Webとの統合を狙った新しいデスクトップ環境です。SDK(API)も提供されています。
モバイル端末アプリケーション¶
モバイル端末のアプリケーション(ネイティブアプリケーション)開発には、ArcGIS Runtime SDKを使用します。
Webアプリケーション¶
JavaScriptベースのWebアプリケーションを開発する、ArcGIS API for JavaScriptを使用します。
API 4.0では、2D/3Dに対応します。
クラウド¶
ArcGIS Onlineサービスを利用します。
API別¶
ArcObjects¶
Microsoftのコンポーネント技術COMで作られたライブラリです。ArcGIS Desktopの基盤となっています。
.NET Framework言語(C#やVBなど)やJava言語などからArcObjectsを利用するためのAPIがそれぞれ用意されています。
32bit版バイナリであり、今となってはメモリの壁(32bitバイナリ)、マルチスレッドの壁(COMは基本シングルスレッドで動作)などがあります。
詳細は、ArcObjectsページへ。
- 参考資料
ArcGIS Runtime¶
ArcGISの中核となるArcObjectsとはまったく別個に、モバイル端末を含めた各種プラットフォームに対応する地図アプリケーション開発ライブラリです。
プラットフォームに応じて各プログラミング言語ネイティブで作られたライブラリです。
- 対応プラットフォームと対応言語
Android(Java), Windows(Java/C++ Qt/.NET WPF/.NET Store API), Linux(Java/C++ Qt), iOS(Objective-C), MacOS X(Objective-C), Windows Mobile(.NET), Windows Phone(.NET/WPF)
ArcObjectsに比べて機能は少なく、ArcGIS for ServerやArcGIS Onlineに対するクライアントアプリケーションや単独のアプリケーションを開発する用途に使います。
詳細は、ArcGIS Runtimeページへ。
ArcGIS Server¶
トレードオフ¶
機能¶
ArcGIS Engine/ArcGIS Runtime SDK for WPF 比較表(V10.2)
ArcObjects or the ArcGIS Runtime SDKs for Java and WPF—which is right for you?- Javaで開発するならRuntime SDKが圧倒的にメリットあり(というか、ArcObjectsのJava開発が悲惨かも)
- Runtimeでは3D可視化はできない(3D Analyst Extensionはあるものの)
- ジオデータベースの管理用途ならArcObjects、Runtime SDKは複合フィーチャの変更ができない
- 地図編集・作成用途ならArcObjects
開発費用¶
ArcObjectsの開発には、有償の開発者ライセンス(EDN)の契約が必要です。EDNはユーザー単位で契約する必要があり、1ユーザーあたり年間25万円~(オプションにより価格差あり)が必要です。
ArcGIS Runtime SDKの開発には、無償のArcGIS for Developerに登録が必要です。
ArcObjectsやArcGIS Runtime SDKで作成するアプリケーションが使用する地図データの加工・編集には、大抵ArcMapを使用します。ArcMapの使用にはArcGIS for Desktopの購入が必要ですが、EDNにはArcGIS for Desktopの利用権が付いたオプションがあります。