ArcGIS Maps SDK for .NET (バージョン 200.x) を使用して開発したアプリケーションを配布する場合に必要なライセンス認証の手順を説明します。
ArcGIS Platform のロケーションサービスを使用する場合は、アプリで API キーを設定する必要があります。API キーの詳細はAPI キーの取得を、APIキーの設定方法はアプリの作成のAPI キーを設定するをご覧ください。
開発したアプリケーションのライセンス認証のステップは以下の通りです。
ArcGIS Maps SDK for .NET には Lite、Basic、Standard、Advanced の 4 つのライセンス レベルと Analysis、Utility Network の 2つのエクステンションがあります。開発したアプリケーションが使用する機能に応じて、適切なライセンス レベルを選択してください。
各ライセンスで利用可能な機能の概要は以下の表をご参照ください。
ライセンス | 利用できる機能 |
---|---|
Lite | ・地図表示(2D/3D) ・フィーチャの表示/検索 ・フィーチャのオンライン/オフライン編集(パブリックなフィーチャ サービス) ・ルート検索/到達圏解析/最寄り施設検索 ・住所検索/リバース ジオコーディング |
Basic | ・Lite ライセンスで利用できるすべての機能 ・フィーチャのオンライン/オフライン編集(セキュアなフィーチャ サービス) ・モバイル ジオデータベースの編集 ・ArcGIS Online/Portal for ArcGIS のコンテンツの編集 |
Standard | ・Basic ライセンスで利用できるすべての機能 ・シェープファイルの表示/編集 ・GeoPackage の表示/編集 ・KML(ローカル ファイル)の表示 ・ラスター データの表示/解析 ・航海用電子海図(ENC)の表示 ・ローカル サーバーの標準的な機能 |
Advanced | ・Standard ライセンスで利用できるすべての機能 ・ローカル サーバーの高度な機能 |
Analysis Extension | ・Standard ライセンス以上で利用可能なエクステンション・オフラインでの到達圏解析/最寄り施設検索 ・ArcGIS Desktop(Spatial/3D/Network エクステンション)で利用可能なジオプロセシング ツールの一部 |
Utility Network Extension | ・Lite ライセンス以上で利用可能なエクステンション・Utility Network の解析(トレース) |
ライセンスの詳細はESRIジャパン製品ページをご参照ください。
ライセンスの認証は次の2つの方法があります。
ライセンスキーを使用した認証
指定ユーザーによるアカウント認証
■ ArcGIS Online または ArcGIS Enterprise バージョン 10.8 以降をご利用の場合
ユーザータイプ | ライセンスレベル |
---|---|
Viewer | Lite |
Editor / Field Worker | Basic |
Creator / GIS Professional Basic | Standard |
GIS Professional Standard / GIS Professional Advanced | Advanced |
■ ArcGIS Enterprise 10.7 以前をご利用の場合
ユーザータイプ | ライセンスレベル |
---|---|
レベル1 または Viewer タイプ以上 | Lite |
レベル2 または Editor タイプ以上 | Basic |
ライセンスキーを使用した認証
ArcGIS Online / Portal for ArcGIS へのログインによる認証
ライセンスキーを使用した認証
ArcGIS Online / Portal for ArcGIS へのログインによる認証
ライセンスキーを使用した認証
ArcGIS Online / Portal for ArcGIS へのログインによる認証
注意:この認証は、Protal for ArcGIS をご利用の場合は、ArcGIS Enterprise 10.7 以前のバージョンでは使用できません。
ライセンスキーを使用した認証
ArcGIS Online / Portal for ArcGIS へのログインによる認証
注意:この認証は、Protal for ArcGIS をご利用の場合は、ArcGIS Enterprise 10.7 以前のバージョンでは使用できません。
ライセンスキーを使用した認証
ArcGIS Online / Portal for ArcGIS へのログインによる認証
注意:この認証は、Protal for ArcGIS をご利用の場合は、ArcGIS Enterprise 10.7 以前のバージョンでは使用できません。
ライセンスキーを使用した認証
Portal for ArcGIS へのログインによる認証
注意:この認証は、ArcGIS Online では使用できません。Protal for ArcGIS をご利用の場合は、ArcGIS Enterprise 10.7 以前のバージョンでは使用できません。
以下の認証に応じた作業を行ってください。
ArcGIS Runtime Lite のライセンスキーを ArcGIS Developers のサイトから取得し、取得したライセンスキーを利用して、アプリケーションを Lite ライセンスで認証することができます。 最初に以下の手順で Lite レベルのライセンスキーを取得します。
ArcGIS Developers: License and deployment ページにアクセスします
表示されたライセンスキーをコピーします
次に、アプリケーションのコードにおいて SDK の機能が呼び出される前に、以下のコードを使用してアプリケーションにコピーしたライセンスキーを設定します。
// 取得したライセンス文字列でアプリのライセンスを設定します
string licenseKey = "runtimelite,1000,rud#########,none,####################";
ArcGISRuntimeEnvironment.SetLicense(licenseKey);
ArcGIS Runtime の配布パックを購入し、取得したライセンスキーを利用して、アプリケーションを認証することができます。
ArcGIS Runtime の配布パックの購入についてはESRIジャパンにお問合せください。ArcGIS Runtime の配布パックをご購入頂いた場合、ESRIジャパンよりライセンスキーをメールにてお送りします。
アプリケーションのコードにおいて SDK の機能が呼び出される前に、以下のコードを使用して配布パックのライセンスキーを設定します。
// 取得したライセンス文字列でアプリのライセンスを設定します
string licenseKey = "runtimestandard,1000,rud#########,day-month-year,####################";
ArcGISRuntimeEnvironment.SetLicense(licenseKey);
Analysis Extension ライセンスを認証する場合は以下のコードを使用します。
// 基本ライセンスとエクステンション ライセンスのリストを設定します
string licenseKey = "runtimestandard,1000,rud#########,day-month-year,####################";
string[] extensions = { "runtimeanalysis,1000,rud#########,day-month-year,####################" };
ArcGISRuntimeEnvironment.SetLicense(licenseKey, extensions);
アプリケーションの実行時に、アプリケーションを利用するユーザーが保有する ArcGIS Online 組織向けプランもしくは Portal for ArcGIS の指定ユーザー アカウントを使用して ArcGIS Online / Portal for ArcGIS にログインすることで、ライセンスを取得することができます。
アプリケーションのコードにおいて SDK の機能が呼び出される前に、ライセンスを取得・設定します。以下のコードは、ArcGIS Online の指定ユーザーのライセンスを取得する方法を示しています。コードの前半で、ArcGIS Online ポータルを登録し、チャレンジ ハンドラーと OAuth 認証ハンドラーを設定することによって、AuthenticationManager を構成します。
認証方法の詳細については、「How to use named user login in your app(英語)」や「Security and authentication(英語)」も併せてご覧ください。
// ポータルの認証情報をユーザーに要求します (arcgis.com の OAuth 認証情報のリクエスト)
CredentialRequestInfo loginInfo = new CredentialRequestInfo();
// OAuth の暗黙的なグラントフローを使用します
loginInfo.GenerateTokenOptions = new GenerateTokenOptions
{
TokenAuthenticationType = TokenAuthenticationType.OAuthImplicit
};
// 認証する URL(ポータル)を指定します(ArcGIS Online)
loginInfo.ServiceUri = new Uri("http://www.arcgis.com/sharing/rest");
try
{
// AuthenticationManager の GetCredentialAsync を呼び出し、チャレンジハンドラを起動します
Credential cred = await AuthenticationManager.Current.GetCredentialAsync(loginInfo, false);
AuthenticationManager.Current.AddCredential(cred);
// 認証情報を使用してポータル(ArcGIS Online)に接続します
ArcGISPortal arcgisPortal = await ArcGISPortal.CreateAsync(loginInfo.ServiceUri);
// ポータルから LicenseInfo を取得します
LicenseInfo licenseInfo = await arcgisPortal.GetLicenseInfoAsync();
// ... アプリをオフラインにするためにライセンス(JSON 文字列)を保存したり、すぐにアプリを認証するためにコードをここに記述します ...
// ライセンス情報を使ってアプリを認証します
ArcGISRuntimeEnvironment.SetLicense(licenseInfo);
}
catch (Exception ex)
{
// 例外処理を記述します。
Console.WriteLine("ライセンス認証中の例外:" + ex);
}
ライセンス情報をローカルストレージに保存した場合、保存したライセンス情報を使用して、オフライン環境でアプリを起動してライセンスを取得できます。ストレージからライセンスを取得し、アプリを認証します。
// LicenseInfo を JSON 形式のテキストとして取得します
string licenseJson = licenseInfo.ToJson();
// ... テキスト文字列をローカルに保存します ...
// (起動時) ... デバイスに保存されているライセンス JSON を取得します ...
// 保存した JSON 文字列からライセンス情報を設定します
LicenseInfo license = LicenseInfo.FromJson(licenseJson);