• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

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

      2011-11-15 03:22:30曹一冰劉小林
      測(cè)繪通報(bào) 2011年7期
      關(guān)鍵詞:圖面圖例預(yù)覽

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

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

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

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

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

      地圖的模板化輸出就是利用模板技術(shù)思想將制圖專家的地圖設(shè)計(jì)知識(shí)和實(shí)踐經(jīng)驗(yàn)?zāi)0寤?、可視化,?duì)于實(shí)現(xiàn)地圖設(shè)計(jì)知識(shí)和實(shí)踐經(jīng)驗(yàn)的傳輸與共享,提高地圖制圖的效率具有重要的理論研究意義和實(shí)際應(yīng)用價(jià)值。介紹ArcGIS制圖中3種不同的模板技術(shù),分析在.NET平臺(tái)下采用C#語(yǔ)言基于ArcGIS Engine組件實(shí)現(xiàn)地圖模板化輸出的原理方法以及關(guān)鍵技術(shù),實(shí)現(xiàn)頁(yè)面模板的轉(zhuǎn)換、圖面輔助元素的個(gè)性化定制及地圖的打印輸出。

      模板;基礎(chǔ)模板;地圖模板;頁(yè)面模板;ArcGIS Engine;圖面輔助元素

      一、引 言

      地圖的圖面設(shè)計(jì),一般來(lái)說(shuō)屬于地圖內(nèi)容要素以外的設(shè)計(jì)工作,但它又與地圖內(nèi)容的基本要素有著密切的聯(lián)系,兩者互為補(bǔ)充,不能分割。圖面設(shè)計(jì)不僅在于美化地圖,提高地圖的藝術(shù)水平,更重要的還在于通過(guò)圖面設(shè)計(jì),可進(jìn)一步體現(xiàn)地圖的設(shè)計(jì)風(fēng)格,便于地圖的閱讀和使用[1]。

      世界上的事物具有相似性,“模板”就是基于這個(gè)原理而產(chǎn)生的。其基本思想是從一組相似的事物中抽象出一種框架型的模式,任何一個(gè)類似的事物都可以作為以模板為超類派生類型的實(shí)例[2]。模板是面向用戶的工具,其實(shí)質(zhì)就是一種規(guī)范,是定義某一類事物的標(biāo)準(zhǔn)。這一類事物依據(jù)相應(yīng)標(biāo)準(zhǔn)產(chǎn)生、變化并具有一定的約束性[3]。

      ArcGIS是美國(guó)環(huán)境系統(tǒng)研究所(Environment System Research Institute,Esri)在全面整合了GIS與數(shù)據(jù)庫(kù)、軟件工程、人工智能、網(wǎng)絡(luò)技術(shù)及其他多方面的計(jì)算機(jī)主流技術(shù)之后,成功推出的代表GIS最高技術(shù)水平的全系列GIS產(chǎn)品。ArcGIS是一個(gè)全面的、可伸縮的GIS平臺(tái),可為用戶構(gòu)建一個(gè)完善的GIS系統(tǒng),提供完整的解決方案[4]。為了提高制圖效率,實(shí)現(xiàn)ArcMap界面的個(gè)性化定制、地圖或圖層的重復(fù)利用、頁(yè)面視圖的標(biāo)準(zhǔn)化,ArcGIS提供了3種不同的模板技術(shù)。

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

      2)地圖模板(map templates)。地圖模板不是需要特殊開發(fā)工具的應(yīng)用程序或擴(kuò)展軟件,它是制圖專家制作出來(lái)的具有專業(yè)水準(zhǔn)的地圖用例,包括地圖文件、用例數(shù)據(jù)、文檔和其他資源。它提供了制作地圖的框架,實(shí)現(xiàn)了地圖圖層、符號(hào)文件等的復(fù)用,不論是初級(jí)用戶還是專業(yè)用戶都可以利用地圖模板學(xué)習(xí)制圖知識(shí)和經(jīng)驗(yàn),方便高效地制作出具有專家水平的地圖作品。

      3)頁(yè)面模板(template map documents)。頁(yè)面模板是一種后綴以mxt結(jié)尾的模板文件,它實(shí)現(xiàn)了地圖圖面設(shè)計(jì)的標(biāo)準(zhǔn)化,簡(jiǎn)化了地圖內(nèi)容要素以外的設(shè)計(jì)工作。當(dāng)更換頁(yè)面模板時(shí)只有模板中包含的圖外要素應(yīng)用到當(dāng)前地圖中,原始地圖的圖外要素將被刪除(如原始地圖中包含圖例信息,而使用的頁(yè)面模板不包含時(shí),最后的地圖將不包含圖例),模板中的圖層數(shù)據(jù)不會(huì)添加到當(dāng)前地圖中。然而,當(dāng)使用頁(yè)面模板創(chuàng)建一幅新地圖時(shí),模板中的圖層數(shù)據(jù)將被添加到地圖中。

      本文在分析ArcGIS所采用的3種不同的模板技術(shù)的基礎(chǔ)上,針對(duì)地圖圖面設(shè)計(jì)的主要內(nèi)容研究了基于ArcGIS Engine的頁(yè)面模板的應(yīng)用及轉(zhuǎn)換、圖面輔助元素的個(gè)性化定制、地圖的打印輸出。實(shí)現(xiàn)了頁(yè)面視圖的快速定制、個(gè)性化轉(zhuǎn)換及打印輸出,提高了地圖輸出的效率,具有很強(qiáng)的實(shí)用價(jià)值。

      二、開發(fā)環(huán)境

      在開發(fā)平臺(tái)的選擇上主要從系統(tǒng)的需求以及系統(tǒng)的穩(wěn)定性、易維護(hù)性和可擴(kuò)展性的角度來(lái)考慮,運(yùn)用微軟.NET框架結(jié)合ArcGIS Engine 9.3實(shí)現(xiàn)系統(tǒng)的主要功能。

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

      C#是可用于創(chuàng)建運(yùn)行在 .NET CLR上的應(yīng)用程序的語(yǔ)言之一,它從C和C++語(yǔ)言演化而來(lái),是微軟公司專門為用戶使用.NET平臺(tái)而創(chuàng)建的。C#基于IT工業(yè)標(biāo)準(zhǔn),采用了可視化編程技術(shù),開發(fā)簡(jiǎn)單、功能強(qiáng)大、類型安全,而且是完全面向?qū)ο蟮恼Z(yǔ)言。利用C#的特性可以實(shí)現(xiàn)應(yīng)用程序的快速開發(fā),減少開發(fā)周期。

      三、頁(yè)面模板的準(zhǔn)備

      頁(yè)面模板的準(zhǔn)備過(guò)程就是進(jìn)行地圖圖面設(shè)計(jì)的過(guò)程,主要包括兩個(gè)方面的內(nèi)容:① 地圖的主區(qū)構(gòu)圖,地圖主區(qū)的輪廓圖形怎樣在圖面上擺放,才算是與幅面協(xié)調(diào)、符合美學(xué)觀點(diǎn);②圖廓內(nèi)外諸輔助要素,如圖名、圖廓、圖例、附圖、比例尺及各種說(shuō)明的位置、范圍大小及其形式的設(shè)計(jì),以及在圖面上如何配置,才能達(dá)到明顯、美觀和便于閱讀的目的。

      ArcGIS安裝完成后,在系統(tǒng)安裝目錄(in Templates)下面,ArcGIS已經(jīng)提供了很多頁(yè)面模板,可以使用現(xiàn)有的頁(yè)面模板或?qū)ΜF(xiàn)有頁(yè)面模板進(jìn)行更改調(diào)整或者用戶創(chuàng)建自己的模板實(shí)現(xiàn)頁(yè)面模板的轉(zhuǎn)換和地圖的模板化輸出,減少了很多常規(guī)的設(shè)置。本系統(tǒng)用戶可以選擇模板文件夾,因此用戶自定義的模板文件可以放在系統(tǒng)模板文件夾下,也可以放在自定義的文件夾下,然后用戶可以選擇并預(yù)覽該文件夾下的模板文件,選擇合適的模板進(jìn)行應(yīng)用。

      四、基于ArcGIS Engine的地圖模板化輸出的具體實(shí)現(xiàn)

      實(shí)現(xiàn)地圖的模板化輸出重點(diǎn)在于研究模板的元素構(gòu)成及模板的轉(zhuǎn)換、圖面輔助元素的定制、地圖打印輸出。為實(shí)現(xiàn)這些研究?jī)?nèi)容,需要作一些技術(shù)設(shè)計(jì),并深入分析其在實(shí)現(xiàn)過(guò)程中遇到的問(wèn)題和解決它們的關(guān)鍵技術(shù)方法。

      1.頁(yè)面模板的應(yīng)用及轉(zhuǎn)換

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

      應(yīng)用模板后地圖效果如圖1所示。

      2.圖面輔助元素的個(gè)性化定制

      圖面輔助元素的定制主要是指對(duì)圖名、圖例、比例尺、指北針及各種說(shuō)明的位置、范圍大小及其樣式的設(shè)計(jì),以及在圖面上如何配置。這里主要是對(duì)鼠標(biāo)響應(yīng)事件的設(shè)計(jì)處理,通過(guò)雙擊鼠標(biāo)響應(yīng)OnDoubleClick事件調(diào)用響應(yīng)函數(shù),根據(jù)鼠標(biāo)雙擊處圖面輔助元素的類型調(diào)用相應(yīng)的功能模塊,彈出定制向?qū)?duì)話框?qū)o助元素的樣式等信息進(jìn)行定制,然后應(yīng)用符號(hào)樣式。系統(tǒng)主要實(shí)現(xiàn)了圖名、圖例、比例尺、指北針的定制,說(shuō)明信息和圖名可以歸為一類,即均為文本信息,各元素的位置可以通過(guò)鼠標(biāo)選中相應(yīng)的元素并拖動(dòng)實(shí)現(xiàn);范圍大小可以通過(guò)鼠標(biāo)選中相應(yīng)的元素并拖動(dòng)其外圍矩形錨點(diǎn)實(shí)現(xiàn);樣式的設(shè)計(jì)可以通過(guò)下面方法實(shí)現(xiàn)。

      圖1 更換頁(yè)面模板

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

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

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

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

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

      3.地圖的打印輸出

      地圖通過(guò)打印設(shè)備輸出到紙張是一種常見的地圖表現(xiàn)形式,也是數(shù)字制圖的目的之一。地圖的圖面設(shè)計(jì)完成后,就要對(duì)地圖的內(nèi)容打印輸出,打印輸出首先要設(shè)置打印機(jī)及其紙張尺寸,然后進(jìn)行打印預(yù)覽。通過(guò)打印預(yù)覽就可以發(fā)現(xiàn)是否可以完全按照?qǐng)D面設(shè)計(jì)過(guò)程中所設(shè)置的那樣打印輸出地圖,如果可以就直接打印,否則再重復(fù)上述過(guò)程。

      圖2 指北針樣式

      1)頁(yè)面設(shè)置。首先創(chuàng)建一個(gè)用于打印預(yù)覽的打印文檔PrintDocument,把頁(yè)面設(shè)置對(duì)話框中的打印機(jī)信息設(shè)置到PrintDocument的PrinterSettings屬性,把頁(yè)面設(shè)置對(duì)話框中的紙張大小、頁(yè)面方向等信息設(shè)置到PrintDocument的DefaultPageSettings屬性;其次創(chuàng)建EmfPrinterClass對(duì)象、PaperClass對(duì)象,初始化PaperClass對(duì)象的驅(qū)動(dòng)環(huán)境等信息,把PaperClass對(duì)象賦予EmfPrinterClass的Paper屬性;最后把EmfPrinterClass對(duì)象與頁(yè)面控件進(jìn)行關(guān)聯(lián)。

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

      3)打印。把打印文檔PrintDocument賦予打印對(duì)話框的Document屬性,然后顯示打印對(duì)話框,對(duì)當(dāng)前區(qū)域地圖進(jìn)行打印。

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

      五、結(jié)束語(yǔ)

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

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

      [2] 劉曉平,韓江洪,張佑生,等.工程CAD中的模板運(yùn)算與性質(zhì)研究[J].系統(tǒng)仿真學(xué)報(bào),2000,12(6): 592-599.

      [3] 馮曉寧.基于模板的工程對(duì)象設(shè)計(jì)[J].工程圖學(xué)學(xué)報(bào),2000,21(1):60-65.

      [4] 吳秀芹,張洪巖,李瑞改,等.ArcGIS 9地理信息系統(tǒng)應(yīng)用與實(shí)踐[M].北京:清華大學(xué)出版社,2007.

      [5] 蔣波濤.插件式GIS應(yīng)用框架的設(shè)計(jì)與實(shí)現(xiàn):基于C#和ArcGIS Engine9.2[M].北京:電子工業(yè)出版社,2008.

      [6] 羅雄.ArcGIS Engine開發(fā)入門介紹[J].ArcGIS中國(guó)通訊,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

      測(cè)繪學(xué)院碩士學(xué)位論文創(chuàng)新與創(chuàng)優(yōu)基金

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

      猜你喜歡
      圖面圖例預(yù)覽
      圖線、箭頭的含義和圖例
      新品預(yù)覽
      帶狀地形圖斷面數(shù)據(jù)采集的程序化實(shí)現(xiàn)
      找拼圖
      基于生產(chǎn)實(shí)踐若干需求完善大比例尺地形圖圖面表達(dá)方式的探討
      犬狗的畫法(六)
      老年教育(2018年6期)2018-07-06 08:03:18
      如何讓學(xué)生巧用圖例解決數(shù)學(xué)問(wèn)題
      專題地圖圖面要素自動(dòng)配置方法的研究
      11月在拍電視劇預(yù)覽表
      電視指南(2016年11期)2016-12-20 22:09:38
      bauma China 2014展前預(yù)覽
      呼和浩特市| 延边| 江安县| 通河县| 宁都县| 仲巴县| 乳源| 琼结县| 涡阳县| 衡阳县| 平乐县| 清镇市| 达日县| 库尔勒市| 青海省| 务川| 沙雅县| 古浪县| 和田县| 通江县| 丹寨县| 南丹县| 寿光市| 苍山县| 苏州市| 黑山县| 买车| 云龙县| 望谟县| 永州市| 高淳县| 榆林市| 民县| 满洲里市| 米泉市| 梅州市| 乌拉特前旗| 丰顺县| 临沧市| 佳木斯市| 竹北市|