esri打印任务和导出Web地图之间有什么区别

时间:2017-02-28 12:52:00

标签: javascript arcgis esri arcgis-js-api

在使用arcgis JavaScript截取当前地图的截图时,我可以看到我们有两种方法可以截取屏幕截图。
I could see same question asked here

  1. 使用/导出网址
    enter image description here

  2. 使用print task api

        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);
    
  3. 那么,这两种方法有什么区别?

3 个答案:

答案 0 :(得分:2)

  1. ArcGIS Server提供的REST API是否生成了地图图像。
  2. 是否在ArcGIS JavaScript SDK中使用Javascript对象。
  3. PrintTask将使用REST api中的Export Web Map Task生成地图图像。 PrintTask提供了一种创建图像的简单方法。另一方面,如果要直接使用REST API,可以使用esri\request对象,但必须按照API的描述生成所有必需的参数。

答案 1 :(得分:1)

免责声明:我刚加入并且没有声誉可以发表评论;因此我必须将其作为原始问题的答案发布,以下不是。

  

直接使用REST API是否有任何优势,反之亦然?

正如T Kambi所说,使用PrintTask(如果可用)更容易。在某些情况下,直接访问Export Web Map Task REST端点可能是有益的,例如:

  • Web_Map_as_JSON参数需要在请求之前修改 发送到导出Web地图任务地理处理服务。例如,需要添加地图中不存在的资源,图层&#39;需要更改可见性,需要提供安全服务的令牌等。
  • 地图图像请求是从ArcGIS API for JavaScript环境外部发送的。可能没有实际的地图,而且只想使用ArcGIS Server功能来融合服务&#39;图片并使用Layout Template

可以从客户端或服务器端访问“导出Web地图”任务。在后一种情况下,一种&#34;打印任务代理&#34;可能有助于打印安全服务;例如,在使用Long-lived Tokens的应用程序中消除了对自定义打印服务的需求。

答案 2 :(得分:1)

现在回答原来的问题。

  1. Export Map REST端点特定于MapServer服务,允许为给定范围,指定图层,空间参考等生成服务图像。

  2. 最终,PrintTask向Export Web Map Task REST端点发送请求。 Export Web Map Task是用于生成地图图像的界面,可能包含每个提供的Web_Map_as_JSON参数的多个服务和图形。它还提供了一个用布局包围地图图像的选项,该布局预定义为ArcGIS模板(存储在服务器上)。例如:

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

    执行后,提供的结果中url的值是对地图图像的引用。

    Export Web Map Task interface results

    注意:在API发送PrintTask请求后,可以在浏览器的开发人员工具中观察Web Map as JSON参数。在这种情况下,它取自ESRI的Print Dijit示例: (不能发布另一个链接)