本記事では、2026 年 2 月 28 日にサポート終了が予定されています ArcGIS Engine の内容について、米国 Esri 社 ArcGIS Blog の「Migrating from ArcGIS Engine – Part 2: Developer Components」を翻訳してご紹介します。
目次
はじめに
ArcGIS Engine は 2026 年 2 月 28 日にサポート終了します。ArcGIS Engine を使用してカスタム GIS アプリケーションを構築し、まだ移行を計画している場合は、この記事をご覧ください。ArcGIS Engine からの移行シリーズの最初の記事では、ArcGIS Engine の非推奨およびサポート終了(2026 年 2 月 28 日)の詳細を確認し、主な移行パスの 1 つである ArcGIS Maps SDKs for Native Apps (Native Maps SDKs) を紹介しました。
ArcGIS Engine Developer Kit は、エクステンション、開発者向けコンポーネント、マップ プレゼンテーション (マップ表現)、データ アクセス、ベース サービスの 5 つのテーマで構成されています。この投稿では、開発者向けコンポーネントをテーマに、Native Maps SDKs で現在利用可能なコンポーネントを確認します。

開発者向けコンポーネント
ArcGIS Engine には、.NET 用の Windows Forms コントロール、または、Java 用の VisualBeans コンポーネントとしてのみ利用可能な、組込みのユーザー インターフェース(UI)コントロールのコレクションが含まれていました。これらのコントロールには、2D 表示用の MapControl、3D ビジュアライゼーション用の GlobeControl と SceneControl のほか、PageLayoutControl、TOCControl (Table of Contents)、ToolbarControl、SymbologyControl、LicenseControl が含まれています。さらに、ArcGIS Engine には、マップのナビゲーション、フィーチャの選択、編集など、特定の一般的な動作を UI に組み込むための、より細かい UI コマンド、ツール、ツール コントロール、ツールセット、メニュー、パレットのセットが含まれています。
Native Maps SDKs には、組織や開発者が今日サポートすることを目的としている多様な最新のデバイス タイプ、ビジュアル スタイル、ユーザー エクスペリエンスをサポートするように設計された API と開発者向けコンポーネントが含まれています。これらの開発者コンポーネントは、より広範な言語、フレームワーク、プラットフォームをサポートし、開発者が選択した環境で自然に作業できることを保証すると同時に、どの Native Maps SDKs を選択しても一貫したマッピングと位置情報機能を楽しむことができます。
Native Maps SDKs
5 つの Native Maps SDKs があり、それぞれ異なる開発環境と開発者エクスペリエンスに対応し、特定のデバイスとオペレーティング システムをターゲットにしています。
- .NET Maps SDK: .NET MAUI、WinUI、WPF を使用してモバイル アプリケーションとデスクトップ アプリケーションを構築します。NuGet パッケージとして提供される SDK には、Visual Studio プロジェクト テンプレートも含まれており、開発を始めるのに役立ちます。
- Flutter Maps SDK: Android と iOS 用のモバイル アプリケーションを作成します。SDK は pub.dev パッケージとして提供され、VS Code の Flutter プロジェクトに簡単に統合できます。
- Kotlin Maps SDK: Kotlin を使用してスマートフォンやタブレット用の Android アプリケーションを開発します。この SDK には Gradle 統合とコンポーザブル ビューが含まれており、Android Studio や IntelliJ IDEA ですぐに始めることができます。
- Qt Maps SDK: Qt Creator を使用して Qt フレームワークでデスクトップまたはモバイル向けのマッピング アプリケーションを構築します。この SDK は堅牢な C++ API を提供し、Qt Quick または Qt Widgets ユーザー インターフェース (UI) で構築されたアプリケーションをサポートします。
- Swift Maps SDK: SwiftUI API と最新の Swift 言語機能を使用して、Apple デバイス用のマッピング アプリケーションを作成できます。Swift Package として利用可能な SDK は、Swift Package Manager を使用して Xcode プロジェクトに簡単に統合できます。
MapView
Native Maps SDKs のマップ ビュー コンポーネントは、2D マップの表示とインタラクションを提供するという点で、ArcGIS Engine の MapControl と同等です。MVC アーキテクチャーでは、マップ ビューは View 層を表します。Model 層は、ベースマップ レイヤーと 1 つ以上のオペレーション データ レイヤーからなる地理データのレイヤーを含む Map オブジェクトによって表されます。このシリーズの次の記事では、マップ、ベースマップ、レイヤー、スタイリングなどを含むマップ プレゼンテーション (マップ表現) について説明します。
Native Maps SDKs に含まれる 2D MapView コントロール
ユーザー インタラクション
マップ ビューでは、マウス、キーボード、タッチなど、さまざまなデバイスに適したインタラクション方法で、ズーム、パン、回転などの操作を行うことができます。Android や iOS では、ダブルタップやドラッグなど、フォームファクターに特化した使い慣れたジェスチャで連続ズームが可能です。さらに、ユーザーは、マップ ビュー上の識別および選択メソッドを使用して、タップまたはクリックイベントを通じて、マップ要素に関する詳細情報を取得し、それらを強調表示することができます。さらに、マップ ビューはジオメトリー エディター コンポーネントをサポートしており、ユーザーはアプリケーション内でインタラクティブにジオメトリーを追加または変更できます。
位置情報表示
マップ ビューには、いわゆる「ブルー ドット」エクスペリエンスと呼ばれる高度な位置情報表示機能が搭載されています。デフォルトでは、デバイス内蔵機能を使用して更新情報を提供するシステム ロケーション データソース クラスを使用しますが、外部の NMEA ソースと統合して正確なデータを取得することもできます。さらに、位置情報表示は屋内位置情報ソースと連携したり、独自の位置情報プロバイダーと連携するようにカスタマイズしたりすることも可能です。位置情報表示は、単にブルー ドットを表示するだけではありません。ジオトリガーと呼ばれる機能によるジオフェンシング、音声ガイダンスと自動ルート変更によるターンバイターン方式のナビゲーション、そしてユーザーが施設内を移動する際にフロア対応マップ上で自動的にフロアを切り替える機能も備えています。
位置表示では、マップ ビュー上にデバイスの位置が表示されます
情報表示
マップ ビューでは、緯度経度グリッドやユニバーサル横メルカトル図法グリッドなどの座標系グリッドを表示できます。また、テキストやその他のコンテンツなど、フィーチャに関する追加情報を吹き出しに表示することもできます。これらの情報は、引き出し線で特定の位置に関連付けられます。マップ ビューは、グラフィックス オーバーレイのコレクションとして管理されるメモリー内のグラフィックを使用して、一時データを高パフォーマンスで表示できます。これらのグラフィックは常に他のすべてのマップ レイヤーの上に表示され、場所の検索結果や車両の位置などの情報を表示するために使用されます。さらに、マップ ビューはイメージ オーバーレイをサポートしているため、気象レーダー画像などの地理参照画像や画像シーケンスを他のマップ コンテンツの上に効率的に表示できます。
ジオメトリーの編集
Native Maps SDKs は、ジオメトリー エディター コンポーネントを使用して空間データの作成と管理をサポートします。このコンポーネントはマップ ビューと連携し、デスクトップ ユーザーとモバイル ユーザーの両方にインタラクティブなジオメトリー編集エクスペリエンスを提供します。マップ ビューはこれらのジオメトリー エディター インスタンスを 1 つ以上サポートしており、マップ ビュー上でのユーザー インタラクションをキャプチャし、ユーザーがインタラクティブに既存のジオメトリーを追加または変更できるようにします。ジオメトリー エディターは、頂点、エッジ、マルチパート ジオメトリーの包括的な選択方法と、編集エクスペリエンスをより細かく制御する機能を提供します。回転や拡大縮小のコマンドに加え、楕円、三角形、四角形、矢印などの定義済みシェイプ (ポリラインまたはポリゴンとして表現可能) の作成を簡素化するシェイプ ツールも備えています。タッチベースのデバイスでは、レチクルベースの編集エクスペリエンスを使用して精密なジオメトリー編集を行うことができます。これは、データ収集および編集中に指先や手袋でデバイス画面の一部が隠れる可能性があるため、モバイル ワークフローで特に役立ちます。
ジオメトリー エディターを使用してジオメトリーを編集し、マップ上の既存のフィーチャに合わせて配置します
頂点の追加時には、新しい頂点とそれに接続されたエッジのリアルタイム プレビューが表示され、視覚的なフィードバックが提供されるため、より意図的な配置が容易になります。ジオメトリーのインタラクティブな作成および編集中の既存フィーチャへのスナップは、編集がフィーチャに正常にスナップされたことを示す視覚的な合図によって強化されます。ジオメトリー ガイドとして知られる動的なスナップ機能は、頂点の編集中に垂直線や平行線を描くのに役立ちます。さらに、設定されたスナップ ルールに従って頂点がスナップされたときにモバイル デバイスが振動する、触覚フィードバックがさらにエクスペリエンスを向上させます。
開発者向け機能
マップ ビューには、開発者にとって便利な機能がいくつか用意されています。マップ レイヤーの属性テキストが自動的に表示されるため、データ利用条件への準拠が確保されます。描画ステータスにより、マップのレンダリング中と完了を開発者とユーザーに知らせることができます。また、レイヤー ビューの状態を示すイベントとプロパティにより、各マップ レイヤーの状態が示され、レイヤーが表示されているかエラーがあるかどうかが示されます。
SceneView
Native Maps SDKs のシーン ビュー コンポーネントは、ArcGIS Engine の GlobeControlに相当し、World Geodetic System 1984 (WGS84) 座標系で 3D グローブ上にレイヤーとデータを表示します。MVC アーキテクチャーでは、シーン ビューは View 層を表し、Model 層はレイヤーなどへのアクセスを提供する Scene オブジェクトによって表されます。シーン ビューは、パン、ズーム、個別属性表示、選択、座標系グリッド、イメージ オーバーレイなど、2D マップ ビューと同じ機能を多数サポートしています。
Native Maps SDKs に含まれる 3D SceneView コントロール
3D インタラクションとワークフロー
シーン ビューは、3D インタラクションやワークフローに特化した機能もサポートしています。可視領域を定義するためにカメラを使用し、パンやズームのような従来の操作に加え、傾きや回転のような 3D 特有の操作もサポートします。カメラ コントローラー クラスは特定のユーザー エクスペリエンスを作成するのに役立ち、ユーザーがシーンの周りを自由にナビゲートしたり、特定の場所や動くオブジェクトにインタラクションを制限したりすることができます。
シーン ビューは、水平線、空、空間を見ることができ、視覚的な外観を調整するためのプロパティを提供します。これには、環境光、大気効果、空間効果、太陽光、影、太陽の位置の設定が含まれます。
シーンビューには、グラフィックスやイメージ オーバーレイと並んで、見通し線や可視領域操作のためのインタラクティブなビジュアル解析ツールの結果を表示する解析オーバーレイ コレクションがあります。異なるタイプの解析の詳細については、このシリーズの今後の記事で説明します。
3D シーン ビューは、2D マップ ビュー以上の機能を提供する一方で、インタラクティブなジオメトリー エディター エクスペリエンスと位置表示の 2 つの機能は、現在利用できません。
Toolkit
各 Native Maps SDKs には、最新の地理空間クライアント アプリケーション開発向けに特別に設計された、ビルド済みのコントロールとコンポーネントを備えたオープンソースのツールキットが含まれています。これらはそのまま利用することも、アプリケーションのニーズに合わせてカスタマイズすることもでき、開発プロセスを効率化します。通常、NuGet などの適切なアーティファクト リポジトリからパッケージを追加することで、ツールキットをプロジェクトに統合できます。または、対応する GitHub リポジトリからソースコードをダウンロードし、リポジトリに記載されている手順に従ってツールキットを自分でビルドすることもできます。

オープンソース ツールキットには、共通のコントロールとコンポーネントが含まれています
ツールキットには、ほとんどの SDK で利用可能なコアなコンポーネントセットが提供されています。それらには以下が含まれます。
- 認証ビュー: セキュリティー保護されたサービスやコンテンツをリクエストする際に、各種の認証エラーが発生した場合に、適切なユーザー認証情報の入力を求めるユーザー インターフェースを表示します。
- ベースマップ ギャラリー: ArcGIS Online、Portal for ArcGIS、または開発者が定義したベースマップ コレクションのベースマップを表すアイテムのコレクションを表示します。ユーザーがベースマップ ギャラリーからベースマップを選択すると、マップまたはシーン内の現在のベースマップが削除され、選択したベースマップに置き換えられます。
- ブックマーク ビュー: Web マップまたは Web シーンのブックマーク、またはコードで定義されたブックマークで表されるビュー ポイントのコレクションを表示します。ユーザーがリストからブックマークを選択すると、ビューのビュー ポイントはブックマークの範囲に設定されます。
- コールアウト: マップまたはシーン上の地理的位置の情報を表示します。コールアウトを表示することで、ユーザーがマップ上でタップした座標を示したり、ジオ ビューで特定された地物やグラフィックに関する情報を提供したり、ユーザーの現在位置にコールアウトを表示したりできます。
- コンパスまたは方位記号:MapView または SceneView にコンパスの方向を表示します。タップまたはクリックするとビューの方向がリセットされ、マップが北を向いている場合は自動的に非表示になる場合があります。
- フィーチャ フォーム ビュー:Web ベースの Map Viewer または Fields Maps Designer Web アプリケーションで作成された、事前構成済みのスマート フィーチャ フォームを使用して、フィーチャのフィールド値を編集できます。フィーチャ レイヤーの JSON メタデータに保存されているフォーム定義によって、フィーチャ属性を編集するための UI が指定されます。これらのスマート フォームは、ユーザーが値を更新する際に、フィールドを必須、編集/表示可能にする動的な操作により、ArcGIS システム全体でフィーチャ属性の編集エクスペリエンスを効率化します。
- フロア フィルター:ユーザーが施設のどのフロアを表示するかを選択できます。敷地、敷地内の施設、施設内のフロアを表示し、フロア対応のマップやシーンでレベルの表示/非表示を切り替えることができます。マップ ビューの位置表示の屋内ブルー ドット エクスペリエンスと連携します。
- 概観図: 特定のマップまたはシーンの現在の視点を表す、小さなセカンダリー MapView (「インセット マップ」と呼ばれることもあります) を定義します。
- ポップアップ ビュー: レイヤー内の個々のフィーチャのフィールド値を表示するポップアップを表示します。これには、フィーチャのタイトル、属性、カスタム説明、メディア (画像とグラフ)、添付ファイルが含まれます。
- 検索ビュー: 1 つ以上のロケーターを使用した検索を容易にし、候補表示、自動ズーム、カスタム検索ソースをサポートします。
- スケール バーまたはスケール ライン: マップ ビュー上で距離を視覚的に測定するために使用できる、正確な線形測定の表現を表示します。
- ユーティリティー ネットワーク トレース: ユーティリティー ネットワークと 1 つ以上のトレース構成を使用して作成されたマップに対して、ユーティリティー ネットワーク トレース エクスペリエンスを有効にします。
開発チームは、各 SDK の Toolkit の一貫性を目指していますが、ユーザーからの要望やフィードバックに基づいて、いくつかの差異が発生する場合があります。一部の SDK には、Swift のみで提供されるオフライン マップ エリア コンポーネント、.NET と Kotlin のみで提供される凡例、または Qt のみで提供される座標変換など、すべてのツールキットではまだ利用できないコンポーネントが含まれています。さらに、いくつかの機能は、.NET Maps SDK の認証コンポーネントのように、ツールキットではなく API 内に直接統合されています。選択した SDK の Toolkit に追加してほしい特定のコンポーネントがある場合は、.NET、Kotlin、Qt、Swift の関連リポジトリで issue を開いてお知らせください。Flutter Maps SDK Toolkit のパブリック GitHub リポジトリは近日公開予定です。
Augmented Reality (AR) Toolkits
Native Maps SDKs に移行することで、これまで ArcGIS Engine では利用できなかったまったく新しい機能、ワークフロー、ユーザー エクスペリエンスを利用できるようになります。カメラを内蔵し、センサーや位置情報にアクセスできる最新のモバイル デバイスをサポートすることで、Kotlin および Swift 向けの ArcGIS Maps SDK は拡張現実 (AR) エクスペリエンスをサポートします。
2 つの主要な AR パターンがサポートされています。
- World-scale AR: ユーザーがモバイル デバイスのディスプレイを通して現実世界を見るとき、シーン コンテンツが物理世界内の対応する場所に正確にレンダリングされる AR です。これは、隠れたインフラの可視化やナビゲーションのウェイポイントの表示など、さまざまなシナリオに適用できます。World-scale AR では、ベースマップに頼るのではなく、現実世界が GIS データのコンテキストとして機能します。
- Tabletop AR: 3D プリントされたモデルのような物理的な表面に固定されたシーン コンテンツを表示します。これにより、ユーザーはテーブルトップ上を歩き回り、適切なスケールで様々な角度からシーンを観察することができます。
Kotlin と Swift 用の Tabletop および World-scale AR ツールキット コンポーネント
AR Toolkit の詳細については、Swift 用の Display scenes in augmented reality と Augmented Reality または、Kotlin 用の Display scenes in Augmented Reality ドキュメントを参照してください。
Calcite Design System
Esri は、アプリケーション全体で最小限の労力で、美しく、ユーザー フレンドリーで、まとまりのあるエクスペリエンスを作成するための設計および開発リソースのコレクションとして、Calcite Design System (Calcite) を開発しました。当初は Web アプリケーション向けに設計された Calcite は、徐々にネイティブ アプリケーション開発にも適用されるようになり、現在では .NET Maps SDK および Qt Maps SDK で利用できます。これらの SDK は、XAML スタイルのリソースセットや QML 互換スタイルのセットを提供しています。Esri の Calcite Web スタイルをインスパイアしたり、活用したりすることで、.NET と Qt デスクトップ/モバイル ネイティブ アプリケーションの UI コントロールに合わせて特別に調整された、美しく一貫性のあるエクスペリエンスを作成できます。
Calcite スタイル、カラー リソース、アイコンを使用した .NET WinUI 3 アプリケーション
ArcGIS Engine からの移行に伴い、ネイティブ アプリケーションで Esri Calcite Design System の外観を使用する方法の詳細については、Qt Maps SDK Toolkit の Esri Calcite Style、または先日アナウンスされた Calcite Design System にインスパイアされた .NET XAML フレームワーク (WPF/WinUI/.NET MAUI) 用のスタイル リソースを参照してください。
同等性
ArcGIS Engine で以前利用可能だった一部の開発者向けコンポーネントには、すぐに使用できる同等のコンポーネントがありません。
- SceneControl は、グローバル座標系ではなく投影座標系のシーンをサポートする ArcScene ドキュメントを表示しました。Native Maps SDKs による投影座標系のローカル シーンのサポートは、将来のリリースで予定されています。
- PageLayoutControl は、ArcMap のページ レイアウトを表示しました。これは、マップ印刷用に設計された、仮想ページ上に整理されたマップ要素のコレクションです。レイアウトには通常、1 つ以上のマップ データフレーム、縮尺記号、方位記号、マップ タイトル、説明テキスト、シンボルの凡例が含まれます。デジタル化、つまりデジタル トランスフォーメーションのプロセスにより、カスタム デスクトップ アプリケーションやモバイル アプリケーションからのマップ印刷は大幅に減少してそのためいます。Native Maps SDKs には特定の印刷レイアウト コントロールはありません。
- SymbologyControl は、ArcMap または ArcGIS Server のスタイル ファイルの内容を表示するために使用され、エンド ユーザーがレイヤーのレンダラーや要素のシンボルに適用できる個々のシンボルを選択できるようにします。Native Maps SDK Toolkit には同等のシンボル コントロールはありませんが、.NET Maps SDK 用の Toolkit には、より詳細な SymbolDisplay コントロールと、その使用方法を示すサンプルが含まれています。さらに、.NET Maps SDK の GitHub Demos リポジトリには、より高度なシンボル エディターが含まれています。レイヤーとシンボル自体のスタイリングについては、マップ表示に関する今後の記事で説明します。
- LicenseControl は、選択したライセンスでアプリケーションを初期化し、本番環境で正常に実行できるようにします。ビジュアルデザイン環境では表示されますが、実行時には表示されません。LicenseControl は、アプリケーションの開始時に、LicenseControl を含むフォームまたはダイアログ ボックスがロードされたときにライセンスを設定します。Native Maps SDKs に含まれる API は、実運用環境でのアプリのライセンシングに、よりシンプルで柔軟性が高く、統合されたオプションを提供するため、これと同等の機能はありません。ArcGIS Engine アプリケーションは、ArcGIS Desktop ライセンスまたは特定の ArcGIS Engine ランタイム ライセンスのいずれかでライセンスされます。Native Maps SDKs は、ArcGIS Engine と同様に専用のライセンス文字列でライセンスされますが、ArcGIS Enterprise または ArcGIS Online の ArcGIS ID を使用して、実運用アプリケーションでの使用をライセンスすることもできます。
要約
Native Maps SDKs には API と開発者向けコンポーネントが含まれており、組織や開発者が今日サポートしようとしている多様なデバイス タイプ、ビジュアル スタイル、ユーザーエクスペリエンスをサポートするように設計されています。これらの最新の開発者向けコンポーネントは、さまざまなフレームワークの最も一般的な開発ツールとシームレスに統合されるため、選択した開発環境で自然に作業を進めながら、どこにいても一貫したマッピングおよび位置情報機能を利用できます。
以下の表は、ArcGIS Engine の各コントロールと、Native Maps SDKs が提供する同等のコントロールまたは移行パスの概要を示しています。
ArcGIS Engine コントロール | 同等の Native Maps SDK コントロール |
---|---|
Map Control | Map View |
Globe Control | Scene View |
Scene Control | 今後対応予定 |
Page Layout Control | 対応予定無し |
Table Of Contents Control | Toolkit および/または カスタム開発 |
Toolbar Control | Toolkit および/または カスタム開発 |
Symbology Control | Toolkit および/または カスタム開発 |
License Control | API |
ArcGIS Engine の開発者向けコンポーネントのテーマには、ヘルプ システムとサンプルの考慮も含まれていました。各 Native Maps SDKs には、ガイド トピック、チュートリアル、API リファレンス、Toolkit ドキュメント、サンプルなどを含む包括的なヘルプ システムが含まれています。
- ArcGIS Maps SDK for .NET | Esri Developer
- ArcGIS Maps SDK for Flutter | Esri Developer
- ArcGIS Maps SDK for Kotlin | Esri Developer
- ArcGIS Maps SDK for Qt | Esri Developer
- ArcGIS Maps SDK for Swift | Esri Developer
ArcGIS Engine からの移行計画を進める中で、現在ご利用の機能で適切な移行パスが見つからない場合は、お問い合わせください。API、ツール、操作、必要なデータ形式など、ワークフローの詳細をお知らせください。
ArcGIS Engine からの移行シリーズの次の記事では、マップの表示について確認します。それまでの間、Esri 社のパートナーである Frox 社が ArcGIS Engine から Native Maps SDKs への移行を成功させ、複数のメリットを実感した事例 (英語) をご覧ください。