999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于B/S模式的地圖打印輸出技術(shù)研究

2018-03-09 06:06:11張娜李國清張蓓蓓
資源導刊(信息化測繪) 2018年2期
關(guān)鍵詞:設(shè)置用戶服務

張娜 李國清 張蓓蓓

(河南省遙感測繪院,河南 鄭州 450008)

1 引言

隨著信息化的發(fā)展,地理信息應用服務模式逐漸發(fā)生轉(zhuǎn)變。傳統(tǒng)紙質(zhì)地圖由專業(yè)技術(shù)人員通過編輯準備、數(shù)據(jù)獲取、數(shù)據(jù)編輯處理、直接制版等多道工序完成[1]。如今,各行各業(yè)都需要隨時輸出專題地圖,傳統(tǒng)工序已不能滿足當前實時制圖打印的需求。在互聯(lián)網(wǎng)時代,電子地圖已經(jīng)成為人們?nèi)粘J褂玫闹饕貓D產(chǎn)品,其所儲存的信息遠遠高于普通地圖[2]。在電子地圖的基礎(chǔ)上,隨時進行專題制圖輸出成為用戶的主要需求。從本質(zhì)上講,電子地圖的打印輸出就是將電子地圖轉(zhuǎn)化為紙質(zhì)地圖[3]。當前信息化系統(tǒng)主要支持基于C/S模式的地圖專題打印輸出,但是隨著信息化系統(tǒng)的發(fā)展,基于B/S模式的行業(yè)信息化系統(tǒng)逐漸成為主流,而當前大部分B/S模式電子地圖的打印只針對A3、A4等小幅面的圖片式打印輸出,無法滿足用戶對大幅面專題地圖矢量結(jié)果輸出的需求。

為了滿足用戶日常工作需求,本文通過研究基于B/S模式的大幅面地圖打印輸出技術(shù),使用Python語言編寫地圖打印服務文件,通過ArcGIS Server軟件完成打印服務發(fā)布,便于非專業(yè)用戶在B/S信息化系統(tǒng)中實現(xiàn)一鍵式地圖打印輸出。

2 技術(shù)原理

采用Python腳本語言,基于ArcGIS軟件的Python二次開發(fā)接口即arcpy開發(fā)完成。arcpy提供了大量類和函數(shù),使用它可以直接執(zhí)行ArcGIS工具箱中的工具,并且支持創(chuàng)建原生對象。在ArcGIS環(huán)境中,用戶可以將編寫的Python腳本語言導入到Python ToolBox中,生成腳本工具[4],同時ArcGIS 10.1以上版本支持將用戶制作的地理處理工具發(fā)布為服務,通過在線方式完成地理處理工作。ArcGIS 10.1以上版本Server自帶有地圖打印服務,但是該服務主要用于輸出A3、A4等常規(guī)尺寸地圖。為實現(xiàn)大幅面矢量數(shù)據(jù)輸出,需采用腳本語言自定義地圖打印服務。

首先創(chuàng)建自定義地理處理服務的Python腳本,腳本文件采用ConvertWebMapToMapDocument函數(shù),該函數(shù)可將待打印或?qū)С龅腤eb地圖(JSON格式)轉(zhuǎn)換為地圖文檔,然后arcpy.mapping腳本在輸出地圖文檔的所有圖層中循環(huán),除與Web地圖JSON中的服務圖層相對應的矢量圖層外,其他所有圖層均被移除。腳本可讀取自定義打印任務中的額外參數(shù),隨后可將地圖文檔導出為所選格式,如PDF。部分示例代碼如下所示:

df = arcpy.mapping.ListDataFrames(mxd,'Webmap')[0]

serviceLayersNames = [slyr.name for slyr in arcpy.mapping.ListLayers(mxd, data_frame=df)if slyr.isServiceLayer and slyr.visible and not slyr.isGroupLayer]

vectorLayersNames = [vlyr.name for vlyr in arcpy.mapping.ListLayers(mxd, data_frame=df)if not vlyr.isServiceLayer and not vlyr.isGroupLayer]

removeLayerNameList = [vlyrName for vlyrName in vectorLayersNames if vlyrName not in serviceLayersNames]

for lyr in arcpy.mapping.ListLayers(mxd, data_frame=df):

if not lyr.isGroupLayer

and not lyr.isServiceLayer

and lyr.name in removeLayerNameList

and lyr.name in vectorLayersNames:

arcpy.mapping.RemoveLayer(df, lyr)

在創(chuàng)建腳本工具過程中,需設(shè)置地圖打印交互參數(shù),包括以下幾個方面:

(1)Web_Map_as_JSON:該參數(shù)為Web應用程序當前的地圖狀態(tài),用JSON表示。

(2)Fromat:傳遞打印時地圖圖像使用的格式。

(3)Layout_Template:用于設(shè)置打印時使用的地圖模板文檔。

(4)Georef_info:用于設(shè)置是否將坐標信息導出。

(5)Output_File:將要創(chuàng)建的輸出文件。

3 地圖打印技術(shù)路線

本文基于ArcGIS軟件完成B/S地圖打印輸出,具體技術(shù)路線如圖1所示。

圖1 技術(shù)流程圖

(1)準備用于打印輸出的數(shù)據(jù)文件:要進行大幅面的矢量數(shù)據(jù)輸出,需要將所有數(shù)據(jù)全部導入gdb文件數(shù)據(jù)庫。已制作好的切片地圖數(shù)據(jù)同樣可以采用鑲嵌數(shù)據(jù)集的方式導入gdb文件數(shù)據(jù)庫,并將地圖文檔發(fā)布為服務,用于Web程序打印輸出。

(2)準備數(shù)據(jù)打印輸出模板:在服務器端根據(jù)用戶需求提前配置地圖打印模板,包括地圖打印幅面、指北針、比例尺、圖例等各類地圖整飾要素。

(3)編寫Python腳本:根據(jù)打印輸出需求,編寫Python腳本,設(shè)置地圖模板位置、打印輸出參數(shù)等。

(4)創(chuàng)建Python工具:基于Python腳本程序創(chuàng)建地理處理工具,設(shè)置相關(guān)參數(shù),可先在arcmap桌面端進行工具測試,對錯誤進行修改直到測試成功。

(5)發(fā)布打印服務:將創(chuàng)建的腳本工具共享發(fā)布為地理處理服務。

(6)地圖打印輸出:在Web程序中調(diào)用發(fā)布的數(shù)據(jù)及地理處理服務,實現(xiàn)打印輸出。

4 功能實現(xiàn)

4.1 打印模板設(shè)置

為讓用戶在瀏覽器上一鍵式出圖打印,需在服務器端設(shè)置打印模板。根據(jù)需求,在arcmap的layout view視圖中設(shè)置地圖打印模板,如紙張大小可設(shè)置為60 cm×60 cm、100 cm×60 cm等尺寸,自定義添加圖名、圖例、指北針等地圖整飾要素,設(shè)置相關(guān)顯示樣式。

4.2 打印服務發(fā)布

創(chuàng)建地圖打印工具時,根據(jù)提前制作的地圖模板,設(shè)置打印參數(shù),便于用戶在輸出時選擇。在打印服務發(fā)布時,應注意同步、異步問題,程序設(shè)置應與服務相同;根據(jù)用戶需求進行打印測試,一般情況下耗時短用同步,耗時較長則用異步。

4.3 Web端地圖打印

在Web程序中,基于ArcGIS提供的JS API接口,使用JavaScript語言調(diào)用地圖數(shù)據(jù)服務及打印服務。為滿足用戶一鍵式打印需求,采用所見即所得的地圖打印方式。打印出圖比例尺即用戶當前瀏覽的比例尺,紙張尺寸可選,出圖范圍根據(jù)比例尺及選定的紙張尺寸由程序自動計算確定。主要代碼如下所示:

function init() {

printFun.map = new esri.Map("printmap",{extent:myMap.extent });

var dynURL=”http:// MyServer:6080/ArcGIS/rest/services/pdscb/MapServer”;

printFun.curlayer= new esri.layers.ArcGISTiledM apServiceLayer(dynURL);

printFun.map. addLayer(printFun.curlayer);

var printUrl="http://MyServer:6080/ArcGIS/rest/services/Print/pdsprint/GPServer/pdsprint ";

printTask = new esri.tasks.PrintTask(printUrl,{async: true});

params = new esri.tasks.PrintParameters();params.map = printFun. map;

}

function print(){

var ptemplate = new esri.tasks.

PrintTemplate();

ptemplate.preserveScale = false;

params.template={layout:select_layout,format:select_format,

l a y o u t O p t i o n s:{t i t l e T e x t:t i t l e,legendLayers:[legendLayer]}};

printTask.execute(params, printComplete);

}

function printComplete(result){

window.open(result.url);

}

dojo.addOnLoad(init);

在B/S系統(tǒng)中增加地圖打印輸出模塊,用戶可根據(jù)需求選擇紙張大小及輸出格式,設(shè)置地圖標題,即可完成專題地圖輸出工作。地圖打印界面如圖2所示,輸出地圖文檔如圖3所示。

圖2 地圖打印界面

圖3 地圖制圖輸出結(jié)果

5 結(jié)束語

基于B/S模式的地圖打印輸出技術(shù)讓用戶能在瀏覽器上實時進行地圖打印輸出,解決了傳統(tǒng)地圖打印需安裝桌面軟件、地圖輸出設(shè)置復雜等問題。該技術(shù)將復雜的設(shè)置操作放在服務器端,由專業(yè)人員進行維護,降低了地理信息系統(tǒng)使用門檻,拓展了地理信息服務范圍,在各行業(yè)信息化系統(tǒng)中有廣闊的應用前景。

[1]張冬梅.數(shù)字地圖制圖技術(shù)淺析[J].測繪通報, 2009 (12):70-72.

[2]魏紅艷,常軍.淺談電子地圖的應用現(xiàn)狀及發(fā)展前景[J].才智, 2015 (10).

[3]張曉輝,游雄,賈奮勵.電子地圖打印的總體設(shè)計和輸出[J].測繪科學技術(shù)學報,2007,24 (2):145-148.

[4]ArcGIS幫助10.1[EB/OL].http://resources.ArcGIS.com/zh-cn/help/main/10.1/index.html.

猜你喜歡
設(shè)置用戶服務
中隊崗位該如何設(shè)置
少先隊活動(2021年4期)2021-07-23 01:46:22
服務在身邊 健康每一天
服務在身邊 健康每一天
服務在身邊 健康每一天
招行30年:從“滿意服務”到“感動服務”
商周刊(2017年9期)2017-08-22 02:57:56
關(guān)注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關(guān)注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
關(guān)注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
本刊欄目設(shè)置說明
中俄臨床醫(yī)學專業(yè)課程設(shè)置的比較與思考
主站蜘蛛池模板: 欧美综合区自拍亚洲综合绿色 | 国产视频a| 婷婷综合亚洲| 丰满人妻被猛烈进入无码| 久久久久夜色精品波多野结衣| 性视频一区| 最新加勒比隔壁人妻| 亚洲欧美综合精品久久成人网| 国产尤物jk自慰制服喷水| 成人av手机在线观看| 制服无码网站| 中文字幕丝袜一区二区| 91免费国产高清观看| 99人妻碰碰碰久久久久禁片| 91视频精品| 久青草国产高清在线视频| 性激烈欧美三级在线播放| 在线亚洲精品福利网址导航| 这里只有精品在线播放| 夜夜操天天摸| 国产噜噜噜视频在线观看| 欧美亚洲国产精品第一页| 久久综合亚洲色一区二区三区| 亚洲第一成年人网站| 免费无码AV片在线观看中文| 国产av色站网站| Jizz国产色系免费| 国产玖玖玖精品视频| 亚洲Aⅴ无码专区在线观看q| 青青草原国产| 国产在线一二三区| 99热这里只有免费国产精品| 久久www视频| 在线观看国产精美视频| 国产欧美精品一区aⅴ影院| 亚洲欧美自拍中文| 一区二区三区在线不卡免费| 香蕉色综合| 视频二区国产精品职场同事| 日韩国产无码一区| 亚洲va在线∨a天堂va欧美va| 亚洲成人网在线播放| 欧美三级视频在线播放| 亚洲视频免费播放| 四虎永久免费地址| 激情综合网址| 国产精品网曝门免费视频| 精品三级在线| 久久香蕉欧美精品| 午夜影院a级片| 日韩中文字幕亚洲无线码| 色综合天天视频在线观看| 中文字幕在线观| 欧美精品一二三区| 麻豆精品国产自产在线| 蜜臀AV在线播放| 九色视频一区| 国产成人欧美| 久青草国产高清在线视频| 99精品热视频这里只有精品7| 国产91无码福利在线| 国产女人18毛片水真多1| 园内精品自拍视频在线播放| 久久精品国产亚洲AV忘忧草18| 99久久国产综合精品2020| 国产精品浪潮Av| 乱系列中文字幕在线视频| 国产精品理论片| A级毛片无码久久精品免费| 国产精品夜夜嗨视频免费视频| 国产在线观看91精品| 国产精品三区四区| 中文字幕自拍偷拍| 亚洲色无码专线精品观看| 久久久久久久久久国产精品| 久草网视频在线| 爽爽影院十八禁在线观看| 国产一二视频| 亚洲一区二区三区国产精品| 国产乱视频网站| 色妞www精品视频一级下载| 久久久久国产精品熟女影院|