Home - EsriJapan/arcgis-pro-sdk GitHub Wiki
ArcGIS Pro Version: 3.4.0.55405
ArcGIS Pro SDK for Microsoft .NET を使用して ArcGIS Pro を拡張することができます。 ArcGIS Pro SDK には、アドイン、構成管理、プラグイン データソース、および CoreHost アプリケーションという 4 つの主要な拡張パターンが用意されています。タスク非同期プログラミング(TAP)、LINQ、WPF バインディング、MVVM などの最新の .NET 機能およびパターンを活用し、ArcGIS Pro API を使用して 2D および 3D アドインを構築することができます。
トピック
- ArcGIS Pro 3.4 SDK for .NET
- ArcGIS Pro SDK の概要
- 3.4 での開発者向けの新機能
- ArcGIS Pro SDK for .NET のインストール
- リリースノート
- 開発リソース
- ArcGIS Pro 3.4
- Windows 11 (Home, Pro, Enterprise)
- Windows 10 (Home, Pro, Enterprise) (64 bit)
Microsoft .NET Runtime 8.0.0 または それ以上が必要です。.NET 8.0 のダウンロード
- Visual Studio 2022 (バージョン 17.8 以降)
- Community Edition
- Professional Edition
- Enterprise Edition
.NET 8 と同時にリリースされた Visual Studio 2022 17.8 リリースでは、.NET 8 がサポートされます。
Newtonsoft Json
- ArcGIS Pro 3.4 では、Newtonsoft Json NuGet のバージョン 13.0.3.27908 を使用しています。アドイン で Newtonsoft NuGet が必要な場合は、同じバージョンの Newtonsoft Json を使うことを推奨します。
WebView2
- アドイン開発者は、Microsoft Edge WebView2 ベースの新しい WebViewBrowser コントロールを使用できます。 Microsoft Edge WebView2 Runtime バージョン 117 以降が必要です。
ArcGIS Pro API は、ArcGIS Pro のインストールごとにインストールされる マネージド .NET アセンブリ です。.NET メタデータまたは PIA (Primary Interop Assemblies) を含む中間アセンブリは必要ありません。
API を構成する ArcGIS Pro マネージド アセンブリを、Visual Studio アドイン プロジェクトで直接参照として追加します。
パブリックAPI に含まれる ArcGIS Pro アセンブリ の完全なリストを以下に示します。各アセンブリの具体的な詳細については、オンラインの API Reference を参照してください。
Core アセンブリは {ArcGIS Pro インストール フォルダ}\bin にあります。
アセンブリ | 説明 |
---|---|
ArcGIS.Core.dll | Provides CIM, Geodatabase, Geometry Utility Network API を提供します。 |
ArcGIS.CoreHost.dll | スタンド アロンで利用するために ArcGIS.Core.dll を初期化するための Host.Initialize を提供します。 |
ArcGIS.Desktop.Framework.dll | アドイン コントラクト、DAMLサポート、および基本クラスを含めるめのアプリケーション フレームワークを提供します。このアセンブリは、すべてのアドインによって参照される必要があります。 |
ESRI.ArcGIS.ItemIndex.dll | カスタム アイテムを作成および操作する機能を提供します。 |
ArcGIS Pro 内の主要なサブシステムは、エクステンションと呼ばれる単位で構成されています。Extension アセンブリは、{ArcGIS Pro インストール フォルダ}\bin\Extensions フォルダ内の個々のサブフォルダにあります。 Extension サブフォルダは、例えば、Mapping, Editing, Layout などのように、それらが表す機能単位に合わせて論理的に命名されています。
アセンブリ | 説明 |
---|---|
ArcGIS.Desktop.Catalog.dll | プロジェクト コンテンツ アイテム(マップ アイテム、レイアウト アイテム、スタイル アイテム、フォルダー アイテムなど)へのアクセスを提供します。 |
ArcGIS.Desktop.Core.dll | プロジェクトを作成および管理する機能、現在のプロジェクトに関連付けられているイベントへのアクセス、およびジオプロセシング ツールを実行する機能を提供します。 |
ArcGIS.Desktop.DataReviewer.dll | プロジェクトのレビュアーの結果、セッション、およびバッチ ジョブを確立および管理する機能を提供します。 |
ArcGIS.Desktop.Editing.dll | カスタム編集ツールの実装に必要な編集環境とコア編集機能へのアクセスを提供します。 |
ArcGIS.Desktop.Extensions.dll | 他の ArcGIS Pro クラスのエクステンション メソッドを提供します。カスタム マップ ツールの基本クラスを提供します。 |
ArcGIS.Desktop.Geoprocessing.dll | プロジェクトに保存されているジオプロセシングの履歴アイテムへのアクセスを提供します。(注:ジオプロセシング ツールを実行するための ArcGIS.Desktop.Core.dll への参照を追加) |
ArcGIS.Desktop.Layouts.dll | レイアウト上の要素を操作し、さまざまな画像形式にエクスポートするための機能を提供します。 |
ArcGIS.Desktop.Mapping.dll | マップとレイヤーの作成、フィーチャのラベル付け、クエリ操作の実行、およびそれらを2Dまたは3Dで視覚化するための型を提供します。ラスター レイヤーを作成してラスター レンダリングをカスタマイズするためのラスター API と、スタイル、スタイル アイテム、およびシンボルを管理するための API を提供します。 |
ArcGIS.Desktop.TaskAssistant.dll | タスク フレームワークを提供し、開発者がタスク アイテムにアクセス、開く、閉じる、またはエクスポートできるようにします。 |
ArcGIS.Desktop.Workflow.dll | Workflow Manager Classic のジョブとクエリを作成、構成、および実行する機能を提供します。Workflow Manager Classic のデータベースから構成情報を取得する機能を提供します。 |
ArcGIS.Desktop.Workflow.Client.dll | Workflow Manager のジョブ ID と接続情報を取得する機能を提供します。 |
{ArcGIS Pro インストール フォルダ}\bin\Extensions サブフォルダには、パブリック API を持たない Extension アセンブリがあります。これらは現在 Esri 内部でのみ使用されています。
- ArcGIS.Desktop.Analyst3D.dll
- ArcGIS.Desktop.Aviation.dll
- ArcGIS.Desktop.Bathymetry.dll
- ArcGIS.Desktop.BusinessAnalyst.dll
- ArcGIS.Desktop.CAD.dll
- ArcGIS.Desktop.Charts.dll
- ArcGIS.Desktop.DataEngineering.dll
- ArcGIS.Desktop.DataSourcesRaster.dll
- ArcGIS.Desktop.Defense.dll
- ArcGIS.Desktop.DefenseMapping.dll
- ArcGIS.Desktop.Editing.PushPull.dll
- ArcGIS.Desktop.FullMotionVideo.dll
- ArcGIS.Desktop.GAWizard.dll
- ArcGIS.Desktop.GeoProcessing.BDC.dll
- ArcGIS.Desktop.GeoProcessing.SAModels.dll
- ArcGIS.Desktop.Geostatistics.dll
- ArcGIS.Desktop.Indoors.dll
- ArcGIS.Desktop.Intelligence.dll
- ArcGIS.Desktop.Intelligence.Common.dll
- ArcGIS.Desktop.LocationReferencing.dll
- ArcGIS.Desktop.Maritime.dll
- ArcGIS.Desktop.Metadata.dll
- ArcGIS.Desktop.MotionImagery.dll
- ArcGIS.Desktop.NeighborhoodExplorer.dll
- ArcGIS.Desktop.NetworkAnalysis.Facility.dll
- ArcGIS.Desktop.NetworkAnalysis.NetworkDiagrams.dll
- ArcGIS.Desktop.NetworkAnalysis.Transportation.dll
- ArcGIS.Desktop.Search.dll
- ArcGIS.Desktop.Sharing.dll
- ArcGIS.Desktop.TerritoryDesign.dll
注: パブリックAPI アセンブリに含まれる静的文字列リソース プロパティおよびイメージ リソースは、Esri 内部での使用のみを目的としています。サードパーティのアドインでの使用は意図していません。
ArcGIS Pro Extensions NuGet には、アドイン や 構成 のコンパイルに必要なすべての Pro API アセンブリが含まれており、従来のファイル ベースの参照に代わり、アドイン や 構成 で ArcGIS Pro アセンブリを参照する方法を提供します。
ArcGIS Pro Extensions の NuGet を使用するには、Visual Studio の NuGet パッケージ管理形式の設定を PackageReference にします。
ProGuide: ArcGIS Pro Extensions NuGet
3.4 では、以下のような API の機能拡張を利用することができます:
Knowledge Graph:
- ナレッジ グラフを編集し、2D マップ、調査、リンク チャートにグラフの内容を含める。
- リレーション シップ 行を作成するための新しいナレッジ グラフアソシエーション クラス。
- SchemaBuilder によるナレッジ グラフ スキーマの編集(作成、変更、削除を含む)。
- 編集中の行イベント サブスクリプション。
3D Analyst:
- LAS ポイント カーソルの事前割り当て配列による性能向上。
- TIN と標高ラスターの標高クエリ。
- サーフェス レイヤー上のラインとポリゴンの補間。
Content:
- Enterprise ポータルにアップロードされた Pro プロジェクトを開いて保存。 (ベータ版)
Layout:
- レイアウト内のマップ フレームにグリッド スタイルを適用。
Map Authoring:
- LayerFactory と BulkLayerCreationParams でレイヤーをマップに一括ロード。
- SymbolFactory を使用して、ポイント シンボル マーカーを複数の画像形式(png、jpeg、gif、bmp など)や SVG にエクスポートできます。
Geometry:
- z 値のドロップ、点と距離のクエリ、曲線を扱うための測地法の強化。
Geodatabase:
- リニア リファレンスのためのルート作成と編集の強化。
API の機能強化の完全なリストは、API リファレンス の [API Changes セクション] で確認できます。
Pro のコンセプト、ガイド、スニペット、サンプルが多数用意されており、SDK の新機能を使いこなすのに役立ちます。SDK リソースの更新内容は以下の通りですが、これらに限定されるものではありません。
- ProConcepts: Linear Referencing
- ProSnippets: Linear Referencing
- ProGuide: Knowledge Graph Construction Tools
- ProConcepts: Knowledge Graph
- ProSnippets: Knowledge Graph
- ProConcepts: Map Authoring
- The Pro Community Samples and Snippets
ArcGIS Pro SDK for .NET は Visual Studio からダウンロードし、インストールすることができます。インストールできるエクステンションは 2 つに分かれます。
- ArcGIS Pro SDK for .NET
- ArcGIS Pro SDK for .NET (Utilities)
** 注: ** 2.x から ArcGIS Pro 3.4 SDK (または 3.0 SDK) への移行は、アップグレードではありません。インストールするには、
- ArcGIS Pro 3.4 SDK をインストールする場合、2.x を使用していて 3.x を使用していない場合は、2.x からの移行 を参照してください。
- 2.x のアドインを 3.4 に移行する場合、移行ツールをインストールすることで、変換処理を自動化することができます。詳細は移行ガイド ProConcepts: 3.0 移行ガイド および ProGuide:.NET 8 Upgrade を参照してください。
詳しいインストール方法は、ProGuide: インストール を参照してください。
次の表は、ダウンロードする SDK の各 .vsix ファイルの機能をまとめたものです:
名称 | ファイル | 機能 |
---|---|---|
ArcGIS Pro SDK for .NET | proapp-sdk-templates.vsix | ArcGIS Pro アドインを作成するための、プロジェクトとアイテム テンプレートのコレクション |
ArcGIS Pro SDK for .NET (Utilities) | proapp-sdk-utilities.vsix | ArcGIS Pro アドインの作成に役立つユーティリティのコレクション |
ArcGIS Pro SDK for .NET (Migration) | proapp-sdk-migration.vsix | ArcGIS Pro SDK 2.x のエクステンションを ArcGIS Pro SDK 3.x for .NET に移行 |
パッケージ: proapp-sdk-templates.vsix
ArcGIS Pro SDK for .NET は次のプロジェクトとアイテム テンプレートを提供しています:
C# | VB | 名称 |
---|---|---|
|
|
ArcGIS Pro モジュール アドイン プロジェクト テンプレート |
|
|
ArcGIS Pro 構成管理 プロジェクト テンプレート |
|
N/A | ArcGIS Pro Plugin プロジェクト テンプレート |
|
N/A | ArcGIS Pro CoreHost アプリケーション プロジェクト テンプレート |
|
N/A | ArcGIS AllSource アドイン プロジェクト テンプレート |
|
ArcGIS Pro バックステージ タブ | |
|
|
ArcGIS Pro ボタン |
|
|
ArcGIS Pro ボタン パレット |
|
|
ArcGIS Pro コンボ ボックス |
|
|
ArcGIS Pro 作図ツール |
|
ArcGIS Pro カスタム コントロール | |
N/A | ArcGIS Pro カスタム アイテム | |
N/A | ArcGIS Pro カスタム プロジェクト アイテム | |
|
|
ArcGIS Pro ドッキング ウィンドウ |
|
|
ArcGIS Pro ドッキング ウィンドウ (ハンバーガー ボタン付き) |
|
|
ArcGIS Pro ドロップ ハンドラー |
|
|
ArcGIS Pro 埋め込み可能なコントロール |
|
|
ArcGIS Pro ギャラリー |
|
|
ArcGIS Pro インラインギャラリー |
|
N/A | ArcGIS Pro レイアウト ツール |
|
N/A | ArcGIS Pro レイアウト トレイ ボタン |
|
|
ArcGIS Pro マップ ウィンドウの偽装 |
|
|
ArcGIS Pro マップ ツール |
|
N/A | ArcGIS Pro マップ トレイ ボタン |
|
|
ArcGIS Pro メニュー |
|
|
ArcGIS Pro ウィンドウ |
|
|
ArcGIS Pro プロパティシート |
|
|
ArcGIS Pro ProWindow |
|
|
ArcGIS Pro 分割ボタン |
|
N/A | ArcGIS Pro Table Construction Tool |
一般的に、フレームワークの UI 要素の拡張ポイント(ボタン, ツール, メニュー, ドッキング ウィンドウなど)とアイテム テンプレートの間には 1 対 1 の対応関係があります。 対応する拡張ポイントをアドインに追加するには、関連するアイテム テンプレート を使用します。
パッケージ: proapp-sdk-utilities.vsix
ArcGIS Pro SDK for .NET (Utilities) は、Visual Studio 環境を拡張する次のようなユーティリティ(日本語UI: ArcGIS Pro の参照先を修正、ArcGIS Pro の DAML Id を生成)を提供します。
名称 | 説明 |
---|---|
Pro Fix References utility | ArcGIS Pro アドイン、コア ホスト、構成管理、またはプラグイン プロジェクトの壊れた参照を修正します。壊れた参照は、アドイン を他の同僚と共有したり、ArcGIS Pro アセンブリ参照がインストールした場所とは異なる場所を指しているアドインをダウンロードした場合に発生することがあります。Pro Fix References は、ソリューション内の個々のプロジェクトまたはすべてのプロジェクトで実行できます。 |
Pro Generate DAML Ids utility | ArcGIS Pro Desktop Application Markup Language(DAML)のすべての文字列 ID を、DAML 要素タイプ(Button、Dockpane、Tool、Condition など)によって整理された静的な文字列プロパティに変換します。これにより、DAML 文字列 ID を手動で入力するのではなく、ソース コード ファイル内の Visual Studio の IntelliSense 機能を使用して ID を追加することができます。 |
パッケージ: proapp-sdk-migration.vsix
ArcGIS Pro SDK for .NET (Migration) は、ArcGIS Pro SDK 2.x エクステンションを ArcGIS Pro SDK 3.x for .NET に移行するためのサポートを提供します。注: アドインを移行すると、config.daml の dekstopVersion 属性が、現在インストールされている ArcGIS Pro のバージョンに設定されます。
- ArcGIS Pro 3.3 SDK for .NET
- ArcGIS Pro 3.2 SDK for .NET
- ArcGIS Pro 3.1 SDK for .NET
- ArcGIS Pro 3.0 SDK for .NET
- ArcGIS Pro 2.9 SDK for .NET
- ArcGIS Pro 2.8 SDK for .NET
- ArcGIS Pro 2.7 SDK for .NET
- ArcGIS Pro 2.6 SDK for .NET
- ArcGIS Pro 2.5 SDK for .NET
- ArcGIS Pro 2.4 SDK for .NET
- ArcGIS Pro 2.3 SDK for .NET
- ArcGIS Pro 2.2 SDK for .NET
- ArcGIS Pro 2.1 SDK for .NET
- ArcGIS Pro 2.0 SDK for .NET
- ArcGIS Pro 1.4 SDK for .NET
- ArcGIS Pro 1.3 SDK for .NET
- ArcGIS Pro 1.2 SDK for .NET
- ArcGIS Pro 1.1 SDK for .NET
- オンライン API Reference
- ProSnippets: ArcGIS Pro アドイン用のコード スニペット
- ArcGIS Pro SDK for .NET (pro.arcgis.com)
- arcgis-pro-sdk-community-samples
上記の Pro SDK アイコンは、すべて ArcGIS.Desktop.Resources.dll の XAML リソースとして利用できます。アドインの Config.daml で、ArcGIS.Desktop.Resources.dll から Pro SDK アイコンを直接参照し、Pro リボンのコントロールのイメージとして使用することができます。以下のコード スニペットは、アドインの config.daml で使用される構文です。注:「BexDog32」は、上記の Pro SDK アイコン画像に記載されている画像名のいずれかと置き換えることができます。
<button...smallImage="BexDog16" largeImage="BexDog32"/>
また、WPF のコードビハインドで ImageSource としてこれらのリソースにアクセスすることができます。以下のコードでは、BexDog32 Pro SDK のアイコンが、ビューモデルのImageSource プロパティの戻り値の ImageSource としてアクセスされていることが示されています。注:「BexDog32」は、上記のアイコン画像に記載されている画像名のいずれかに置き換えることができます。
public ImageSource SomeCustomProperty {
get {
return Application.Current.Resources["BexDog32"] as ImageSource;
...