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

        ?

        基于ArcObjects實現(xiàn)地圖的散列式注記

        2015-04-12 08:35:22倪慧珠
        關(guān)鍵詞:列式組件測繪

        倪慧珠

        (浙江省第二測繪院,浙江 杭州310012)

        目前的GIS產(chǎn)品都支持地圖注記的存儲和編輯,如注記的內(nèi)容、大小、顏色、位置、角度等。ESRI公司1981年推出了第一個商業(yè)GIS軟件ARCGIS,其中的GeoDatabase數(shù)據(jù)模型提供的注記類是面向?qū)ο蟮?,它將電子地圖或數(shù)字地圖上的地圖注記組織存儲在面向?qū)ο蟮臄?shù)據(jù)庫中進(jìn)行管理,這種面向?qū)ο蟮牡貓D注記庫可以增強(qiáng)注記的編輯特性和地圖數(shù)據(jù)復(fù)用性,并大幅提高制圖的效率,體現(xiàn)了GIS互操作技術(shù)和理念。

        基礎(chǔ)地理信息數(shù)據(jù)庫是測繪部門用來管理和更新基礎(chǔ)數(shù)據(jù)的基礎(chǔ),全國大部分測繪與地理信息局均建立了本省的基礎(chǔ)地理信息數(shù)據(jù)庫,基于庫體進(jìn)行數(shù)據(jù)更新以及基于庫體出圖是提高基礎(chǔ)數(shù)據(jù)更新效率的有效途徑[1]。而基于庫體快速出圖的前提是建立注記類,把注記類融入省級基礎(chǔ)地理信息庫,研制注記的各種表達(dá)方式及組合方式。

        本文討論如何在ArcGIS平臺下,基于省級基礎(chǔ)地理信息庫中的注記類,研制出區(qū)別于ArcGIS提供的注記操作功能,用戶可單獨(dú)對散列式注記中的某個注記進(jìn)行編輯,包括位置移動、旋轉(zhuǎn)及內(nèi)容的改變,以提高作業(yè)人員對注記的操作效率,滿足地圖對注記的各種需求。

        1 ArcObjects開發(fā)技術(shù)

        ArcObjects組件庫包括了ArcGIS的全部功能,利用AreObjects所提供的組件,不僅可以在ArcGIS桌面軟件中進(jìn)行功能定制,還可以利用多種開發(fā)語言開發(fā)出功能豐富同時滿足實際需求的GIS應(yīng)用軟件。它是目前許多GIS應(yīng)用軟件的開發(fā)平臺,ArcGIS Desktop(ArcCatalog,ArcMap)都是AO的產(chǎn)品。

        1.1 ArcObjects的開發(fā)模式

        ArcObjects必須依賴于ArcGIS Desktop桌面平臺,支持COM技術(shù)的IDE環(huán)境或語言都可用于開發(fā),如VB、VC、.NET等。利用ArcObjects進(jìn)行應(yīng)用開發(fā)主要有3種模式,分別為腳本語言VBA、包裝為自己的COM組件、開發(fā)獨(dú)立的EXE。腳本語言VBA模式是基于VBA,可以調(diào)用ArcObjects庫組件對ArcGIS Desktop進(jìn)行定制,實現(xiàn)軟件應(yīng)用功能擴(kuò)展;包裝為自己的COM組件模式是通過引用ArcObjects庫,調(diào)用ArcObjects相應(yīng)的接口,定義自己的組件(接口和功能),編寫的組件可以集成到ArcGIS環(huán)境中;開發(fā)獨(dú)立的EXE模式是在相應(yīng)的開發(fā)環(huán)境中,利用ArcObjects相關(guān)控件,新建EXE工程,編寫代碼構(gòu)造所需的應(yīng)用程序。

        1.2 ArcObjects的對象模型

        Arcobjects由1 800多個組件、幾百個具有良好文檔說明的接口和數(shù)千個方法組成[2]。Arcobjects組件庫的每一個組件中定義有不同的類,類下面定義了不同接口。AO組件通過3種不同類型的類組成:抽象類(AbstractClass)、組件類(CoClass)和普通類(Class)。抽象類為子類提供一種模板,子類通過繼承實現(xiàn)抽象類的部分或全部功能,多個子類繼承同一抽象類,其類定義的接口都可以相互調(diào)用。組件類對象可以被直接創(chuàng)建。普通類對象雖不能直接創(chuàng)建,但它可作為其他類的一個屬性或通過其他類實例化來創(chuàng)建。代碼如下:

        IPolyline pNewPline = new PolylineClass();//Polyline是組件類,可以創(chuàng)建對象

        IGeometryCollection pNewPlGeomCol =pNewPline as IGeometryCollection;

        IFeatureClass pFtCls = pFt.Class as IFeatureClass;

        2 ArcGIS中注記方式比較

        注記包括地理名稱注記、說明注記和各種數(shù)字注記等[3]。注記字列分水平字列、垂直字列、雁行字列和屈曲字列,水平字列是由左至右,各字中心的連線成一直線,且平行于南圖廓。垂直字列是由上至下,各字中心的連線成一直線,且垂直于南圖廓。雁行字列是各字中心的連線斜交于南圖廓,與被注地物走向平行,但字向垂直與南圖廓,如山脈名稱、河流名稱等,當(dāng)?shù)匚镅由旆较蚺c南圖廓成45°和45°以下傾斜時,由左至右注記;成45°以上傾斜時,由上至下注記。屈曲字列是各字字邊垂直或平行與現(xiàn)狀地物,依線狀地物的彎曲排成字列,如街道名稱注記、說明注記等[3]。

        ArcGIS軟件實現(xiàn)地圖注記一般有三種方式,包括動態(tài)標(biāo)注、地圖文件注記、GeoDatabase注記。

        1)動態(tài)標(biāo)注。動態(tài)標(biāo)注在ArcGIS軟件表現(xiàn)為標(biāo)注(Label),其根據(jù)要素類的某個屬性,自動按標(biāo)注定義的大小、顏色、位置動態(tài)標(biāo)注在圖層上,并在漫游和縮放后按照當(dāng)前地圖比例尺下的最佳位置重畫。其優(yōu)點是可實時地向用戶展現(xiàn)某一要素的屬性,其缺點是很難定制滿足圖式要求的注記,而且達(dá)到一定數(shù)據(jù)量時影響圖層的顯示效率。

        2)地圖文件注記。地圖文件注記只是通過文本的方式展現(xiàn)在圖層上,與圖層要素之間無任何關(guān)系。在ArcMap中一般作為地圖版面的圖面配置等,可用于簡單需求的地圖打印。

        3)GeoDatabase注記。ArcGIS地理數(shù)據(jù)庫中的注記存儲于注記要素類中[4-8]。與其他要素類一樣,注記要素類中的所有要素均具有地理位置和屬性,可以位于要素數(shù)據(jù)集內(nèi)或獨(dú)立的注記類內(nèi)。每個注記要素都具有符號系統(tǒng),其中包括字體、大小、顏色,每個注記文本可以被獨(dú)立操作,可獨(dú)立賦予符號。該符號包含了一些用以描述注記要素繪制方式的屬性,如字體、大小和顏色。例如,你要注記省級政府駐地,則可根據(jù)圖式要求定義該注記的文本符號以指定給該注記。因此,可以根據(jù)圖式制定符號庫,再通過注記類來編制出符號圖式要求的圖面注記。同時,每個注記要素并不需要存儲自身的符號屬性,因此,ArcGIS能夠降低存儲需求并最大限度地提高顯示和查詢性能。

        圖1 一般注記

        GeoDatabase注記以一般注記和組合注記存在,組合注記也稱為散列式注記。一般注記在Geo-Database中表現(xiàn)形式為一個主體,但一個主體中的多個文字具有相同方位或者相同間隔或者相同字體,按一定的方位進(jìn)行排列,如圖1所示;散列式注記在GeoDatabase中也表現(xiàn)為一個主體,但一個主體中的多個文字可具有不同方位不同間隔不同字體,可按制圖要求進(jìn)行定制,同時組合注記可對組合體中的每個注記進(jìn)編輯(包括移動、刪除、修改),如對“唐興大道”中的“大”進(jìn)行位置的移動,如圖2所示。

        圖2 散列式注記

        在ArcMap中提供注記的實現(xiàn)方式主要有以下幾種:Horizontal Annotation(水平注記)、Straight Annotation(垂直注記)、Curved Annotation()、Annotation that has a leader line(帶標(biāo)注線注記)、Follow Feature Annotation(隨要素注記),以上幾種注記方式只能實現(xiàn)一般注記,一般注記不能對其中的單個注記進(jìn)行位置調(diào)整及內(nèi)容修改。

        但往往在制圖過程中,注記字隔的選擇是根據(jù)地物的面積或長度的大小而定,同時,注記會從圖面美觀等方面考慮注記的避讓,如注記不能遮蓋道路交叉處、居民地出入口或其他主要地物等等。一般注記的編輯是無法滿足圖面注記的復(fù)雜標(biāo)注,這就需要提供散列式注記,用戶可單獨(dú)對散列式注記中的某個注記進(jìn)行編輯,包括位置移動、旋轉(zhuǎn)及內(nèi)容的改變。

        3 散列式注記的實現(xiàn)

        以下介紹如何利用ArcObjects二次開發(fā)實現(xiàn)散列式注記。

        1)定義散列式注記類,繼承IAnnotationConstructor接口。

        2)重載接口IAnnotationConstructor的方法,實現(xiàn)散列式注記的繪制。

        接口IAnnotationConstructor所有的方法均需重載,其主要重載的方法有:

        ①Name:定義該接口的名稱,如"平分式_正北"。

        public string Name{get{return"平分式_正北";}}

        ②Startup(IEditor pEditor):啟動 ArcMap時調(diào)用該方法,用來獲取ArcMap中當(dāng)前注記編輯接口IAnnotationEditExtension,通過該接口可以獲取當(dāng)前繪制的注記內(nèi)容、式樣。

        ③SketchGeometryType:在ArcMap工具條上點擊該功能時調(diào)用,用來告知當(dāng)前注記幾何放置方式。散列式注記需用多點的幾何類型,即sriGeometryType.esriGeometryMultipoint。

        public esriGeometryType SketchGeometry-Type

        {get{return esriGeometryType.esriGeometryPolyline;}}

        ④CreateFeedback():創(chuàng)建IRotateTextFeedback接口,用來獲取ArcMap中作業(yè)員的當(dāng)前畫筆,通過該畫筆可獲取當(dāng)前繪制注記的幾何及位置。

        ⑤StartFeedback(IPoint point):設(shè)置IRotate-TextFeedback的幾何。在該方法中需初始化散列式注記的內(nèi)容、記載每個注記內(nèi)容的序號,同時需設(shè)置feedback樣式、位置。

        ⑥get_CanFinish(IGeometry sketchGeometry):用于確定散列式注記是否繪制完成。

        ⑦BeforeStoreAnnotation(IAnnotationFeature annotationFeature,IGeometry sketchGeometry):用于設(shè)置散列式注記的角度、顏色、幾何位置等。在散列式注記全部內(nèi)容繪制完成,存入數(shù)據(jù)庫調(diào)用該方法。

        public void BeforeStoreAnnotation(IAnnotationFeature annotationFeature,IGeometry sketch-Geometry)

        //1.設(shè)置注記角度符號

        ITextSymbol textSym = textElement.Symbol;

        textSym.Angle= dAngle;textElement.Symbol=textSym;

        //2.設(shè)置注記位置

        IMultiPartTextElement pMultiTxtElem= annotationFeature.Annotation as IMultiPart-TextElement;

        pMultiTxtElem.ConvertToMultiPart(pDisplay);

        string strFcode= AnnoPubFun.curAnnCode;string txtSize="";

        for(int i=0;i< nCountTxt;i++)

        string strCurText = strAllTxt.Substring(i,1);

        ……

        pln.FromPoint = pFPnt;pln.ToPoint =pTPnt;

        pNewGeom = pln as IGeometry;//設(shè)置單個注記位置

        pMultiTxtElem.InsertPart(i,strCurText,pNewGeom);//向散列式注記中插入單個注記

        ……

        3)定制Command,如圖3所示,獲取散列式注記類,與用戶交互,如圖4所示。

        圖3 定制Command

        圖4 用戶交互編輯

        4 結(jié)束語

        基礎(chǔ)地理信息數(shù)據(jù)庫記載著基礎(chǔ)要素的幾何和屬性信息,但由于注記類占用內(nèi)存較大,基礎(chǔ)地理信息數(shù)據(jù)庫往往撇開注記類,只體現(xiàn)基礎(chǔ)要素的存儲。對基于省級基礎(chǔ)地理信息數(shù)據(jù)庫中注記類的研究,把注記類納入基礎(chǔ)庫中進(jìn)行管理,研制注記的各種表達(dá)方式及組合方式,是圖庫一體化得以實現(xiàn)的有利保障。

        本文通過對IAnnotationConstructor接口介紹及應(yīng)用,定制實現(xiàn)散列式注記,解決了復(fù)雜注記的編輯,為圖庫一體化的實現(xiàn)奠定了基礎(chǔ)。同時,可定制各種散列式注記,如平分式垂直注記、平分式任意角度注記、散列式任意角度注記等,能夠高效地滿足用戶對圖件注記的多樣化需求。

        [1] 樓燕敏,倪慧珠,彭艷,等.省級基礎(chǔ)地理信息數(shù)據(jù)庫“圖庫一體化”更新研究[C].第十三屆華東六省一市測繪學(xué)會論文:《現(xiàn)代測繪》編輯部,2011:194-196.

        [2] 白亞茹,陸鑫.基于ArcObjects組件的GIS應(yīng)用軟件開發(fā)[J].計算機(jī)工程,2009,35(14):14-15.

        [3] 中華人民共和國國家質(zhì)量監(jiān)督檢驗檢疫總局,中國國家標(biāo)準(zhǔn)化管理委員會.GB/T 20257.2/2006國家基本比例尺地形圖圖式[S].北京:測繪出版社,2006.

        [4] 馬曉玲,周夢杰,范偉.基于SVG的專題地圖與Google地圖混搭研究[J].測繪工程,2015,24(2):33-37.

        [5] 熊順,劉平芝,張衛(wèi)柱,等.矢量地圖數(shù)據(jù)轉(zhuǎn)換質(zhì)量評估研究[J].測繪工程,2014,23(6):11-15.

        [6] 王晏民,李德仁,龔健雅.多尺度GIS集中式數(shù)據(jù)模型[J].黑龍江工程學(xué)院學(xué)報:自然科學(xué)版,2001,15(1):19-22.

        [7] 程鋼,梁曉莉,張得群,等.基于地圖API的校園在線電子地圖設(shè)計與實現(xiàn)[J].測繪工程,2014,23(1):5-11.

        [8] ZEILER M.Modeling our World-The ESRI guideto geodatabase design[M].California:ESRI Press,1999:115-125.

        猜你喜歡
        列式組件測繪
        無人機(jī)智能巡檢在光伏電站組件診斷中的應(yīng)用
        能源工程(2022年2期)2022-05-23 13:51:50
        新型碎邊剪刀盤組件
        U盾外殼組件注塑模具設(shè)計
        浙江省第一測繪院
        工程測繪中GNSS測繪技術(shù)的應(yīng)用
        準(zhǔn)確審題正確列式精確驗證
        教師·下(2017年10期)2017-12-10 12:35:13
        04 無人機(jī)測繪應(yīng)用創(chuàng)新受青睞
        無人機(jī)在地形測繪中的應(yīng)用
        電子制作(2017年9期)2017-04-17 03:01:00
        每筐多裝多少
        風(fēng)起新一代光伏組件膜層:SSG納米自清潔膜層
        太陽能(2015年11期)2015-04-10 12:53:04
        av网页免费在线观看| 自拍视频在线观看国产| 亚洲精品国产成人久久av盗摄| 五月天中文字幕日韩在线| 国产一精品一av一免费 | 欧美国产精品久久久乱码| 午夜毛片午夜女人喷潮视频| 国产三级国产精品国产专区 | 亚洲人成自拍网站在线观看| 自拍偷自拍亚洲精品情侣| 中字无码av电影在线观看网站| 一本大道综合久久丝袜精品| 精品国产三级a在线观看不卡| 一本色道无码道dvd在线观看| 亚洲男人的天堂网站| 老熟妇高潮av一区二区三区啪啪 | 高清在线有码日韩中文字幕| 一本一道人人妻人人妻αv| 人人妻人人澡av天堂香蕉| 中文字幕高清无码不卡在线| 日韩av免费一区二区| 亚洲婷婷五月综合狠狠爱| 亚洲天堂99| 日本久久精品国产精品| 黄色av一区二区在线观看 | 亚洲va久久久噜噜噜久久天堂| 内射无码专区久久亚洲| 精品无吗国产一区二区三区av| 成人国产av精品麻豆网址| 含紧一点h边做边走动免费视频 | 国产精品又爽又粗又猛又黄| 国产精品国产精品国产专区不卡| 成人免费视频在线观看| 国产女主播强伦视频网站| 亚洲综合自拍偷拍一区| 亚洲熟女乱色综合亚洲av| а中文在线天堂| 国产在线精品亚洲视频在线| 亚洲精品粉嫩美女一区| 精品久久久久久久久久中文字幕| 四虎影视国产884a精品亚洲|