webPrintingJob.html 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374
  1. <!--********************************************************************
  2. * Copyright© 2000 - 2021 SuperMap Software Co.Ltd. All rights reserved.
  3. *********************************************************************-->
  4. <!DOCTYPE html>
  5. <html style=" width: 100%;height: 100%;">
  6. <head>
  7. <meta charset="UTF-8">
  8. <title data-i18n="resources.title_webPrinting_landUse"></title>
  9. <script type="text/javascript" include='mapbox-gl-enhance' src="../../dist/mapboxgl/include-mapboxgl.js"></script>
  10. <style>
  11. .sidebar-config-wrap {
  12. position: absolute;
  13. top: 0;
  14. left: 0;
  15. height: 100vh;
  16. width: 360px;
  17. padding: 20px;
  18. background: #2c2c2c;
  19. }
  20. .sidebar-config-wrap .panel-group .panel {
  21. border-color: transparent;
  22. background: transparent;
  23. color: rgba(255, 255, 255, 0.6);
  24. }
  25. .sidebar-config-wrap .panel .panel-heading {
  26. background: #383838;
  27. color: rgba(255, 255, 255, 0.85);
  28. border-color: #383838;
  29. position: relative;
  30. }
  31. .sidebar-config-wrap .panel .panel-heading::before {
  32. content: "";
  33. height: 50%;
  34. width: 2px;
  35. background: #3394dc;
  36. position: absolute;
  37. top: 25%;
  38. left: 0;
  39. display: block;
  40. }
  41. .form-group {
  42. overflow: hidden;
  43. }
  44. .sidebar-config-wrap .form-control,
  45. .sidebar-config-wrap .btn-group {
  46. width: 70%;
  47. float: right;
  48. }
  49. .sidebar-config-wrap .form-group label {
  50. margin-bottom: 0;
  51. line-height: 34px;
  52. }
  53. .sidebar-config-wrap .btn-group {
  54. display: block;
  55. margin-bottom: 10px;
  56. }
  57. .sidebar-config-wrap .btn-group button {
  58. width: 50%;
  59. outline: none;
  60. }
  61. .sidebar-config-wrap .btn-group button:focus {
  62. outline: none;
  63. }
  64. .sidebar-config-wrap .panel-title a {
  65. width: 100%;
  66. display: block;
  67. text-decoration: none !important;
  68. overflow: hidden;
  69. }
  70. .sidebar-config-wrap .panel-title a span.glyphicon {
  71. float: right;
  72. }
  73. .sidebar-config-wrap .panel-title a[aria-expanded="true"] .glyphicon-chevron-down {
  74. display: none;
  75. }
  76. .sidebar-config-wrap .panel-title a[aria-expanded="false"] .glyphicon-chevron-up {
  77. display: none;
  78. }
  79. .sidebar-config-wrap .submit-btn-wrap {
  80. position: absolute;
  81. bottom: 0;
  82. left: 0;
  83. width: 100%;
  84. height: 80px;
  85. line-height: 80px;
  86. border-top: 2px solid #323232;
  87. text-align: center;
  88. }
  89. .sidebar-config-wrap #printBtn,
  90. .sidebar-config-wrap .progress {
  91. width: 80%;
  92. }
  93. .sidebar-config-wrap .progress {
  94. margin: 30px auto 0;
  95. }
  96. </style>
  97. </head>
  98. <body style=" margin: 0;overflow: hidden;background: #fff;width: 100%;height: 100%">
  99. <div id="map" style="width: 100%;height:100%"></div>
  100. <form id="printForm" class="sidebar-config-wrap" role="form">
  101. <div class="panel-group" id="accordion" role="tablist" aria-multiselectable="true">
  102. <div class="panel panel-default">
  103. <div class="panel-heading" role="tab" id="headingOne">
  104. <h4 class="panel-title">
  105. <a role="button" data-toggle="collapse" data-parent="#accordion" href="#collapseOne"
  106. aria-expanded="true" aria-controls="collapseOne">
  107. <span data-i18n="resources.text_baseInfo"></span>
  108. <span class="glyphicon glyphicon-chevron-down" aria-hidden="true"></span>
  109. <span class="glyphicon glyphicon-chevron-up" aria-hidden="true"></span>
  110. </a>
  111. </h4>
  112. </div>
  113. <div id="collapseOne" class="panel-collapse collapse in" role="tabpanel" aria-labelledby="headingOne">
  114. <div class="panel-body">
  115. <div class="form-group">
  116. <label for="templateName" data-i18n="resources.text_layoutTemplates"></label>
  117. <select class="form-control" id="templateName">
  118. </select>
  119. </div>
  120. <div class="form-group">
  121. <label for="title" data-i18n="resources.text_title"></label>
  122. <input type="text" class="form-control" id="title"
  123. data-i18n="[value]resources.title_mvtVectorLayer_mapboxStyle_landuse" />
  124. </div>
  125. <div class="form-group">
  126. <label for="subTitle" data-i18n="resources.text_subTitle"></label>
  127. <input type="text" class="form-control" id="subTitle" />
  128. </div>
  129. <div class="form-group">
  130. <label for="copyright" data-i18n="resources.text_copyRightInfo"></label>
  131. <input type="text" class="form-control" id="copyright" />
  132. </div>
  133. <div class="form-group">
  134. <label for="author" data-i18n="resources.text_author"></label>
  135. <input type="text" class="form-control" id="author" value="北京超图软件股份有限公司" />
  136. </div>
  137. </div>
  138. </div>
  139. </div>
  140. <div class="panel panel-default">
  141. <div class="panel-heading" role="tab" id="headingThree">
  142. <h4 class="panel-title">
  143. <a class="collapsed" role="button" data-toggle="collapse" data-parent="#accordion"
  144. href="#collapseThree" aria-expanded="false" aria-controls="collapseThree">
  145. <span data-i18n="resources.text_littleMap"></span>
  146. <span class="glyphicon glyphicon-chevron-down" aria-hidden="true"></span>
  147. <span class="glyphicon glyphicon-chevron-up" aria-hidden="true"></span>
  148. </a>
  149. </h4>
  150. </div>
  151. <div id="collapseThree" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingThree">
  152. <div class="panel-body">
  153. <div class="form-group">
  154. <label for="scale" data-i18n="resources.text_scale"></label>
  155. <input type="text" class="form-control" id="scale" value="0" />
  156. </div>
  157. <div class="form-group">
  158. <label for="center" data-i18n="resources.text_center"></label>
  159. <input type="text" class="form-control" id="center"
  160. data-i18n="[title]resources.text_centerTip" />
  161. </div>
  162. </div>
  163. </div>
  164. </div>
  165. <div class="panel panel-default">
  166. <div class="panel-heading" role="tab" id="scaleOptions">
  167. <h4 class="panel-title">
  168. <a class="collapsed" role="button" data-toggle="collapse" data-parent="#accordion"
  169. href="#collapseFour" aria-expanded="false" aria-controls="collapseFour">
  170. <span data-i18n="resources.text_scale"></span>
  171. <span class="glyphicon glyphicon-chevron-down" aria-hidden="true"></span>
  172. <span class="glyphicon glyphicon-chevron-up" aria-hidden="true"></span>
  173. </a>
  174. </h4>
  175. </div>
  176. <div id="collapseFour" class="panel-collapse collapse" role="tabpanel" aria-labelledby="scaleOptions">
  177. <div class="panel-body">
  178. <div class="form-group">
  179. <label for="scaleText" data-i18n="resources.text_scaleText"></label>
  180. <input type="text" class="form-control" id="scaleText" />
  181. </div>
  182. <div class="form-group">
  183. <label for="type" data-i18n="resources.text_style"></label>
  184. <select class="form-control" id="type">
  185. <option value="LINE">line</option>
  186. <option value="BAR" selected>bar</option>
  187. <option value="BAR_SUB">bar_sub</option>
  188. </select>
  189. </div>
  190. <div class="form-group">
  191. <label for="intervals" data-i18n="resources.text_intervals"></label>
  192. <input type="text" class="form-control" id="intervals" />
  193. </div>
  194. <div class="form-group">
  195. <label for="unit" data-i18n="resources.text_unit"></label>
  196. <select class="form-control" id="unit">
  197. <option value="METER" data-i18n="resources.option_meterUnit"></option>
  198. <option value="FOOT" data-i18n="resources.option_mileUnit"></option>
  199. <option value="DEGREES" data-i18n="resources.option_degreeUnit"></option>
  200. </select>
  201. </div>
  202. </div>
  203. </div>
  204. </div>
  205. <div class="panel panel-default">
  206. <div class="panel-heading" role="tab" id="exportOptions">
  207. <h4 class="panel-title">
  208. <a class="collapsed" role="button" data-toggle="collapse" data-parent="#accordion"
  209. href="#collapseFive" aria-expanded="false" aria-controls="collapseFive">
  210. <span data-i18n="resources.text_exportOptions"></span>
  211. <span class="glyphicon glyphicon-chevron-down" aria-hidden="true"></span>
  212. <span class="glyphicon glyphicon-chevron-up" aria-hidden="true"></span>
  213. </a>
  214. </h4>
  215. </div>
  216. <div id="collapseFive" class="panel-collapse collapse" role="tabpanel" aria-labelledby="exportOptions">
  217. <div class="panel-body">
  218. <div class="form-group">
  219. <label for="format" data-i18n="resources.text_format">格式</label>
  220. <select class="form-control" id="format">
  221. <option value="PDF">PDF</option>
  222. <option value="PNG">PNG</option>
  223. </select>
  224. </div>
  225. <div class="form-group">
  226. <label for="dpi">DPI</label>
  227. <input type="text" class="form-control" id="dpi" value="96" />
  228. </div>
  229. <div class="form-group">
  230. <label for="exportScale" data-i18n="resources.text_scale"></label>
  231. <input type="text" class="form-control" id="exportScale" value="0" />
  232. </div>
  233. </div>
  234. </div>
  235. </div>
  236. </div>
  237. <div class="submit-btn-wrap">
  238. <button type="submit" class="btn btn-primary" id="printBtn" data-i18n="resources.text_print"></button>
  239. <div class="progress">
  240. <div class="progress-bar progress-bar-striped active" role="progressbar" aria-valuenow="100"
  241. aria-valuemin="0" aria-valuemax="100" style="width: 100%">
  242. printing...
  243. </div>
  244. </div>
  245. </div>
  246. </form>
  247. <script type="text/javascript" include="bootstrap,jquery" src="../js/include-web.js"></script>
  248. <script type="text/javascript">
  249. var host = window.isLocal ? window.server : "https://iserver.supermap.io";
  250. var webMap = new mapboxgl.supermap.WebMap(1887887232, {
  251. target: 'map',
  252. server: 'https://www.supermapol.com'
  253. });
  254. webMap.on('addlayerssucceeded', function (e) {
  255. $('#center').val(e.map.getCenter().toArray().join(','));
  256. var extent = e.map.getCRS().extent;
  257. var res = Math.max(extent[2] - extent[0], extent[3] - extent[2]) / 512 / Math.pow(2, e.map.getZoom());
  258. var scale = SuperMap.Util.getScaleFromResolutionDpi(res, 96, e.map.getCRS().unit);
  259. $('#scale').val(scale * 2);
  260. $('#exportScale').val(scale);
  261. });
  262. var webPrintingJobService = new mapboxgl.supermap.WebPrintingJobService(host + '/iserver/services/webprinting/rest/webprinting/v1', {
  263. withCredentials: window.isLocal
  264. });
  265. webPrintingJobService.getLayoutTemplates(function (e) {
  266. e.result.forEach(function(item){
  267. $('#templateName').append('<option value='+item.templateName+'>'+item.templateName+'</option}');
  268. });
  269. });
  270. $('.progress').hide();
  271. $('#printForm').on('submit', printMap);
  272. function printMap(e) {
  273. e.preventDefault();
  274. $('#printBtn').hide();
  275. $('.progress').show();
  276. var params = new SuperMap.WebPrintingJobParameters({
  277. content: new SuperMap.WebPrintingJobContent({
  278. type: "WEBMAP",
  279. url: "https://www.supermapol.com/web/maps/1887887232/map.json"
  280. }),
  281. layoutOptions: new SuperMap.WebPrintingJobLayoutOptions({
  282. templateName: $('#templateName').val(),
  283. title: $('#title').val(),
  284. subTitle: $('#subTitle').val(),
  285. author: $('#author').val(),
  286. copyright: $('#copyright').val(),
  287. scaleBarOptions: new SuperMap.WebPrintingJobScaleBarOptions({
  288. scaleText: $('#scaleText').val(),
  289. type: $('#type').val(),
  290. intervals: $('#intervals').val(),
  291. unit: $('#unit').val(),
  292. }),
  293. littleMapOptions: new SuperMap.WebPrintingJobLittleMapOptions({
  294. scale: +$('#scale').val() || 0,
  295. center: { x: $('#center').val().split(',')[0], y: $('#center').val().split(',')[1] },
  296. layerNames: webMap.layers && webMap.layers.map(function(item) {return item.name})
  297. }),
  298. legendOptions: new SuperMap.WebPrintingJobLegendOptions({
  299. picAsBase64: "data:image/png;base64,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"
  300. })
  301. }),
  302. exportOptions: new SuperMap.WebPrintingJobExportOptions({
  303. format: $('#format').val(),
  304. dpi: +$('#dpi').val(),
  305. scale: +$('#exportScale').val()
  306. })
  307. });
  308. filterEmptyData(params);
  309. webPrintingJobService.createWebPrintingJob(params, function (e) {
  310. if (e.result && e.result[0] && e.result[0].path) {
  311. webPrintingJobService.getPrintingJob(e.result[0].resourceConfigID, function ( res ) {
  312. if (res.result && res.result.status === 'FINISHED') {
  313. let link = document.createElement('a');
  314. link.href = res.result.result.downloadUrl;
  315. link.download = 'supermap-webprinting-report.pdf';
  316. link.target = '_blank';
  317. link.click();
  318. // 释放内存
  319. window.URL.revokeObjectURL(link.href);
  320. $('#printBtn').show();
  321. $('.progress').hide();
  322. } else {
  323. alert('打印失败');
  324. $('#printBtn').show();
  325. $('.progress').hide();
  326. }
  327. });
  328. } else {
  329. alert('打印失败');
  330. $('#printBtn').show();
  331. $('.progress').hide();
  332. }
  333. });
  334. }
  335. function filterEmptyData(params) {
  336. for (let key in params) {
  337. if (params[key] === undefined) {
  338. delete params[key];
  339. } else if (typeof params[key] === 'object') {
  340. filterEmptyData(params[key]);
  341. if (JSON.stringify(params[key]) === '{}') {
  342. delete params[key];
  343. }
  344. }
  345. }
  346. }
  347. $('#legendBtnGroup').click(function (e) {
  348. $(this).children(".active").removeClass('active');
  349. $(e.target).addClass('active');
  350. $(this).attr('aria-active', e.target.getAttribute('id'));
  351. });
  352. </script>
  353. </body>