arcgis api for js入門開發系列十二地圖列印(GP服務)

上一篇實現了demo的地圖統計圖,本篇新增地圖列印,截圖如下:

(1)地圖列印實現的思路如下:首先在創建好地圖列印GP模型,設置好模型的參數;其次是驗證模型運行模型;然後是發布地圖列印的GP服務;最後是利用arcgis api調用發布好的地圖列印GP服務即可。

地圖列印的GP模型如下:

(2)實現地圖列印功能的核心代碼如下:

$("#startPrint").bind("click", function (e) {n esriConfig.defaults.io.proxyUrl = getRootPath() + "proxy.ashx";//設置列印跨域代理請求n esriConfig.defaults.io.alwaysUseProxy = true;n var printMapObject = BX.Print.map;//設置地圖對象var printTask = new esri.tasks.PrintTask(MapConfig.printGPURL, { async: true });//printGPURL地圖列印GP服務n var tText = $("#inputTitle").val();n var aText = $("#inputAuthor").val();n var oLayout = $(#cbxLayout).val();n var oFormat = $(#cbxFormat).val();n var layouts = [{//設置列印地圖排版信息n options: {n scalebarUnit: "Meters",n titleText: tText,n authorText: aTextn }n }];n var template = new esri.tasks.PrintTemplate();//創建地圖列印的模板n template.format = oFormat;//設置輸出格式n template.layout = oLayout;//設置排版n template.preserveScale = false;n template.layoutOptions = layouts[0].options;n var params = new esri.tasks.PrintParameters();n params.map = printMapObject;n params.template = template;n printTask.execute(params, printResult, printError);//執行地圖列印GP調用n });n

printResult = function (e) {//列印成功 n BX.Print.map.graphics.clear();n window.open(e.url, "_blank");n window.location = getRootPath() + "/handler/SavePrintResultHandler.ashx?resultUrl=" + e.url;//請求後台,彈出下載n };n n printError = function (e) {//列印失敗callbackn alert("列印失敗!");n console.log(e.error);n };n

備註:團隊承接webgis/gis畢業設計以及webgis項目等業務,歡迎有相關需求的客戶來諮詢

GIS之家接受webgis開發遇到的技術疑點難點在線諮詢,採取在線分答計時收費模式,有需要的加QQ:406503412

GIS之家論壇(推薦):GIS之家論壇

GIS作品:GIS之家

QQ興趣部落:GIS之家部落

GIS之家交流群一:432512093(已滿)

GIS之家交流群二:296438295

推薦閱讀:

ArcGIS 1.1
【數據運用】基於時空圈測度的京津冀城市群研究
ArcGIS Pro 2.0的發布意味著什麼?
arcgis api for js入門開發系列三地圖工具欄
『規劃師的ArcGIS應用手冊』- 遙感影像的用地解譯

TAG:WebGIS | ArcGIS | GIS地理信息系统 |