2017-02-28 8 views
1

arcgis JavaScriptを使用して現在のマップのスクリーンショットを撮っているうちに、スクリーンショットを撮るには2通りの方法があることがわかりました。だから、esriプリントタスクとエクスポートウェブマップの違い

var printTask = new esriLoader.PrintTask(PrintTaskServiceUrl); 
    esriLoader.Config.defaults.io.proxyUrl = proxyUrl; 
    esriLoader.Config.defaults.io.alwaysUseProxy = true; 
    var template = new esriLoader.PrintTemplate(); 
    template.exportOptions = { 
     width: 1015, 
     height: 633, 
     dpi: 96 // if 200 ,map image will get good quality 
    }; 
    template.format = "JPG"; 
    template.layout = "MAP_ONLY", 
    template.preserveScale = false; 
    template.showLabels = true; 
    template.showAttribution = false; 

    template.layoutOptions = { 
     "legendLayers": [], // empty array means no legend 
     "scalebarUnit": "Miles", 
     "copyrightText": "<div>xxx</div>", 
    } 
    var params = new esriLoader.PrintParameters(); 

    params.map = map; 
    params.template = template; 

    printTask.execute(params, success, error); 

印刷タスクAPIを使用して、URLの/輸出
enter image description here

  • を使用して
    I could see same question asked here

    1. 、これらの2つの方法の違いは何ですか?

  • 答えて

    2
    1. マップイメージを生成するためにArcGIS Serverによって提供されるREST APIですか?
    2. ArcGIS JavaScript SDKに含まれるJavascriptオブジェクトです。

    PrintTaskは、地図画像を生成するためにREST APIのExport Web Map Taskを使用します。 PrintTaskはイメージを簡単に作成する方法を提供します。一方、REST APIを直接使用する場合は、esri\requestオブジェクトを使用して直接行うことができますが、APIで説明されているようにすべての必須パラメータを生成する必要があります。

    +0

    REST APIを直接使用すると利点はありますか? – AhammadaliPK

    +1

    パフォーマンスに関して、私はそうは思わないが、JS APIがREST APIのすべての設定を完全にサポートしていないことを知っている。たとえば、レイヤーを除外したい場合、レイヤー・パラメーターにexclude:2,4,5,6を追加することでレイヤーを除外することができます。あなたはJS APIを使ってそれを行うことはできません。それはshowだけを行います:visibleLayers配列を使う – greenkarmic

    1

    免責事項:私は参加しており、コメントする評判はありません。したがって、私は元の質問への答えとしてそれを掲示しなければなりません。

    REST APIを直接使用する場合、またはその逆の場合に利点はありますか?

    Tカンビが述べているように、PrintTaskを使用すれば、より簡単です。 Export Web Map Task RESTエンドポイントにアクセスすると、直接例えば、いくつかの例において有益であり得る:要求は輸出のWeb地図タスクジオプロセシングサービスに送信 である前に

    • Web_Map_as_JSONパラメータを変更する必要があります。たとえば、マップに存在しないリソースを追加する必要があり、レイヤの可視性を変更する必要があり、セキュリティ保護されたサービスのトークンを供給する必要があります。
    • ArcGIS API for JavaScript環境。実際のマップは存在せず、ArcGIS Serverの機能を使用してサービスのイメージを融合し、Layout Templateを利用したいだけです。

    エクスポートWebマップタスクは、クライアント側またはサーバー側からアクセスできます。後者の場合、一種の「印刷タスクプロキシ」がセキュリティで保護されたサービスの印刷に役立つかもしれません。たとえば、Long-lived Tokensを使用するアプリケーションでカスタム印刷サービスの必要性を排除します。

    1

    今すぐ元の質問に回答してください。

    1. Export Map RESTエンドポイントは、マップサーバサービスに固有であり、所定の範囲、指定された層、空間参照、等のためサービス画像を生成することができ

    2. 最後に、PrintTaskは、Export Web Map Task RESTエンドポイントに要求を送信します。 Export Web Map Taskは、Web_Map_as_JSONパラメータを提供するマップイメージを生成するためのインターフェイスであり、おそらくは複数のサービスとグラフィックを備えています。また、ArcGISテンプレート(サーバーに保存されている)として事前に定義されたレイアウトでマップイメージを囲むオプションも用意されています。例えば:

    https://sampleserver6.arcgisonline.com/arcgis/rest/services/Utilities/PrintingTools/GPServer/Export%20Web%20Map%20Task/execute

    実行した後、提供された結果でurlの値は、地図画像への参照です。

    Export Web Map Task interface results

    注:PrintTask要求はAPIによって送信された後Web Map as JSONパラメータには、ブラウザの開発者向けツールで観察することができます。この場合、ESRIのPrint Dijitの例から取得されます: (別のリンクを投稿できません)

    関連する問題