2017-02-28 47 views
1

虽然使用ArcGIS的JavaScript以当前地图的截图,我可以看到,我们有两种方式采取截图。使用
I could see same question asked here之间有什么ESRI打印任务和出口网络地图的区别

  1. /使用打印任务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); 
    

所以URL
enter image description here

  • 的出口,正是这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的所有设置。例如,如果你想排除图层,你可以通过在layers参数中添加排除:2,4,5,6来实现。你不能用JS API来做到这一点,它只会显示:使用visibleLayers数组 – greenkarmic

    1

    声明:我刚刚加入,并没有信誉评论;因此我必须将其作为原始问题的答案发布,而后者不是。

    它有什么优势直接或反之亦然使用REST API是什么时候?

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

    • Web_Map_as_JSON参数需要之前请求 发送到出口网络地图任务地理处理服务进行修改。例如,资源在地图中不存在需要被添加,层可视性需要改变,用于安全保护的服务的令牌需要提供等
    • 在地图图像的请求被从ArcGIS API的外部发送为JavaScript环境。可能没有实际的地图,只想使用ArcGIS Server功能来融合服务的图像并利用Layout Template

    导出网络地图的任务可能会导致客户端或服务器端进行访问。在后一种情况下,一种“打印任务代理”可能有助于打印安全服务;例如,在使用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

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

    相关问题