Web マップの高度な印刷

PrintingTools サービスとその ArcGIS Web API のクライアント印刷ウィジェットは、小さい用紙サイズでの基本的な印刷を目的としています。11 x 17 インチよりも大きいマップをプロットする場合は、Python スクリプトを使用して Web マップをマップ ドキュメント(MXD)に変換することを検討してください。MXD をさまざまな形式にエクスポートし、サイズの大きい用紙に印刷したり、マップ ブックに含めたりすることができる arcpy.mapping 関数が数多く用意されています。

Python を使用した Web マップのマップ ドキュメントへの変換

ArcGIS での Web マップの印刷は、JSON または JavaScript Object Notation として表される Web マップの機能を利用しています。Esri が作成した ExportWebMap 仕様は、印刷の範囲とレイヤ情報によって Web マップを JSON として構築する方法を定義しています。ArcGIS Web API は現在の Web マップを読み取り、JSON を作成できます。簡単な印刷のシナリオでは、ArcGIS Server PrintingTools サービスが JSON を読み取り、印刷可能なマップ イメージを返します。

高度な印刷のシナリオでは、Web マップ JSON を PrintingTools サービスに送る必要がありません。代わりに、JSON を MXD に変換できます。そのためには、Python 関数の arcpy.mapping.ConvertWebMapToMapDocument を使用します。変換された MXD を他の ExportToPDFExportToPNG などの arcpy.mapping 関数で使用して、マップを印刷できるようにします。印刷する前にマップをマップ ブックに追加したり、マップ内のタイル分割された一部のレイヤを独自のベクタ レイヤに切り替えることで、さらに高い解像度のイメージを得ることもできます。これらの手法の詳細については、ConvertWebMapToMapDocument のリファレンス トピックをご参照ください。

Web からのスクリプトの呼び出し

印刷用に作成した arcpy.mapping スクリプトは、Web アプリケーションでどのように使用するのでしょうか。ArcGIS Server は、スクリプト、ツール、モデルを Web サービスとして公開できるジオプロセシング サービスを提供しています。これにより、ArcGIS Web API からそれらを簡単に呼び出すことができます。

印刷のためにマップを準備する Python スクリプトが用意できたら、それをジオプロセシング スクリプト ツールにカプセル化することができます。ツールのテストを実行して、その結果を ArcGIS Server ジオプロセシング サービスとして公開します。ArcGIS Web API には、ArcGIS API for JavaScript の Geoprocessor クラスなど、これらのサービスを起動するのに役立つクラスがあります。

この種のジオプロセシング スクリプト ツールを作成する最も簡単な方法は、PrintingTools サービス、またはそのサブセットのデフォルトと同じパラメータを公開することです。入力 JSON パラメータは、最低限必要なパラメータです。この方法でサービスを設計した場合、ArcGIS Web マッピング API や Web ビューアの印刷ウィジェットは、カスタム コーディングなしにそのサービスを使用できます。一方、PrintingTools にないパラメータをツールに追加した場合は、Esri 印刷ウィジェットとツールの互換性がなくなり、ツールを呼び出すために独自のコードかウィジェットを作成することが必要になります。

9/14/2013