环境:来源于工作过程,使用的API是  arcgis js 3.*  3系API,4.*暂时没测试;

1、数据与打印服务跨域情况下,不能打印问题。

一般情况下,我们发布的数据服务和打印服务是在一台服务器上,但业务中经常会调用别家单位的服务,要实现打印怎么办?

解决:通过设置通用代理,arcgis js api提供了基于.NET /JAVA的代理,在proxy.config里面设置好服务的IP即可。

2、打印中文乱码。

这个情况一般都是服务器的打印模板MXD字体默认是ESRI美国的字体,需要更改为中文编码格式,比如:宋体,

修改路径:安装ArcGIS Server的文件夹,\ArcGIS\Server\Templates\ExportWebMapTemplates\,在下面修改要用到的排版样式的字体和排版布局。

3、PictureMarkerSymbol等一些自定义样式,使用自己的图标无法打印出来。

这里由于打印内部代码没有支持自定义图标,所以一般只能显示在GraphicsLayer中,但无法打印出来。

解决:使用arcgis中SimpleMarkerSymbol的默认样式,虽然图标没有那么明确,但可以打印。

4、图例打印出来显示 override。

一般使用graphicsLayer来显示,如果不过滤那么,打印的时候一般都是以override1、override2的形式来显示图例。

这个问题主要就是因为内部自动使用ColorInfo渲染,可以改变渲染方式来实现。

解决:1) 使用renderer代替setSymbol来渲染颜色;2)还一种方式:设置PrintTemplate的LayoutOptions里面参数LegendLayers为服务图层,即不显示GraphicsLayer的图例。

5、打印服务图层,图例均不能显示,比如一个土地利用规划,N个图例都不显示。

一般我们显示图层都是自己设置图层名称,直接使用Layer.id=图层名称 ,来加载设置,不显示图层都没有特别提示,这个问题估计难倒了一大批GIS开发人员,新手熟手都一直没解决。

终于功夫不误有心人,在GeoNet、stackexchange网上终于摸到了一些蛛丝马迹:【LegendLayer.layerId property stands for the assigned ID string of the layer in the map, not in the service.】

意思就是图例图层layerId 要显示的是默认加载到Map中ID(一般是layer1这样的形式),而不是我们给图层指定的图层名称,这个才是真的关键。

解决:对于要加载图例的动态服务、瓦片服务、要素服务,不指定ID=图层名称,默认加载后获取layer.id,然后赋予给LegendLayer.layerId,即能显示图层图例。

6、图例对一些服务支持的格式不支持,存在漏洞BUG。

Legend images are unsupported for .emf, .gif, .pdf, .svg, .svgz, and .tif image formats. These formats are supported for classic map services (MXD).

ArcGIS JS API使用PrintTask打印地图问题解决汇总的更多相关文章

  1. 基于ArcGIS JS API的在线专题地图实现

    0 引言     专题地图是突出而深入的表示一种或几种要素或现象,即按照地图主题的要求,集中表示与主题有关内容的地图.专题地图的专题要素多种多样,分类方法也多种多样,根据专题地图表现数据的特点可分为定 ...

  2. 关于ueditor与arcgis js api同用会报错的问题

    在ueditor与arcgis js api共用时,需要将ueditor\third-party\zeroclipboard\ZeroClipboard.js中的 if (typeof define ...

  3. geoserver图层属性查询及查询结果转换为arcgis js api能使用的格式

    一个项目使用了ArcGIS JS API开发GIS展示层,但GIS服务使用了Geoserver,这时加载Geoserver数据和查询数据就和之前完全不一样了,以下介绍下我使用ArcGIS JS API ...

  4. 【高德地图API】从零开始学高德JS API(二)地图控件与插件——测距、圆形编辑器、鼠标工具、地图类型切换、鹰眼鱼骨

    原文:[高德地图API]从零开始学高德JS API(二)地图控件与插件——测距.圆形编辑器.鼠标工具.地图类型切换.鹰眼鱼骨 摘要:无论是控件还是插件,都是在一级API接口的基础上,进行二次开发,封装 ...

  5. 【高德地图API】从零开始学高德JS API(一)地图展现——仙剑地图,麻点图,街景,室内图

    原文:[高德地图API]从零开始学高德JS API(一)地图展现——仙剑地图,麻点图,街景,室内图 摘要:关于地图的显示,我想大家最关心的就是麻点图,自定义底图的解决方案了吧.在过去,marker大于 ...

  6. arcgis js 之 渔网工具(调用地图服务)

    arcgis js 之 渔网工具(调用地图服务) 原理: 简历不同级别的网渔网图层,设置显示比例尺.然后发布服务,使用MapImageLayer接收. 过程: 1.在arcmap中用创建渔网工具将不同 ...

  7. Arcgis Android API开发之离线地图

    最近一直在倒腾Arcgis Android API等相关的东西,想把自己的做的图放到地图上去,也就是离线地图,穷人一般是没有钱的,一个月好几十的流量是开不起的,所以就左捉摸,右思考,看着API里面有离 ...

  8. Arcgis js API使用wmts方式加载GeoWebCache中的切片地图(转载)

    使用GeoWebCache的主要目的是其独立安装版能够发布arcgis的切片.我们知道,使用openlayer是调用geoserver最方便的方法,那么在发布完arcgis的切片后,怎么用arcgis ...

  9. ArcGIS JS 学习笔记4 实现地图联动

    1.开篇 守望屁股实在太好玩了,所以最近有点懒,这次就先写个简单的来凑一下数.这次我的模仿目标是天地图的地图联动. 天地的地图联动不仅地图有联动,而且鼠标也有联动,我就照着这个目标进行山寨. 2.准备 ...

随机推荐

  1. JS逆向-抠代码的第四天【手把手学会抠代码】

    今天是md5巩固项目,该项目比昨天的复杂一些,但方法思路是一样的. 今天的目标:https://www.webportal.top/ 打开网站,填入账号密码(密码项目以123456做测试).点击登录抓 ...

  2. POJ1562_Oil Deposits(JAVA语言)

    思路:bfs.水题,标记下计数就完了. Oil Deposits Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 22928 ...

  3. PTA 链表逆置

    6-3 链表逆置 (20 分)   本题要求实现一个函数,将给定单向链表逆置,即表头置为表尾,表尾置为表头.链表结点定义如下: struct ListNode { int data; struct L ...

  4. 深入理解Java并发框架AQS系列(三):独占锁(Exclusive Lock)

    一.前言 优秀的源码就在那里 经过了前面两章的铺垫,终于要切入正题了,本章也是整个AQS的核心之一 从本章开始,我们要精读AQS源码,在欣赏它的同时也要学会质疑它.当然本文不会带着大家逐行过源码(会有 ...

  5. 通过xshell实现内网linux上公网yum、apt-get安装软件

    环境:在内网,我的机器可上网,内网服务器不可上网,本来在我机器上开个代理,服务器直接通过我机器上网就可以,奈何网络配置太复杂,目前只有ssh端口可通. 先安装ccproxy软件,配置http监听端口为 ...

  6. kong 结合 istio demo

  7. Chrome89针对sessionStorage的更新导致数据共享问题

    最近将chrome更新到最新的版本,然后发现以前可以正常使用的功能无法使用了,经过分析后发现是浏览器新版本才出现的问题,今天记录以下. 一.遇到的问题 我们具体的问题场景,在A页面中需要打开B页面,同 ...

  8. ES6转ES5(Babel转码器)

    ES6转ES5(Babel转码器) 前提:必须在VScode中已经安装了Node.js 官网:https://nodejs.org/en/ 一.安装命令行转码工具 npm install --glob ...

  9. 数据库MySQL一

    P252 1.MySQL 最为主要使用的数据库 my sequel 不容易查找数据 DB数据库 存储数据的仓库,它保存了一系列有组织的数据 DBMS数据库管理系统,数据库是通过DBMS创建和操作的容器 ...

  10. 奇异值分解(SVD)与主成分分析(PCA)

    本文中的内容来自我的笔记.撰写过程中,参考了书籍<统计学习方法(第2版)>和一些网络资料. 第一部分复习一些前置知识,第二部分介绍奇异值分解(SVD),第三部分介绍主成分分析(PCA).以 ...