亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

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

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

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

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

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

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

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

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

        一、引 言

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

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

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

        1)基礎(chǔ)模板(normal template)。ArcMap使用基礎(chǔ)模板存儲默認的用戶界面信息,例如所有Arc-Map工具條的可見性、??课恢谩⑵顟B(tài)。這些信息自動記錄在基礎(chǔ)模板中,不管有無保存打開的地圖,當(dāng)啟動ArcMap軟件時,工具條的位置保持上次退出系統(tǒng)前的狀態(tài)。

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

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

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

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

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

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

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

        三、頁面模板的準備

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

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

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

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

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

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

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

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

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

        圖1 更換頁面模板

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

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

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

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

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

        3.地圖的打印輸出

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

        圖2 指北針樣式

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

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

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

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

        五、結(jié)束語

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

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

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

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

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

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

        [6] 羅雄.ArcGIS Engine開發(fā)入門介紹[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

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

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

        猜你喜歡
        圖面圖例預(yù)覽
        圖線、箭頭的含義和圖例
        新品預(yù)覽
        帶狀地形圖斷面數(shù)據(jù)采集的程序化實現(xiàn)
        找拼圖
        基于生產(chǎn)實踐若干需求完善大比例尺地形圖圖面表達方式的探討
        犬狗的畫法(六)
        老年教育(2018年6期)2018-07-06 08:03:18
        如何讓學(xué)生巧用圖例解決數(shù)學(xué)問題
        專題地圖圖面要素自動配置方法的研究
        測繪工程(2017年10期)2017-08-31 14:32:01
        11月在拍電視劇預(yù)覽表
        電視指南(2016年11期)2016-12-20 22:09:38
        bauma China 2014展前預(yù)覽
        宅男66lu国产在线观看| 国产精品成人无码a 无码| 亚洲综合一区二区三区蜜臀av| 国产一区二区三区18p| 一区二区三区最新中文字幕| 国产a国产片国产| 欧美巨大xxxx做受l| 久久dvd| 国产视频免费一区二区| 丝袜美腿福利一区二区| 亚洲精品色婷婷在线影院| 亚洲欧美日韩精品久久亚洲区| 日本高清不在线一区二区色| 国产精品高清一区二区三区人妖| 亚洲国产精品中文字幕久久| 国产v片在线播放免费无码| 人妻少妇精品中文字幕av蜜桃| 性一交一乱一伦一视频一二三区| 日韩精品av在线一区二区| 中文字幕亚洲精品在线| 国产av夜夜欢一区二区三区| 日本又黄又爽gif动态图| 亚洲欧美日韩精品香蕉| 日本一区二区三区一级片| 日本精品一区二区三区二人码| 人妻久久久一区二区三区| XXXXBBBB欧美| 精品人妻一区二区三区蜜臀在线| 人妻夜夜爽天天爽三区麻豆av| 色婷婷综合久久久中文字幕| 日本精品人妻无码77777| 精品的一区二区三区| 小黄片免费在线播放观看| 曰韩无码av一区二区免费| 免费无码一区二区三区蜜桃大| 99热国产在线| 国内精品少妇久久精品| 日韩欧美一区二区三区免费观看| 国产成人无码免费视频在线| 久热香蕉av在线爽青青| 中文字幕一区二区在线看|