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

Posted

技术标签:

【中文标题】要素图层未出现在打印结果中【英文标题】:feature layers don't appear in the print result 【发布时间】:2014-11-12 11:11:04 【问题描述】:

萨拉姆, 我打印地图时遇到问题,当我显示结果时,我发现只有一个二十个特征。结果不包含所有功能。 我用过 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:对不起我的英语,因为我比英语更新鲜。

【问题讨论】:

【参考方案1】:

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

    您在使用代理吗? ArcGIS JS API 的版本? 您是否使用 esri 示例打印服务测试过相同的应用程序? 服务是否安全?

如果您还有其他问题,请告诉我。

【讨论】:

【参考方案2】:

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

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

//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.

【讨论】:

以上是关于要素图层未出现在打印结果中的主要内容,如果未能解决你的问题,请参考以下文章

如何把arcgis要素数据集删除保留图层

Google 地图 - KML 图层未出现在地图上

Arcgis中,如何只显示选定的要素

arcpy实例教程-地图图层导出到要素类

要素图层查询的 outStatistics 参数问题

在ArcMap中发布FeatureLayer(要素图层)