王本林,陳泰生,陳夢琳
地圖符號是地圖的圖解語言,它將地理對象進行抽象表達,反映地理實體的空間分布關(guān)系。隨著地理信息科學(xué)技術(shù)的飛速發(fā)展,地理信息平臺呈現(xiàn)了多樣化發(fā)展態(tài)勢,隨之出現(xiàn)了地理數(shù)據(jù)與地圖符號的同源異構(gòu)現(xiàn)象,嚴(yán)重阻礙了地理信息科學(xué)的發(fā)展,在這種形勢下,地圖信息共享思想因此應(yīng)運而生,地圖符號共享正式被廣大GIS學(xué)者所重視,針對這種異構(gòu)平臺下的地圖符號,主要集中在以下三個方面:一是平臺間的地圖符號共享研究,陳泰生等利用分析了CAD點狀符號與TrueType字體符號模型,實現(xiàn)了CAD點狀符號與TrueType字體的雙向共享[1],駱琪基于ArcGIS和CAD平臺,實現(xiàn)了ArcGIS到CAD平臺間的地圖符號共享,并設(shè)計了地圖符號渲染模式[2];二是通用的地圖符號模型研究,李青元建立了GIS 符號庫數(shù)據(jù)模型并給出了GIS 符號庫數(shù)據(jù)交換格式[3],陳泰生等針對不同GIS平臺,提出了基于PB符號模型共享方案,實現(xiàn)了從Super Map到ArcGIS平臺的點狀地圖符號共享[4];三是地圖符號共享渲染與表達,尹章才設(shè)計了基于XSLT的圖示表達規(guī)則與地理數(shù)據(jù)庫驅(qū)動的地圖表達機制[5],吳小芳探討了符號智能配置過程中常用繪制算法并研究了符號配置中可能出現(xiàn)的沖突問題[6]。
綜上所述,GIS行業(yè)內(nèi)的專家、學(xué)者們針對ArcGIS、Super Map、CAD等平臺展開了深入的研究和探討,然而針對MapGIS平臺的地圖符號共享研究卻相對較少,本文以點狀地圖符號為切入點,深入研究MapGIS地圖符號數(shù)據(jù)結(jié)構(gòu)與符號模型,豐富了地圖符號多平臺共享內(nèi)容,能夠為相關(guān)學(xué)者和專家提供技術(shù)依據(jù)。
MapGIS平臺支持對地圖符號的設(shè)計與存儲,一個完整的MapGIS地圖符號庫由顏色庫、字體庫和符號庫構(gòu)成,地圖符號以文件組織形式存儲于安裝目錄下../MapGIS K9/Slib文件夾中,MapGIS地圖符號庫可以通過符號管理器打開,對符號庫中的地圖符號進行編輯更新,如圖1所示。對于MapGIS地圖符號庫的訪問,可以通過MAPOBJECT組建進行訪問,亦可以通過將地圖符號庫導(dǎo)出以XML格式文件進行訪問。
圖1 MapGIS地圖符號庫管理界面
MapGIS點狀符號可分為柵格符號、矢量符號和字體符號(注記)三類;柵格符號即為圖片符號,支持BMP格式的圖片;字體符號一般作為注記使用,標(biāo)示字體的類型、字符內(nèi)容以及顏色、筆畫等基本信息;MapGIS矢量地圖符號則由基本圖元組合而成。在實際應(yīng)用中,以矢量符號應(yīng)用最為廣泛,也最為復(fù)雜,不同圖元的隨機組合,可構(gòu)造成為不同符號。因此,本文將從MapGIS點狀矢量地圖符號的構(gòu)圖模式為切入點, 研究其基本構(gòu)圖模式。
MapGIS矢量地圖符號的基本單元是基本圖元,包括了折線、光滑曲線、圓心半徑弧、三點弧、矩形、平行四邊形、圓心半徑圓、三點內(nèi)切圓、三點外接圓、橢圓、正交線、正交矩形、用點連線等,如圖2所示。
圖2 MapGIS矢量地圖符號基本圖元
一個MapGIS點狀地圖符號包含了一個或多個符號圖元,圖元在1mm*1mm的正方形范圍內(nèi),通過疊加、組合的方式構(gòu)成,每一個圖元可通過一個或多個基本圖元組合而成,這些圖元的空間位置及其關(guān)系構(gòu)成了點狀符號的基本幾何信息;點狀地圖符號通過圖元編號、圖元類型、符號名稱、定位點描述其元數(shù)據(jù)信息;顏色庫描述了圖元輪廓和填充顏色。
1)圖元幾何模型
圖元幾何信息通過圖元基本點按照構(gòu)圖方式進行組織。光滑曲線由起點、若干控制點及終點構(gòu)成;折線由若干個短點構(gòu)成;正交線由若干定點構(gòu)成,與折線不同的是,正交線的相鄰線段夾角總是90度;橢圓是由圓心、長半徑、短半徑規(guī)定其幾何形狀、圓心半徑弧是由圓心、半徑、圓弧起點、終點以及其夾角構(gòu)成的弧段構(gòu)成;給定的不在一條直線上的三個點,由這三個點構(gòu)成三角形,其內(nèi)切圓即為三點外切圓;三點外接圓與三點內(nèi)切元幾何信息類似,是任意給定三角形定點的外切圓;三點弧是給定空間內(nèi)任意三個共圓的點所在的圓弧弧段;圓心半徑圓通過圓心和半徑來確定,矩形則是由兩個對角的點確定,平行四邊形根據(jù)一條邊上的2個頂點及與該邊相鄰邊的另一定點構(gòu)成;正交矩形則是頂點為直角的矩形。
表1基本圖元幾何模型
MapGIS中的這些基本圖元的幾何信息均由基本點及各個圖元構(gòu)圖規(guī)則確定,在進行點狀地圖符號構(gòu)圖時,需要針對每一個圖元設(shè)定一個中心點,以保證圖元在組合時相互關(guān)聯(lián)關(guān)系。
2)顏色庫
顏色庫主要針對線圖元的輪廓顏色、面圖元(區(qū)域)的顏色填充而言,MapGIS中的顏色庫主要采用CMYK和RGB兩種顏色體系,在符號顏色色標(biāo)編輯器中,可以對CMYK按照比重自定義顏色,或者根據(jù)RGB三原色的值定義顏色。在MapGIS顏色庫中,提供了1600種顏色,其中黑(K100,C0,M0,Y0和K0,C100,M100,Y100)、白、品紅、黃、青、紅、綠、藍這9種顏色不支持編輯外,其余均可以根據(jù)實際需求進行自定義顏色,對這1600種顏色枚舉采取編號的方式存儲于顏色庫中。在設(shè)置圖元基本屬性時,直接根據(jù)自定義的顏色所對應(yīng)的編號,選擇對應(yīng)的顏色。
MapGIS點狀符號由符號元數(shù)據(jù)、圖元項組成,符號元數(shù)據(jù)定義了該點狀地圖符號的類型、裁剪標(biāo)志、符號編號、符號長度、圖元項個數(shù)、符號中心定位點、符號名稱等信息;圖元項則是由若干圖元構(gòu)成的圖元數(shù)組,每一個圖元又由圖元元數(shù)據(jù)和幾何信息構(gòu)成,圖元元數(shù)據(jù)主要包括圖元類型、輪廓筆、外部顏色、填充顏色,圖元類型是12類基本圖元的編碼,輪廓筆則定義了當(dāng)前圖元的輪廓樣式,包括簡單線、虛實線、點劃線等,內(nèi)部顏色則針對于封閉的面狀圖元而言,描述其內(nèi)部的填充顏色;幾何信息由圖元基本點的X,Y值和圖元點坐標(biāo)的序列,如圖2所示:
圖3 MapGIS點狀符號模型結(jié)構(gòu)
OMS是在PB+地圖符號模型基礎(chǔ)上加以改進的一種地圖符號模型,它是依據(jù)圖形領(lǐng)域的PostScript成像模型原理并結(jié)合地圖分層思想構(gòu)建而成,OMS點狀地圖符號由基本符號圖層構(gòu)成,主要包括了字體點圖層、紋理點圖層(柵格)和路徑點圖層三種類型,字體點圖層主要針對于字體類點狀符號進行存儲,紋理點圖層針對圖片點符號進行存儲,路徑點圖層則是針對所有矢量化的點狀符號構(gòu)建,本研究針對MapGIS的圖元類矢量符號,著重研究OMS點狀符號的路徑符號圖層的基本結(jié)構(gòu)
OMS點狀地圖符號的點字體符號是基于TrueType字體法,將字體作為一個點狀符號,通過字體名稱、編碼、顏色、樣式等描述該種符號的基本樣式,該種方式可以較好地支持MapGIS的字體符號;針對柵格地圖符號,OMS采用紋理符號圖層,存儲圖片的子圖基本信息,如圖4所示:
圖4 OMS點狀符號模型
路徑符號圖層用路徑、筆畫和填充描述點狀矢量地圖符號,路徑表達了點狀地圖符號的幾何信息,包括了直線、貝塞爾曲線、圓、橢圓、矩形、圓角矩形、B樣條線、星形等基本幾何單元;筆畫表達了點狀符號路徑的輪廓樣式,包括了簡單筆畫(純色)、紋理筆畫、漸變色筆畫三類;填充描述點狀符號封閉路徑的填充樣式,包括了簡單填充(純色填充)、陰影填充、紋理填充、漸變填充、點填充和線填充。
1)兩種地圖符號模型對比
從地圖符號結(jié)構(gòu)上看,MapGIS點狀地圖符號通過圖元方式組織,圖元由基本子圖元疊加構(gòu)成,是典型的圖元類地圖符號;OMS點狀地圖符號采用了面向符號圖層的組織模式,兼容了TrueType字體法、PB路徑法的優(yōu)點,具備了較好的兼容性。
從地圖符號幾何模型上看,MapGIS點狀地圖符號的基本圖元主要包括折線、曲線、空心圓、實心圓、橢圓、矩形、多邊形;OMS點狀地圖符號中的路徑圖層即包括了直線路徑、貝塞爾曲線路徑、B樣條曲線路徑、三角形、圓、橢圓、圓弧、矩形、圓角矩形、扇形、星型等路徑,囊括了MapGIS點狀地圖符號的基本圖元。
從地圖符號屬性模型上看,MapGIS點狀符號對圖元的輪廓和填充主要通過子圖元編號和顏色庫描述,所有子圖在圖符號中唯一標(biāo)識,圖元填充色由符號庫中符號編碼描述;OMS點狀地圖符號的路徑圖層將屬性信息描述為筆畫和填充,用于修飾符號路徑的樣式。
2)MapGIS點狀地圖符號映射
通過MapGIS與OMS符號結(jié)構(gòu)對比,MapGIS點狀符號的映射實質(zhì)上即是圖元類地圖符號向基于路徑的PB地圖符號的映射,可幾何模型和符號屬性這兩個方面進行映射。MapGIS點狀符號圖元按照其數(shù)據(jù)組織可以劃分為有折線、曲線、圓、圓弧、矩形五類圖元,圖元屬性包括了筆畫和顏色。
折線:折線是MapGIS最常用的基本圖元,由多段首尾相連的線段構(gòu)成,利用起點和終點描述線段幾何信息。在OMS符號中,存在與之對應(yīng)的直線路徑,可以將折線映射為MoveTo和LineTo指令。
曲線:MapGIS曲線不是傳統(tǒng)意義上的B樣條曲線或貝塞爾曲線,在圖形繪制是呈現(xiàn)曲線樣式,但實際數(shù)據(jù)模型中則是以連續(xù)的線段構(gòu)成,因此,可以映射為OMS中的直線路徑,將每一個線段存儲到一個直線路徑中。
空心圓和實心圓:兩者均屬于圓,由圓心坐標(biāo)點和半徑確定,空心圓無填充,實心圓為純色填充,可映射為OMS符號中的圓路徑,通過路徑圖層的填充樣式描述實心圓。
圓?。簣A弧由圓心,半徑,圓周上起始點確定,或起點及掃過的角度來確定,因此可以直接映射為OMS符號中的圓弧。其映射關(guān)系如圖5所示:
圖5 MapGIS點狀符號模型結(jié)構(gòu)映射圖
實驗以MapGIS自帶符號庫和地質(zhì)符號庫為符號實驗數(shù)據(jù),在C++設(shè)計一套面向CAD點狀符號數(shù)據(jù)存儲結(jié)構(gòu),用于存儲圖元基本信息,基于地圖符號共享平臺實現(xiàn)了從CAD點狀符號模型向OMS點狀地圖符號共享。
針對MapGIS點狀符號結(jié)構(gòu),抽取了MapGIS自帶符號庫中全部矢量點符號,轉(zhuǎn)換為XML格式文件,該文件即為MapGIS點狀地圖符號庫,符號庫根節(jié)點為SymbolLib節(jié)點,根節(jié)點下包含了SymbolLibHead和Symbol兩類子節(jié)點,其中SymbolLibHead描述了符號庫的名稱、符號數(shù)、標(biāo)識碼等基本屬性信息,Symbol為具體的點狀地圖符號節(jié)點。
Symbol節(jié)點即為本文研究的MapGIS點狀地圖符號,一個MapGIS點狀符號的Sybol節(jié)點通常由一個SymbolHead節(jié)點和若干個SymbolItem節(jié)點構(gòu)成。SybolHead節(jié)點為MapGIS點狀地圖符號頭信息,存儲了符號名稱、符號中心點、包含圖元數(shù)等屬性信息;SymbolItem節(jié)點為圖元節(jié)點,用于存儲MapGIS點狀地圖符號圖元信息,包括了圖元類別、圖元輪廓、圖元數(shù)目、填充以及圖元幾何信息,其存儲結(jié)構(gòu)如圖6所示:
圖6 MapGIS點狀地圖符號存儲結(jié)構(gòu)
在XML結(jié)構(gòu)基礎(chǔ)上設(shè)計了Symbol類、SymbolHead類、SymbolItem類、Geometry類等基本點狀地圖符號信息存儲結(jié)構(gòu)類,在進行符號信息讀取與解析時,由下而上地構(gòu)建地圖符號存儲類,最終完成對MapGIS點狀地圖符號的存儲。
MapGIS向OMS地圖符號共享實驗基于MapGIS地圖符號存儲結(jié)構(gòu),采用C++語言構(gòu)建地圖符號屬性與幾何信息的映射模型,構(gòu)建了SymbolShare工廠,模型輸入為XML存儲結(jié)構(gòu),輸出為LS格式的OMS地圖符號文件,設(shè)計了MapGIS向OMS點狀地圖符號共享工具,如圖7所示:
圖7 MapGIS地圖符號共享工具
以MapGIS點狀地圖符號的默認(rèn)點符號庫和為區(qū)域地質(zhì)圖圖例點狀地圖符號庫為實驗數(shù)據(jù),其中MapGIS默認(rèn)點符號庫共計513個矢量點狀地圖符號,區(qū)域地質(zhì)圖圖例點狀地圖符號1152個矢量地圖符號,如圖8和圖10所示。針對上述兩類MapGIS點狀地圖符號數(shù)據(jù),采用符號圖元映射方法映射至OMS地圖符號結(jié)構(gòu)中,輸出結(jié)果如圖9和圖11:
圖8 MapGIS默認(rèn)地圖符號數(shù)據(jù)
圖9 默認(rèn)符號共享結(jié)果
圖10 區(qū)域地質(zhì)圖符號數(shù)據(jù)
圖11 區(qū)域地質(zhì)圖符號共享結(jié)果
為進一步驗證MapGIS點狀地圖符號向OMS地圖符號模型映射的可行性與實用性,設(shè)計了OMS地圖符號渲染實驗,檢驗實驗共享結(jié)果正確性。采用ArcGIS桌面軟件作為渲染平臺,選取ArcObejcets嵌入工具,將轉(zhuǎn)換后的OMS點狀地圖符號加載到ArcMap中,對離散點進行渲染,選用轉(zhuǎn)換后的礦井點狀符號和某種有色金屬點狀地圖符號為驗證,在ArcGIS中渲染結(jié)果如圖12所示,上述兩類地圖符號能夠在ArcMap軟件中完成點符號渲染。實驗結(jié)果表明MapGIS點狀地圖符號能夠通過該種共享方式正確繪制到ArcGIS平臺中。
圖12 共享后的點狀地圖符號在ArcGIS平臺中渲染效果
論文以MapGIS平臺的點狀地圖符號為研究對象,分析了MapGIS點狀地圖符號的符號庫結(jié)構(gòu)、構(gòu)圖模式以及符號模型;引入了OMS通用地圖符號,研究了MapGIS和OMS兩種不同結(jié)構(gòu)的地圖符號結(jié)構(gòu),針對MapGIS地圖圖元,提出了圖元到路徑的映射模型;設(shè)計了MapGIS到OMS地圖符號轉(zhuǎn)換實驗,驗證了該種模式方式的正確性,能夠解決MapGIS這種圖元類地圖符號到OMS地圖符號的共享。
[參 考 文 獻]
[1] 陳泰生,閭國年,吳明光,等.CAD點狀符號與TrueType符號模型對比、轉(zhuǎn)換與分析[J].中國圖像圖形學(xué)報,2011,16(11):2067-2073.
[2] 駱琪.CAD與GIS符號共享方法研究——以ArcGIS和AutoCAD為例[D].南京:南京師范大學(xué),2012.
[3] 覃如府,許惠平,王家林,等.基于XML的通用地圖符號庫設(shè)計與實現(xiàn)[J].同濟大學(xué)學(xué)報(自然科學(xué)版),2008, 36(08):1138-1142.
[4] 陳泰生,陳夢琳,王本林,等.基于PB符號的圖元類點狀符號共享研究[J].地理與地理信息科學(xué),2014,30(5):7-11.
[5] 尹章才,李霖,朱海紅,等.基于XSLT的圖示表達規(guī)則的設(shè)計與實現(xiàn)[J].地球信息科學(xué),2005,7(04):135-139.
[6] 吳小芳,杜清運,徐智勇,等.復(fù)雜線狀符號的設(shè)計及優(yōu)化算法研究[J].武漢大學(xué)學(xué)報(信息科學(xué)版),2006(7):632-635.