カスタム ルート検索サービスの公開

カスタム ルート検索サービスは、カスタム機能を備えたジオプロセシング サービスです。 標準のルート検索サービスは、デフォルトのオプション群を使用して特定のネットワーク解析フローを実行するだけですが、解析ワークフローに機能を追加したり、解析ワークフローの柔軟性を高めたりする必要がある場合は、カスタム ルート検索サービスを公開できます。 たとえば、2 つのストップ間のルートを検索し、そのルートの標高グラフを作成したり、複数のネットワーク解析を 1 つの Web サービスに集約したりできます。 このような解析のために、カスタム ルート検索サービスを作成できます。 カスタム ルート検索サービスは、カスタム機能を備えたジオプロセシング サービスです。 ジオプロセシング サービスを利用すると、ArcGIS Enterprise のコンポーネントの 1 つである ArcGIS Server でカスタム解析ツールを共有できます。 ジオプロセシング サービスは、多くの場合、ArcGIS Enterprise ポータルでホストされている Web ツールとして動作します。 これらのツールは、まず ArcGIS Proスクリプト ツールとして作成および実行され、その後でサーバーで共有されます。

カスタム ルート検索サービス (ジオプロセシング サービス) の作成は、以降のセクションで説明するとおり、3 段階の手順となります。

スクリプト ツールの作成

カスタム ルート検索サービス作成の最初のステップでは、arcpy および arcpy.nax Python モジュールに基づきジオプロセシング スクリプト ツールを作成および記録して、このスクリプト ツールを実行するためのロジックを実装する Python コードを記述します。 このツールは、ツールボックスで作成されます。

arcpy.nax を使用した Python スクリプト ツールの作成の詳細

サービスの公開

ツールを作成したら、ArcGIS Pro でツールを実行して、ツールが正常に完了するか確認します。 ツールの実行が完了したら、ジオプロセシング履歴で、ArcGIS Pro から Web ツールとして結果を共有できます。 共有により、サーバー接続にジオプロセシング サービス アイテムが作成されます。 公開時には、同じジオプロセシング サービスに実行済みの複数のツールを追加できます。 管理者接続を使用すると、ArcGIS Pro から、ArcGIS Enterprise ポータルとフェデレートされていないスタンドアロン サーバーにジオプロセシング サービスを公開できます。 ArcGIS Enterprise ポータルとフェデレートされているサーバー サイトを使用している場合は、代わりに ArcGIS Enterprise ポータルで Web ツールを共有できます。

この例では、ジオプロセシング サービスを公開、使用する方法を説明します

サービスの使用

ジオプロセシング サービスが ArcGIS Server に公開されたら (サーバー サイトがフェデレートされているポータルで Web ツールが共有された場合を含む)、認証済みユーザーは、ArcGIS REST API のさまざまな操作を使用してサーバー サイトのサービスに直接アクセスしたり、ArcGIS Pro でサービスを操作したりArcGIS Web AppBuilderジオプロセシング ウィジェットを使用したり、ArcGIS API for JavaScript のカスタム Web アプリでサービスを操作したりできます。

注意:

カスタム ルート検索サービスは、ArcGIS Pro のネットワーク解析リボンからは使用できません。

ジオプロセシング サービス作成のためのヒント

ジオプロセシング サービスのパフォーマンスを改善するには、以下のヒントを加味します。

  • データ タイプについて、スクリプト ツールでネットワーク データセット パラメーターを定義する場合は、[ネットワーク データセット][ネットワーク データ ソース] ではなく、[ネットワーク データセット レイヤー] を使用します。 スクリプト ツールを Web ツールとして公開する前に実行して、マップからネットワーク データセットを指定します。 サービスを開始したらネットワーク データセットへの接続が確立されるため、サービス リクエストごとにネットワーク データセットを開く必要がなく、時間を節約できます。
  • スクリプト ツールにネットワーク データセット パラメーターを読み込み場合は、[GetParameterAsText] メソッドではなく、[GetParameter] メソッドを使用します。これは、[GetParameterAsText] メソッドの方が、ネットワーク データセット レイヤーにはるかに速くアクセスできるためです。
  • arcpy.nax Python モジュールを使用して、ジオプロセシング スクリプト ツールを記述します。 これにより、ジオプロセシング モデル ツールから作成されるサービスまたはレイヤー ベースのワークフローを使用する arcpy.na を使用してスクリプト ツールから作成されるサービスと比較して、実行速度が短縮されます。
  • スクリプト ツールのフィーチャ入力パラメーターを定義する場合は、[フィーチャ セット] データ タイプを使用します。 フィーチャ セットを使用して、デフォルトをレイヤー ファイルに設定すると、レイヤー ファイルがフィーチャ セットのスキーマを定義するフィーチャクラスを内部参照します。 サービスが公開されると、出力のスキーマが明確に定義されます。
  • ファイル ジオデータベースではなく、メモリー ベースのワークスぺースに出力を書き込みます。
  • スクリプト ツールからあまり多くのメッセージを記述しないでください。
  • 解析結果を Web ツールまたはジオプロセシング サービスとして共有すると、ネットワーク データセット パラメーターの入力モードを定数に設定します。 サービスが常に同じネットワーク データセットを使用するため、ネットワーク データセットを定数に設定することで、ツールにより作成されるサービスでネットワーク データセットが公開されなくなります。
  • 最良のパフォーマンスを得るには、短時間リクエストについて同期モードを選択します。
  • ジオプロセシング サービスについて同期モードを選択すると、reusejobdir プロパティを true に設定して、ジオプロセシング サービスのパフォーマンスを向上できます。 このプロパティを設定するときは、制約事項に注意してください。reusejobdir を true に設定すると、各ジョブに同じジョブ フォルダーが使用されます。 そのため、出力をジョブ ディレクトリに書き込む場合は、出力が互いに影響しないよう、書き込むごとに出力に一意の名前を付ける必要があります。