要素图层不会出现在打印结果中

时间:2014-11-12 11:11:04

标签: printing dojo task arcgis-js-api

萨拉姆, 我打印地图时遇到问题,当我显示结果时,我发现只有一个二十的特征。结果不包含所有功能。 我使用了esri / dijit / PrintTask

verifier: function(){ //verifier() is an onClick event of a button
var url= 'the way/arcgis/rest/services/Utilities/PrintingTools/GPServer/Export%20Web%20Map%20Task';
var printTask=new PrintTask(url);
var params = new PrintParameters();
params.map =this.map;
printTask.execute(params,this.printResult);
},printResult: function(event)
{
 console.log(event);
 window.open(event.url, "_blank")
}    

打印结果中没有出现的要素图层是指URL不是地图服务链接的链接,而是指向连接到地图服务的java servlet的链接(每个地图服务的一个servlet)。也许打印任务不会进行重定向,它会从功能层定义中的url中获取serviceMAP,因为它是servlet的链接。 我希望我很清楚......请有人可以帮助我!因为我不知道自己需要做什么。 PS:对不起我的英语,因为我比英语更新鲜。

2 个答案:

答案 0 :(得分:0)

我的第一个建议是将json请求发送到ArcGIS服务器以使用fiddler打印任务。然后从fiddler复制json并在REST端点测试打印服务,如果它仍然给出错误或不打印功能层,那么它会与您的服务一起发出。我还想知道以下内容:

  1. 您使用的是代理吗?
  2. ArcGIS JS API的版本?
  3. 您是否使用esri样本打印服务测试了相同的应用程序?
  4. 服务是否安全?
  5. 如果您还有其他问题,请与我们联系。

答案 1 :(得分:0)

我的问题是由功能集合对象组成的功能层未在打印输出中显示。基于我的基于网址的要素图层打印得很好。

我目前的解决方法是在将地图对象中的图层字段属性发送到打印服务之前删除它。

//Code to remove the fields property from the proper layer.
map._layers[yourLayerId].fields = undefined;

//Then your typical print task code that follows.
var params = new esri.tasks.PrintParameters();
params.map = map;
params.template = template;
....etc.