arcgis api for javascript 学习(六) 地图打印
1、本文应用arcgis api for javascript对发布的动态地图进行打印,打印的为PDF格式,打印出来如图:
2、需要特别注意的是:我们在运行代码前,需要打开PrintingTools,如图
3、并且在启动后,在URL中,需要修改一下,如图:
4、运行代码,点击打印如图:
5、代码部分:
- <!DOCTYPE html>
- <html>
- <head>
- <title>地图打印</title>
- <meta http-equiv="content-type" content="text/html;charset=utf-8">
- <meta http-equiv="Access-Control-Allow-Origin" content="*">
- <link rel="stylesheet" href="https://js.arcgis.com/3.29/esri/css/esri.css">
- <script src="https://js.arcgis.com/3.29/"></script>
- <style>
- #map{
- position:relative;
- height:500px;
- width:100%;
- }
- </style>
- </head>
- <body>
- <div id='map'>
- </div>
- <div>
- <input id="Btn" type="button" value="打印地图PDF" />
- </div>
- <script>
- var map,sr,bool = false,initextent,url;
- require([
- "esri/map",
- "esri/layers/MapImage",
- "esri/layers/MapImageLayer",
- "esri/geometry/Extent",
- "esri/SpatialReference",
- "esri/tasks/PrintTask",
- "esri/tasks/PrintTemplate",
- "esri/tasks/PrintParameters",
- "esri/layers/ArcGISDynamicMapServiceLayer",
- "dojo/domReady!"],
- function (
- Map,
- MapImage,
- MapImageLayer,
- Extent,
- SpatialReference,
- PrintTask,
- PrintTemplate,
- PrintParameters,
- ArcGISDynamicMapServiceLayer) {
- sr = new SpatialReference(4326)
- map = new Map("map", {
- basemap:"satellite"
- });
- //调用动态地图服务
- var DyLayer=new ArcGISDynamicMapServiceLayer('http://localhost:6080/arcgis/rest/services/dtchina/MapServer');
- map.addLayer(DyLayer);
- var btn=document.getElementById("Btn");
- btn.onclick=function(){
- btn.setAttribute("disabled","true");
- btn.value="正在输出...";
- var printMap = new PrintTask("http://localhost:6080/arcgis/rest/services/Utilities/PrintingTools/GPServer/Export%20Web%20Map%20Task");
- //创建地图打印模版
- var template = new PrintTemplate();
- var params = new PrintParameters();
- //输出图片的空间参考
- printMap.outSpatialReference = map.SpatialReference
- //打印图片的各种参数
- template.exportOptions = {
- width: 850,
- height: 650,
- dpi: 96
- };
- template.format = "PDF";
- template.layout = "MAP_ONLY";
- params.map = map;
- params.template = template;
- printMap.execute(params, function(result){
- console.log(result);
- if (result != null) {
- (function(){
- btn.disabled=false;
- btn.value="打印地图PDF";
- })()
- window.open(result.url);
- }
- })
- }
- });
- </script>
- </body>
- </html>
arcgis api for javascript 学习(六) 地图打印的更多相关文章
- arcgis api for javascript 学习(七) 调用发布地图信息,并将地图属性信息输出到Excel表格---进阶版
我们在arcgis api for javascript 学习(三)已经学习到了关于调用地图信息进行属性输出的问题,不过通过代码我们实现后会发现还是有一些小瑕疵的,比如我们只能单个数据属性的输出,如果 ...
- ArcGis API for JavaScript学习——加载地图
ArcGis API for JavaScript开发笔记——加载地图 在这个例子中使用的离线部署的API(请参见 http://note.youdao.com/noteshare?id=f42865 ...
- arcgis api for javascript 学习(三) 调用发布地图信息,并将地图属性信息输出到Excel表中
吐血推荐:网上搜了很久关于webgis地图属性表输出到Excel表,并没能找到相关有价值的信息,在小白面前,这就是一脸懵x啊!网上要么是关于前端如何在页面上直接导出excel,和webgis半毛钱关系 ...
- arcgis api for javascript 学习(四) 地图的基本操作
1.文章讲解的为地图的平移.放大.缩小.前视图.后视图以及全景视图的基本功能操作 2.主要用到的是arcgis api for javascript中Navigation的用法,代码如下: <! ...
- ArcGis API for JavaScript学习——离线部署API
ArcGis API for JavaScript开发笔记——离线部署API 以3.18版API为例: 在加载图图前引用GIS服务是必须的.有两种方法,一是在线引用,而是离线部署引用. 在线引用: & ...
- Arcgis api for javascript学习笔记(4.5版本) - 获取FeatureLayer中的graphics集合
在Arcgis api for javascript 3.x 版本中,我们可以直接通过某个FeatureLayer对象中的graphics属性获取要素集合. graphics属性 但是在4.x版本中, ...
- Arcgis api for javascript学习笔记(4.5版本) - 本地部署及代理配置
在开发过程中,由于api的文件比较多,没必要每个项目都将api加入到解决方案中.况且在VS中如果将api加入解决方案,在编写css或js代码时,由于智能提示需要扫描脚本等文件,会导致VS很卡.所以个人 ...
- Arcgis api for javascript学习笔记(3.2X版本)-初步尝试
Arcgis api for javascript(3.22版本)官方地址 :https://developers.arcgis.com/javascript/3/ 1. 根据官方示例实现一个简单地图 ...
- Arcgis api for javascript学习笔记 - 不改变默认端口(6080)情况下,外网访问Arcgis Server 发布的接口
Arcgis Server发布的地图服务地址默认端口号是6080,假设本机上只对80端口做了外网映射,在IIS中部署了一个网站绑定了80端口,那么网站中某个页面通过arcgis api for js ...
随机推荐
- Oracle 事务ACID的特性
1.事务对数据库控制操作 事务(Transaction)是用户定义的一个数据库操作序列,是不可分割的一部分的整体.这些操作要么做,要么不做(原子性).事务是对数据库对进行操作的最基本的逻辑单位,他可以 ...
- Add a Simple Action添加简单按钮
In this lesson, you will learn how to create a Simple Action. For this purpose, a new View Controlle ...
- Python3爬取豆瓣网电影信息
# -*- coding:utf-8 -*- """ 一个简单的Python爬虫, 用于抓取豆瓣电影Top前250的电影的名称 Language: Python3.6 ...
- mysql 查询指定数据库中的表明和字段名
SELECT TABLE_NAME,COLUMN_NAME,COLUMN_COMMENT FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_COMMENT LI ...
- 使用Graphviz和Pyreverse绘制Python项目结构图
使用Graphviz和Pyreverse绘制Python项目结构图 简介 Graphviz开源的图形绘制工具包 Pyreverse分析Python代码和类关系的工具 安装 安装Graphviz 官网下 ...
- 40-用 volume container 共享数据
volume container 是专门为其他容器提供 volume 的容器.它提供的卷可以是 bind mount,也可以是 docker managed volume.下面我们创建一个 volum ...
- Scrapy的Spider类和CrawlSpider类
Scrapy shell 用来调试Scrapy 项目代码的 命令行工具,启动的时候预定义了Scrapy的一些对象 设置 shell Scrapy 的shell是基于运行环境中的python 解释器sh ...
- go语言设计模式之factory
factory.go package factory import ( "errors" "fmt" ) const ( Cash = 1 DebitCard ...
- acwing 7 混合背包
习题地址 https://www.acwing.com/problem/content/description/7/ 题目描述有 N 种物品和一个容量是 V 的背包. 物品一共有三类: 第一类物品只 ...
- 剑指Offer-36.数字在排序数组中出现的次数(C++/Java)
题目: 统计一个数字在排序数组中出现的次数. 分析: 给定一个已经排好序的数组,统计一个数字在数组中出现的次数. 那么最先想到的可以遍历数组统计出现的次数,不过题目给了排序数组,那么一定是利用了排序这 ...