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

基于ArcGIS Engine的地圖模板化輸出

2011-11-15 03:22:30曹一冰劉小林
測繪通報 2011年7期
關鍵詞:頁面設計

曹一冰,江 南,張 毅,劉小林

(信息工程大學測繪學院,河南鄭州450052)

基于ArcGIS Engine的地圖模板化輸出

曹一冰,江 南,張 毅,劉小林

(信息工程大學測繪學院,河南鄭州450052)

地圖的模板化輸出就是利用模板技術思想將制圖專家的地圖設計知識和實踐經驗模板化、可視化,對于實現地圖設計知識和實踐經驗的傳輸與共享,提高地圖制圖的效率具有重要的理論研究意義和實際應用價值。介紹ArcGIS制圖中3種不同的模板技術,分析在.NET平臺下采用C#語言基于ArcGIS Engine組件實現地圖模板化輸出的原理方法以及關鍵技術,實現頁面模板的轉換、圖面輔助元素的個性化定制及地圖的打印輸出。

模板;基礎模板;地圖模板;頁面模板;ArcGIS Engine;圖面輔助元素

一、引 言

地圖的圖面設計,一般來說屬于地圖內容要素以外的設計工作,但它又與地圖內容的基本要素有著密切的聯系,兩者互為補充,不能分割。圖面設計不僅在于美化地圖,提高地圖的藝術水平,更重要的還在于通過圖面設計,可進一步體現地圖的設計風格,便于地圖的閱讀和使用[1]。

世界上的事物具有相似性,“模板”就是基于這個原理而產生的。其基本思想是從一組相似的事物中抽象出一種框架型的模式,任何一個類似的事物都可以作為以模板為超類派生類型的實例[2]。模板是面向用戶的工具,其實質就是一種規范,是定義某一類事物的標準。這一類事物依據相應標準產生、變化并具有一定的約束性[3]。

ArcGIS是美國環境系統研究所(Environment System Research Institute,Esri)在全面整合了GIS與數據庫、軟件工程、人工智能、網絡技術及其他多方面的計算機主流技術之后,成功推出的代表GIS最高技術水平的全系列GIS產品。ArcGIS是一個全面的、可伸縮的GIS平臺,可為用戶構建一個完善的GIS系統,提供完整的解決方案[4]。為了提高制圖效率,實現ArcMap界面的個性化定制、地圖或圖層的重復利用、頁面視圖的標準化,ArcGIS提供了3種不同的模板技術。

1)基礎模板(normal template)。ArcMap使用基礎模板存儲默認的用戶界面信息,例如所有Arc-Map工具條的可見性、停靠位置、漂浮狀態。這些信息自動記錄在基礎模板中,不管有無保存打開的地圖,當啟動ArcMap軟件時,工具條的位置保持上次退出系統前的狀態。

2)地圖模板(map templates)。地圖模板不是需要特殊開發工具的應用程序或擴展軟件,它是制圖專家制作出來的具有專業水準的地圖用例,包括地圖文件、用例數據、文檔和其他資源。它提供了制作地圖的框架,實現了地圖圖層、符號文件等的復用,不論是初級用戶還是專業用戶都可以利用地圖模板學習制圖知識和經驗,方便高效地制作出具有專家水平的地圖作品。

3)頁面模板(template map documents)。頁面模板是一種后綴以mxt結尾的模板文件,它實現了地圖圖面設計的標準化,簡化了地圖內容要素以外的設計工作。當更換頁面模板時只有模板中包含的圖外要素應用到當前地圖中,原始地圖的圖外要素將被刪除(如原始地圖中包含圖例信息,而使用的頁面模板不包含時,最后的地圖將不包含圖例),模板中的圖層數據不會添加到當前地圖中。然而,當使用頁面模板創建一幅新地圖時,模板中的圖層數據將被添加到地圖中。

本文在分析ArcGIS所采用的3種不同的模板技術的基礎上,針對地圖圖面設計的主要內容研究了基于ArcGIS Engine的頁面模板的應用及轉換、圖面輔助元素的個性化定制、地圖的打印輸出。實現了頁面視圖的快速定制、個性化轉換及打印輸出,提高了地圖輸出的效率,具有很強的實用價值。

二、開發環境

在開發平臺的選擇上主要從系統的需求以及系統的穩定性、易維護性和可擴展性的角度來考慮,運用微軟.NET框架結合ArcGIS Engine 9.3實現系統的主要功能。

ArcGIS Engine是Esri在ArcGIS 9版本才開始推出的新產品,它是一套完備的嵌入式GIS組件庫和工具庫,使用ArcGIS Engine開發的GIS應用程序可以脫離ArcGIS Desktop而運行。ArcGIS Engine面向的用戶并不是最終使用者,而是GIS項目程序開發員。ArcGIS Engine不再是一個終端應用,不再包括ArcGIS桌面的用戶界面,它只是一個用于開發新應用程序的二次開發功能組件包[5]。ArcGIS Engine是由平臺獨立的C++對象構建的,這些對象在Windows和UNIX平臺下均可運行,并具有多個開發應用程序接口(API),包括COM、.NET、Java和C++等。開發人員可以利用這些應用程序接口和一些封裝好的功能構建應用程序[6]。

C#是可用于創建運行在 .NET CLR上的應用程序的語言之一,它從C和C++語言演化而來,是微軟公司專門為用戶使用.NET平臺而創建的。C#基于IT工業標準,采用了可視化編程技術,開發簡單、功能強大、類型安全,而且是完全面向對象的語言。利用C#的特性可以實現應用程序的快速開發,減少開發周期。

三、頁面模板的準備

頁面模板的準備過程就是進行地圖圖面設計的過程,主要包括兩個方面的內容:① 地圖的主區構圖,地圖主區的輪廓圖形怎樣在圖面上擺放,才算是與幅面協調、符合美學觀點;②圖廓內外諸輔助要素,如圖名、圖廓、圖例、附圖、比例尺及各種說明的位置、范圍大小及其形式的設計,以及在圖面上如何配置,才能達到明顯、美觀和便于閱讀的目的。

ArcGIS安裝完成后,在系統安裝目錄(in Templates)下面,ArcGIS已經提供了很多頁面模板,可以使用現有的頁面模板或對現有頁面模板進行更改調整或者用戶創建自己的模板實現頁面模板的轉換和地圖的模板化輸出,減少了很多常規的設置。本系統用戶可以選擇模板文件夾,因此用戶自定義的模板文件可以放在系統模板文件夾下,也可以放在自定義的文件夾下,然后用戶可以選擇并預覽該文件夾下的模板文件,選擇合適的模板進行應用。

四、基于ArcGIS Engine的地圖模板化輸出的具體實現

實現地圖的模板化輸出重點在于研究模板的元素構成及模板的轉換、圖面輔助元素的定制、地圖打印輸出。為實現這些研究內容,需要作一些技術設計,并深入分析其在實現過程中遇到的問題和解決它們的關鍵技術方法。

1.頁面模板的應用及轉換

頁面模板是對地圖圖面設計專家知識的總結與抽象,這種總結與抽象以模板的形式保存在模板文件中。應用和轉換地圖模板時,本文的具體思路是:當用戶預覽模板文件夾中的模板文件并根據具體的制圖需求應用相應的模板文件的,將會調用模板轉換函數btnChangeTemplate_Click(object sender,EventArgs e)。該函數首先把頁面的單位替換為模板文件中地圖框的單位,頁面的尺寸設置為模板文件中的頁面尺寸;其次清空當前視圖的Layout并保存MapFrame;最后遍歷模板中PageLayout的所有元素,替換當前PageLayout中的所有元素,設置地圖的顯示方向,刷新整個視圖進行顯示。部分代碼如下

應用模板后地圖效果如圖1所示。

2.圖面輔助元素的個性化定制

圖面輔助元素的定制主要是指對圖名、圖例、比例尺、指北針及各種說明的位置、范圍大小及其樣式的設計,以及在圖面上如何配置。這里主要是對鼠標響應事件的設計處理,通過雙擊鼠標響應OnDoubleClick事件調用響應函數,根據鼠標雙擊處圖面輔助元素的類型調用相應的功能模塊,彈出定制向導對話框對輔助元素的樣式等信息進行定制,然后應用符號樣式。系統主要實現了圖名、圖例、比例尺、指北針的定制,說明信息和圖名可以歸為一類,即均為文本信息,各元素的位置可以通過鼠標選中相應的元素并拖動實現;范圍大小可以通過鼠標選中相應的元素并拖動其外圍矩形錨點實現;樣式的設計可以通過下面方法實現。

圖1 更換頁面模板

1)圖名及各種說明信息。判斷類型為ItextElement,主要用到的接口有:ItextElement,實現對文本元素的符號樣式和內容的設置;ItextSymbol,實現對文本元素的字體、顏色、角度、大小、對齊方式等的設置。

2)圖例。判斷類型為Ilegend,主要用到的接口有:Ilegend,地圖中的每個圖層即為圖例中的一項,接口提供了控制圖例項的屬性(Item,ItemCount)和方法(AddItem,RemoveItem);IstyleGalleryItem,符號樣式容器,每個符號都有一個唯一的ID,通過ID來獲取符號。

3)比例尺。判斷類型為IscaleBar,主要用到的接口為IscaleBar,提供了控制比例尺的顏色、單位和標注等的屬性和方法。

4)指北針。判斷類型為ImarkerNorthArrow,主要用到的接口為IMapSurroundFrame,通過該接口控制比例尺的樣式。

下面以指北針為例,雙擊指北針對指北針樣式進行更改,效果如圖2所示。

3.地圖的打印輸出

地圖通過打印設備輸出到紙張是一種常見的地圖表現形式,也是數字制圖的目的之一。地圖的圖面設計完成后,就要對地圖的內容打印輸出,打印輸出首先要設置打印機及其紙張尺寸,然后進行打印預覽。通過打印預覽就可以發現是否可以完全按照圖面設計過程中所設置的那樣打印輸出地圖,如果可以就直接打印,否則再重復上述過程。

圖2 指北針樣式

1)頁面設置。首先創建一個用于打印預覽的打印文檔PrintDocument,把頁面設置對話框中的打印機信息設置到PrintDocument的PrinterSettings屬性,把頁面設置對話框中的紙張大小、頁面方向等信息設置到PrintDocument的DefaultPageSettings屬性;其次創建EmfPrinterClass對象、PaperClass對象,初始化PaperClass對象的驅動環境等信息,把PaperClass對象賦予EmfPrinterClass的Paper屬性;最后把EmfPrinterClass對象與頁面控件進行關聯。

2)打印預覽。把打印文檔PrintDocument賦予打印預覽對話框的Document屬性,然后顯示打印預覽對話框。

3)打印。把打印文檔PrintDocument賦予打印對話框的Document屬性,然后顯示打印對話框,對當前區域地圖進行打印。

目前,眾多地圖打印輸出軟件的開發中,Esri公司的ArcGIS Engine作為一個GIS組件庫,它在實現地圖打印輸出功能中,提供了許多用于地圖打印的接口,用戶能夠很方便地利用這些接口中的屬性和方法進行打印輸出的開發,從而大大提高開發效率。

五、結束語

頁面模板的應用不僅使地圖的設計制作有章可循,便于用戶對地圖解讀,而且不必花費過多的時間去理解和掌握地圖設計中那些“不可言傳”的理論和知識,節約大量的地圖設計時間,符合地圖學“以人為本”的科學精神。更重要的是它規范了圖面輔助元素的內容與布局,統一了廣大用戶對地圖整飾的方式,簡化了地圖設計的工作量,提高了工作效率,節約了成本。同時本系統采用 ArcGIS Engine組件式二次開發,它既可以充分利用GIS工具軟件對頁面模板的制作、編輯功能,又可以利用C#可視化開發語言具有的高效、方便等編程優點,集二者之所長,不僅能大大提高應用系統的開發效率,而且使用可視化軟件開發工具開發的應用程序具有更好的外觀效果和更強大的功能。另外,由于ArcGIS Engine采用的是嵌入式組件庫,開發的應用模塊能夠方便地集成到其他開發系統中。頁面模板的使用特別是對于打印大批量具有相同地圖整飾內容的地圖具有重要的意義。

[1] 陳毓芬,江南.地圖設計原理[M].北京:解放軍出版社,2001.

[2] 劉曉平,韓江洪,張佑生,等.工程CAD中的模板運算與性質研究[J].系統仿真學報,2000,12(6): 592-599.

[3] 馮曉寧.基于模板的工程對象設計[J].工程圖學學報,2000,21(1):60-65.

[4] 吳秀芹,張洪巖,李瑞改,等.ArcGIS 9地理信息系統應用與實踐[M].北京:清華大學出版社,2007.

[5] 蔣波濤.插件式GIS應用框架的設計與實現:基于C#和ArcGIS Engine9.2[M].北京:電子工業出版社,2008.

[6] 羅雄.ArcGIS Engine開發入門介紹[J].ArcGIS中國通訊,2010,29:96-100.

Template-based Map Output Based on ArcGIS Engine

CAO Yibing,JIANG Nan,ZHANG Yi,LIU Xiaolin

0494-0911(2011)07-0060-04

P208

B

2010-08-04

測繪學院碩士學位論文創新與創優基金

曹一冰(1986—),男,河南商丘人,碩士生,主要從事GIS的研究與開發。

猜你喜歡
頁面設計
大狗熊在睡覺
刷新生活的頁面
保健醫苑(2022年1期)2022-08-30 08:39:14
瞞天過海——仿生設計萌到家
藝術啟蒙(2018年7期)2018-08-23 09:14:18
設計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設計叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
同一Word文檔 縱橫頁面并存
淺析ASP.NET頁面導航技術
設計之味
舒適廣告(2008年9期)2008-09-22 10:02:48
主站蜘蛛池模板: 91视频首页| 97se亚洲综合在线天天| 久热这里只有精品6| 国产日韩欧美在线视频免费观看 | 青青草久久伊人| 一级高清毛片免费a级高清毛片| 亚洲免费毛片| 色噜噜狠狠狠综合曰曰曰| 中文无码毛片又爽又刺激| 91成人在线免费视频| 久久久久久久97| 欧美国产日韩另类| 女同久久精品国产99国| 亚洲人成电影在线播放| 久久久久亚洲AV成人人电影软件| 香蕉精品在线| 91人人妻人人做人人爽男同| 怡春院欧美一区二区三区免费| 亚洲国产91人成在线| 国产精品一区二区在线播放| 无码国产偷倩在线播放老年人 | 日本一区二区不卡视频| 91视频青青草| 久久免费精品琪琪| 91蝌蚪视频在线观看| 亚洲精品不卡午夜精品| 欧美成人在线免费| 国产精品尤物在线| 激情六月丁香婷婷四房播| 国产成人综合网| 日本不卡在线播放| 久久国产精品麻豆系列| AV熟女乱| 女人毛片a级大学毛片免费| 99热亚洲精品6码| 中文字幕欧美日韩| 国产高清色视频免费看的网址| 91福利片| www.亚洲色图.com| 在线另类稀缺国产呦| 最新国语自产精品视频在| 国产精品久久久久久久久久98| 欧美国产三级| 亚洲欧美在线综合一区二区三区| 一级毛片高清| 国产成人艳妇AA视频在线| 久久精品国产精品青草app| 熟女成人国产精品视频| 波多野结衣一级毛片| 2019国产在线| 亚洲午夜久久久精品电影院| 萌白酱国产一区二区| 欧美精品啪啪一区二区三区| 亚洲高清中文字幕在线看不卡| 亚洲AⅤ永久无码精品毛片| 九九九九热精品视频| 国产免费怡红院视频| 91无码视频在线观看| 2021国产乱人伦在线播放| 五月激情婷婷综合| 一级毛片在线免费看| 她的性爱视频| 色国产视频| 久久鸭综合久久国产| 国产流白浆视频| 亚洲愉拍一区二区精品| 成人小视频网| 伊人久热这里只有精品视频99| 亚洲人成高清| 久久黄色免费电影| 国产拍揄自揄精品视频网站| 99久久99这里只有免费的精品| 午夜日本永久乱码免费播放片| 黄色国产在线| 国产91成人| av一区二区三区高清久久| 国产成人精品无码一区二| 亚洲精品桃花岛av在线| 久草视频福利在线观看| 四虎影视库国产精品一区| 毛片免费视频| 国产国语一级毛片在线视频|