劉一儒 李遠(yuǎn)華 蘆吉昆 黃偉佳
摘 ?要:圖框是地圖的關(guān)鍵構(gòu)成部分,其智能化水平是實(shí)現(xiàn)批量制圖的前提條件。為了提高圖框智能繪制水平,文章通過對(duì)圖框風(fēng)格、構(gòu)成要素、框架體系的深入分析,基于關(guān)系數(shù)據(jù)庫(kù)思想與結(jié)構(gòu),從數(shù)學(xué)基礎(chǔ)、比例尺參數(shù)、繪制參數(shù)、坐標(biāo)網(wǎng)參數(shù)和其他圖飾等方面構(gòu)建新型數(shù)字圖框模型,提出了圖框自動(dòng)繪制時(shí)數(shù)學(xué)基礎(chǔ)控制、圖框結(jié)構(gòu)與搭建、坐標(biāo)網(wǎng)構(gòu)建、關(guān)鍵注記計(jì)算等關(guān)鍵技術(shù)方案,并采用C#+MapGIS 10 API的二次開發(fā)技術(shù)實(shí)現(xiàn)了數(shù)字圖框智能化繪制。研究結(jié)果表明:構(gòu)建的新型數(shù)字化圖框模型,可將圖框要素的離散化信息進(jìn)行整合并以數(shù)字化的形式存儲(chǔ),實(shí)現(xiàn)信息的高度分離,使得參數(shù)可控共享性大大提高,是實(shí)現(xiàn)圖框智能化繪制重要保障;數(shù)學(xué)基礎(chǔ)控制、框架結(jié)構(gòu)搭建方法、坐標(biāo)網(wǎng)構(gòu)建、注記計(jì)算與定位技術(shù)是支撐圖框自動(dòng)繪制的關(guān)鍵,它們相對(duì)獨(dú)立又相互依賴;可通過外接模塊通訊技術(shù)為圖例、接圖表、比例尺等其它地圖要素提供接口,為地圖后續(xù)制作與智能化調(diào)整提供參考;利用C#+MapGIS 10 API可開發(fā)直接可用的圖框制作程序,制圖效率大為提高,對(duì)“快速智能化制圖”而言具重要實(shí)踐意義。
關(guān)鍵詞:數(shù)字圖框模型;MapGIS二次開發(fā);智能化
中圖分類號(hào):P282 ? ? ? ? ?文獻(xiàn)標(biāo)志碼:A ? ? ? ? 文章編號(hào):2095-2945(2019)28-0001-06
Abstract: The drawing frame is the key component of map, and its intelligence level is the precondition of realizing batch mapping. In order to improve the level of intelligent drawing of frame, this paper makes an in-depth analysis of the picture frame style, constituent elements and frame system, and based on the idea and structure of relational database, constructs the new digital graph frame model from the aspects of mathematical basis, scale parameters, drawing parameters, coordinate network parameters and other graphics, puts forward some key technical schemes, such as mathematical basic control, frame structure and construction, coordinate network construction and key note calculation, and uses C#+MapGIS 10 API secondary development technology to realize the intelligent drawing of digital drawing frame. The results show that the new digital picture frame model can integrate the discrete information of drawing frame elements and store it in a digital form, so as to achieve a high degree of information separation and greatly improve the controllable sharing of parameters, which is an important guarantee to realize intelligent drawing of frame; mathematical basic control, frame structure construction method, coordinate network construction, annotation calculation and positioning technology are the key to support the automatic drawing of frame, they are relatively independent and interdependent; the application of communication technology of external modulecan provide interface for other map elements, such as legend, graph, scale, etc., and provide reference for subsequent map making and intelligent adjustment; using C#+MapGIS 10 API, we can develop a directly available program for drawing frame making, which greatly improves the efficiency of drawing and has important practical significance for "quick and intelligent drawing".
2.2 配置技術(shù)
圖框公共參數(shù)通過程序窗口進(jìn)行配置,實(shí)現(xiàn)一套參數(shù)多次使用,提高工作效率;程序的工作環(huán)境例如工作目錄、系統(tǒng)庫(kù)等,繪制前也通過窗口統(tǒng)一配置;外部圖飾包括圖例、接圖表、比例尺等都具有不同類型的風(fēng)格,用戶可根據(jù)需求自行選擇;圖框的私用參數(shù)都存儲(chǔ)在圖框模型中,利用ODBC、OleDB等方法連接數(shù)據(jù)庫(kù),通過SQL語言進(jìn)行模型匹配及操作交互,進(jìn)行內(nèi)部通訊,在繪制時(shí)自動(dòng)從數(shù)據(jù)庫(kù)中提取參數(shù)化數(shù)字化的信息,可使圖框的繪制具有實(shí)時(shí)性、高效性。
3 圖框自動(dòng)繪制關(guān)鍵技術(shù)
在完成數(shù)字圖框模型的構(gòu)建后,需要有核心技術(shù)提供理論依據(jù)才能進(jìn)一步實(shí)現(xiàn)程序開發(fā),本研究從數(shù)學(xué)基礎(chǔ)、框架結(jié)構(gòu)、注記定位、外接部分等方面解決關(guān)鍵問題,提出數(shù)學(xué)基礎(chǔ)控制技術(shù)、框架控制技術(shù)、注記計(jì)算與定位技術(shù)和外接模塊通訊技術(shù)為自動(dòng)繪制程序開發(fā)提供理論支撐。
3.1 數(shù)學(xué)基礎(chǔ)控制技術(shù)
地圖的數(shù)學(xué)基礎(chǔ)涉及到坐標(biāo)網(wǎng)、比例尺、大地控制網(wǎng)等,服務(wù)于整個(gè)地圖的繪制,控制地理信息轉(zhuǎn)繪精度,使地理要素對(duì)于地圖具有正確的位置,對(duì)地圖所有的組成要素都具有控制作用,沒有數(shù)學(xué)基礎(chǔ)的地圖只是一張圖,無法體現(xiàn)其中包含的地理信息。在明確給出坐標(biāo)的情況下,直接繪制即可,如若不然,則需要基于數(shù)學(xué)基礎(chǔ)進(jìn)行計(jì)算得出坐標(biāo)。內(nèi)圖框、坐標(biāo)網(wǎng)和數(shù)字注記根據(jù)數(shù)學(xué)基礎(chǔ)直接計(jì)算得出絕對(duì)位置坐標(biāo),外圖框、說明注記和外接部分還需要考慮地圖手冊(cè)中的布局與分布規(guī)則通過推算得出相對(duì)位置坐標(biāo)。
3.2 框架控制技術(shù)
將圖框的框架結(jié)構(gòu)分為三層,第一層是內(nèi)圖框及其內(nèi)部包含的內(nèi)容,是整體布局的基礎(chǔ)與依據(jù);第二層包括外圖框、外圖框與內(nèi)圖框之間內(nèi)容和圖名,外圖框與內(nèi)圖框的間距一般為4mm左右;第三層是外圖框的外部空間,圖例、接圖表等可在此框架內(nèi)按照需求任意部署。
內(nèi)圖框位置的確定分為三種情況,第一種是用戶給定規(guī)則范圍,根據(jù)范圍計(jì)算得出坐標(biāo)即可;第二種是用戶給定不規(guī)則地理底圖,由IvectorCls類的Range方法獲取內(nèi)圖框范圍;第三種是用戶任意拖拽定義范圍。只有內(nèi)圖框的位置坐標(biāo)確定,才能計(jì)算外圖框及外接部分的位置坐標(biāo),內(nèi)圖框及其范圍內(nèi)所包含的內(nèi)容是地圖的主體部分,地位極其重要,直觀地影響地圖的整體效果。
3.3 注記計(jì)算與定位技術(shù)
根據(jù)地圖手冊(cè)的整理與總結(jié),注記可分為數(shù)字注記和說明注記,數(shù)字注記指用于標(biāo)注點(diǎn)位置信息的注記,這類注記是通過求得坐標(biāo)網(wǎng)與內(nèi)圖框的交點(diǎn),利用公式計(jì)算得出的絕對(duì)數(shù)值;說明注記指圖框外所附的各種文字說明和圖表的注記,這類注記是基于外圖框的位置,計(jì)算出與外圖框的相對(duì)位置,與外圖框之間的數(shù)值關(guān)系要根據(jù)地圖手冊(cè)總結(jié)的規(guī)則和地圖的整體風(fēng)格來確定。
3.4 外接模塊通訊技術(shù)
一幅完整的地圖除了主體部分圖框外,還有圖例、接圖表、編繪說明等輔助要素,本文基于得出的外圖框的坐標(biāo)與范圍,根據(jù)圖框的數(shù)學(xué)基礎(chǔ),以地圖手冊(cè)總結(jié)的規(guī)則為依據(jù),計(jì)算出其他組成部分的坐標(biāo)與分布范圍,通過接口傳遞得到的結(jié)果,為地圖的后續(xù)制作和整體的美觀協(xié)調(diào)提供參考。
4 程序開發(fā)
4.1 程序開發(fā)
(1)坐標(biāo)轉(zhuǎn)換
不同投影、不同坐標(biāo)系、地理坐標(biāo)與投影直角坐標(biāo)之間都需要進(jìn)行坐標(biāo)轉(zhuǎn)換,這是保證圖框精確度的基礎(chǔ)工作,利用數(shù)學(xué)公式構(gòu)建函數(shù),有需要時(shí)調(diào)用函數(shù)實(shí)現(xiàn)坐標(biāo)轉(zhuǎn)換即可。
(2)圖框框架繪制
捕獲內(nèi)框獲取范圍,內(nèi)圖框與外圖框之間的距離△x和△y與注記大小有關(guān),注記一般為3mm×3mm,△x和△y可適當(dāng)放大取4mm左右,其核心代碼如下:
//坐標(biāo)外擴(kuò)
X1 = X1 - r;
X2 = X2 + r;
……
//創(chuàng)建數(shù)組存儲(chǔ)坐標(biāo)
double[] Px = new double[2] { X1, X2 };
double[] Py = new double[2] { Y1, Y2 };
Dots m_dots = new Dots();//創(chuàng)建點(diǎn)集
……
GeoVarLine ploylinTLK = new GeoVarLine();
ploylinTLK.Append(m_dots);//添加點(diǎn)集
line.Append(ploylinTLK, null, Lineinf);//連點(diǎn)成線
(3)坐標(biāo)網(wǎng)
進(jìn)行坐標(biāo)網(wǎng)繪制時(shí),如果是方里網(wǎng),確定間隔后直接循環(huán)繪線再裁剪即可,如果是經(jīng)緯網(wǎng),則需要捕獲內(nèi)圖框的坐標(biāo),如果是理論地理坐標(biāo),直接外擴(kuò)取整得到經(jīng)緯度范圍,循環(huán)繪線后利用內(nèi)圖框進(jìn)行內(nèi)裁,如果得到的不是理論地理坐標(biāo),則需要先進(jìn)行坐標(biāo)正算求得,其中,代碼①如下:
SFeatureCls line = new SFeatureCls();//創(chuàng)建線對(duì)象
//屬性設(shè)置
Lineinf.OutPenW = widthLine;
Lineinf.LineType = (LineType)Lineparameters.linetype;
……
for (i = 0; i < n; i++)//循環(huán)繪制
{
GeoVarLine ploylinTLK = new GeoVarLine();
……
ploylinTLK.Append(m_dot);//添加點(diǎn)
line.Append(ploylinTLK, null, Lineinf);//連接點(diǎn)成線
}
(4)注記
說明注記的繪制與圖框框架繪制原理相同,根據(jù)外框確定位置,坐標(biāo)注記的繪制首先要捕獲坐標(biāo)網(wǎng),再創(chuàng)建矩形獲取查詢范圍,創(chuàng)建記錄集存儲(chǔ)記錄,創(chuàng)建查詢對(duì)象查詢符合條件的線要素,也就是與內(nèi)框有交點(diǎn)的線,進(jìn)行坐標(biāo)反算得到坐標(biāo),其核心代碼如下:
Rect rect = null;//創(chuàng)建矩形
QueryDef queryDef = new QueryDef();//創(chuàng)建查詢對(duì)象
queryDef.SetRect(rect, SpaQueryMode.Contain);
RecordSet recordSet = null;//創(chuàng)建記錄集
recordSet = sFeatureCls.Select(queryDef);
recordSet.MoveFirst();//移到第一條記錄
while (!recordSet.IsEOF)//循環(huán)查詢記錄
{
if (recordSet.Rect.XMin == MyClass.X)//查詢條件
{
……
}
recordSet.MoveNext();//移到下一條記錄
}
4.2 應(yīng)用與分析
為了驗(yàn)證該程序系統(tǒng)的性能,我們?cè)谝粡堁蛹械貓D上任意選取一部分(圖7中方框部分)進(jìn)行裁剪,該部分具有鐵路、公路、等高線、河流等基礎(chǔ)地理要素,經(jīng)由程序自動(dòng)計(jì)算繪制后,輸出結(jié)果如圖8,可以看到已經(jīng)為底圖添加了內(nèi)外圖框、經(jīng)緯網(wǎng)、坐標(biāo)注記和圖名等圖飾,線寬、注釋大小等由數(shù)學(xué)基礎(chǔ)嚴(yán)格控制,通過坐標(biāo)反算得到的坐標(biāo)注記符合延吉市的實(shí)際經(jīng)緯度坐標(biāo),此外為圖例、接圖表、圖簽等劃定了繪制區(qū)域以供后續(xù)制作參考,該結(jié)果說明開發(fā)的圖框自動(dòng)繪制程序具有可行性。
4.3 討論
由測(cè)試結(jié)果可以看出,外接模塊劃定的區(qū)域已經(jīng)和圖框綁定,無法智能擴(kuò)展,其他圖飾部分的繪制算法需要與本程序的算法有較高的融合度,要有接口接收?qǐng)D框的數(shù)學(xué)基礎(chǔ)與參數(shù)體系,使得多個(gè)部分繪制集成后協(xié)調(diào)美觀;表達(dá)不同信息的線參數(shù)要用不同的線型加以區(qū)分,使得地圖內(nèi)容更加直觀。
5 結(jié)論
計(jì)算機(jī)技術(shù)的高速發(fā)展不斷地解放人們的雙手,當(dāng)前智能制圖成為一種流行趨勢(shì),圖框作為地圖的關(guān)鍵組成部分,其智能化水平關(guān)系著高效批量制圖的實(shí)現(xiàn),之前的研究解決了繪制技術(shù)問題,但信息整合度不強(qiáng),共享性不高,沒有考慮個(gè)性化需求,本研究為有效解決這些問題,構(gòu)建了一種利用數(shù)據(jù)庫(kù)組織的新型圖框模型,提出多種自主技術(shù),采用C#+MapGIS 10 API的二次開發(fā)技術(shù)實(shí)現(xiàn)了數(shù)字圖框智能化繪制。研究結(jié)果表明:
(1)基于關(guān)系數(shù)據(jù)庫(kù)構(gòu)建的新型數(shù)字化的圖框模型,可將圖框要素的離散化信息進(jìn)行整合并以數(shù)字化的形式存儲(chǔ),使圖框信息相互獨(dú)立,增強(qiáng)參數(shù)可控性和共享性;(2)數(shù)學(xué)基礎(chǔ)控制技術(shù)控制圖框要素的分布位置和圖框繪制的整個(gè)過程,框架控制技術(shù)管理圖框繪制及外接圖飾的范圍和布局,注記計(jì)算與定位技術(shù)和坐標(biāo)網(wǎng)構(gòu)建技術(shù)是搭建圖框主體部分的關(guān)鍵,這些技術(shù)是支撐圖框自動(dòng)繪制的理論基礎(chǔ);(3)可通過外接模塊通訊技術(shù)為圖例、接圖表、比例尺等其它地圖要素提供接口,為地圖后續(xù)制作與智能化調(diào)整提供有價(jià)值的參考;(4)利用C#+MapGIS 10 API能夠開發(fā)直接可用的圖框制作程序,減少人工干預(yù),提高制圖效率,對(duì)“快速智能化制圖”而言具有重要實(shí)踐意義。
本研究已經(jīng)在一定程度上提高了圖框繪制的智能化水平,但仍然存在一些不足,描述圖框特性的參數(shù)表還需增加內(nèi)容,使得圖框繪制的靈活性進(jìn)一步提高;繪制的坐標(biāo)網(wǎng)需要經(jīng)過裁剪才能與內(nèi)圖框相匹配,算法較繁瑣,可以先算出交點(diǎn)再進(jìn)行繪線,簡(jiǎn)化步驟,這些問題可以在后續(xù)工作中得到解決。
參考文獻(xiàn):
[1]樊文有,曾文.GIS制圖中標(biāo)準(zhǔn)圖框的機(jī)助生成[J].中國(guó)地質(zhì)大學(xué)學(xué)報(bào),1998,23(4):379-381.
[2]俞松,劉耀林,苗作華.MapObjects在地圖打印中的應(yīng)用研究[J].測(cè)繪通報(bào),2006(5):44-46.
[3]潘宸,談帥,朱周華,等.GIS地圖整飾及打印模塊的設(shè)計(jì)與實(shí)現(xiàn)[J].測(cè)繪與空間地理信息,2008,31(4):206-207.
[4]張標(biāo),陳楠.地形圖圖廓整飾的設(shè)計(jì)與實(shí)現(xiàn)[J].測(cè)繪工程,2017(08):17-22.
[5]楊德嚴(yán),趙俊三,李紅波,等.地圖圖幅整飾自動(dòng)化技術(shù)[J].計(jì)算機(jī)工程,2011,37(22).
[6]董國(guó)橋,王友昆,董書曉.測(cè)繪工程圖件的圖廓自動(dòng)繪制程序設(shè)計(jì)與實(shí)現(xiàn)[C]//云南省測(cè)繪地理信息學(xué)會(huì)2017年學(xué)術(shù)年會(huì)論文集.
[7]楊英偉,吳凡,粟衛(wèi)民.數(shù)字地圖制圖數(shù)學(xué)基礎(chǔ)的自動(dòng)建立與圖廓整飾[J].測(cè)繪地理信息,2007,32(2):7-9.
[8]黃茂軍,杜清運(yùn),鄔國(guó)鋒,等.地圖投影組件化研究[J].測(cè)繪,2003,26(1):19-23.