劉一儒 李遠華 蘆吉昆 黃偉佳



摘 ?要:圖框是地圖的關鍵構成部分,其智能化水平是實現批量制圖的前提條件。為了提高圖框智能繪制水平,文章通過對圖框風格、構成要素、框架體系的深入分析,基于關系數據庫思想與結構,從數學基礎、比例尺參數、繪制參數、坐標網參數和其他圖飾等方面構建新型數字圖框模型,提出了圖框自動繪制時數學基礎控制、圖框結構與搭建、坐標網構建、關鍵注記計算等關鍵技術方案,并采用C#+MapGIS 10 API的二次開發技術實現了數字圖框智能化繪制。研究結果表明:構建的新型數字化圖框模型,可將圖框要素的離散化信息進行整合并以數字化的形式存儲,實現信息的高度分離,使得參數可控共享性大大提高,是實現圖框智能化繪制重要保障;數學基礎控制、框架結構搭建方法、坐標網構建、注記計算與定位技術是支撐圖框自動繪制的關鍵,它們相對獨立又相互依賴;可通過外接模塊通訊技術為圖例、接圖表、比例尺等其它地圖要素提供接口,為地圖后續制作與智能化調整提供參考;利用C#+MapGIS 10 API可開發直接可用的圖框制作程序,制圖效率大為提高,對“快速智能化制圖”而言具重要實踐意義。
關鍵詞:數字圖框模型;MapGIS二次開發;智能化
中圖分類號:P282 ? ? ? ? ?文獻標志碼:A ? ? ? ? 文章編號: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 配置技術
圖框公共參數通過程序窗口進行配置,實現一套參數多次使用,提高工作效率;程序的工作環境例如工作目錄、系統庫等,繪制前也通過窗口統一配置;外部圖飾包括圖例、接圖表、比例尺等都具有不同類型的風格,用戶可根據需求自行選擇;圖框的私用參數都存儲在圖框模型中,利用ODBC、OleDB等方法連接數據庫,通過SQL語言進行模型匹配及操作交互,進行內部通訊,在繪制時自動從數據庫中提取參數化數字化的信息,可使圖框的繪制具有實時性、高效性。
3 圖框自動繪制關鍵技術
在完成數字圖框模型的構建后,需要有核心技術提供理論依據才能進一步實現程序開發,本研究從數學基礎、框架結構、注記定位、外接部分等方面解決關鍵問題,提出數學基礎控制技術、框架控制技術、注記計算與定位技術和外接模塊通訊技術為自動繪制程序開發提供理論支撐。
3.1 數學基礎控制技術
地圖的數學基礎涉及到坐標網、比例尺、大地控制網等,服務于整個地圖的繪制,控制地理信息轉繪精度,使地理要素對于地圖具有正確的位置,對地圖所有的組成要素都具有控制作用,沒有數學基礎的地圖只是一張圖,無法體現其中包含的地理信息。在明確給出坐標的情況下,直接繪制即可,如若不然,則需要基于數學基礎進行計算得出坐標。內圖框、坐標網和數字注記根據數學基礎直接計算得出絕對位置坐標,外圖框、說明注記和外接部分還需要考慮地圖手冊中的布局與分布規則通過推算得出相對位置坐標。
3.2 框架控制技術
將圖框的框架結構分為三層,第一層是內圖框及其內部包含的內容,是整體布局的基礎與依據;第二層包括外圖框、外圖框與內圖框之間內容和圖名,外圖框與內圖框的間距一般為4mm左右;第三層是外圖框的外部空間,圖例、接圖表等可在此框架內按照需求任意部署。
內圖框位置的確定分為三種情況,第一種是用戶給定規則范圍,根據范圍計算得出坐標即可;第二種是用戶給定不規則地理底圖,由IvectorCls類的Range方法獲取內圖框范圍;第三種是用戶任意拖拽定義范圍。只有內圖框的位置坐標確定,才能計算外圖框及外接部分的位置坐標,內圖框及其范圍內所包含的內容是地圖的主體部分,地位極其重要,直觀地影響地圖的整體效果。
3.3 注記計算與定位技術
根據地圖手冊的整理與總結,注記可分為數字注記和說明注記,數字注記指用于標注點位置信息的注記,這類注記是通過求得坐標網與內圖框的交點,利用公式計算得出的絕對數值;說明注記指圖框外所附的各種文字說明和圖表的注記,這類注記是基于外圖框的位置,計算出與外圖框的相對位置,與外圖框之間的數值關系要根據地圖手冊總結的規則和地圖的整體風格來確定。
3.4 外接模塊通訊技術
一幅完整的地圖除了主體部分圖框外,還有圖例、接圖表、編繪說明等輔助要素,本文基于得出的外圖框的坐標與范圍,根據圖框的數學基礎,以地圖手冊總結的規則為依據,計算出其他組成部分的坐標與分布范圍,通過接口傳遞得到的結果,為地圖的后續制作和整體的美觀協調提供參考。
4 程序開發
4.1 程序開發
(1)坐標轉換
不同投影、不同坐標系、地理坐標與投影直角坐標之間都需要進行坐標轉換,這是保證圖框精確度的基礎工作,利用數學公式構建函數,有需要時調用函數實現坐標轉換即可。
(2)圖框框架繪制
捕獲內框獲取范圍,內圖框與外圖框之間的距離△x和△y與注記大小有關,注記一般為3mm×3mm,△x和△y可適當放大取4mm左右,其核心代碼如下:
//坐標外擴
X1 = X1 - r;
X2 = X2 + r;
……
//創建數組存儲坐標
double[] Px = new double[2] { X1, X2 };
double[] Py = new double[2] { Y1, Y2 };
Dots m_dots = new Dots();//創建點集
……
GeoVarLine ploylinTLK = new GeoVarLine();
ploylinTLK.Append(m_dots);//添加點集
line.Append(ploylinTLK, null, Lineinf);//連點成線
(3)坐標網
進行坐標網繪制時,如果是方里網,確定間隔后直接循環繪線再裁剪即可,如果是經緯網,則需要捕獲內圖框的坐標,如果是理論地理坐標,直接外擴取整得到經緯度范圍,循環繪線后利用內圖框進行內裁,如果得到的不是理論地理坐標,則需要先進行坐標正算求得,其中,代碼①如下:
SFeatureCls line = new SFeatureCls();//創建線對象
//屬性設置
Lineinf.OutPenW = widthLine;
Lineinf.LineType = (LineType)Lineparameters.linetype;
……
for (i = 0; i < n; i++)//循環繪制
{
GeoVarLine ploylinTLK = new GeoVarLine();
……
ploylinTLK.Append(m_dot);//添加點
line.Append(ploylinTLK, null, Lineinf);//連接點成線
}
(4)注記
說明注記的繪制與圖框框架繪制原理相同,根據外框確定位置,坐標注記的繪制首先要捕獲坐標網,再創建矩形獲取查詢范圍,創建記錄集存儲記錄,創建查詢對象查詢符合條件的線要素,也就是與內框有交點的線,進行坐標反算得到坐標,其核心代碼如下:
Rect rect = null;//創建矩形
QueryDef queryDef = new QueryDef();//創建查詢對象
queryDef.SetRect(rect, SpaQueryMode.Contain);
RecordSet recordSet = null;//創建記錄集
recordSet = sFeatureCls.Select(queryDef);
recordSet.MoveFirst();//移到第一條記錄
while (!recordSet.IsEOF)//循環查詢記錄
{
if (recordSet.Rect.XMin == MyClass.X)//查詢條件
{
……
}
recordSet.MoveNext();//移到下一條記錄
}
4.2 應用與分析
為了驗證該程序系統的性能,我們在一張延吉市地圖上任意選取一部分(圖7中方框部分)進行裁剪,該部分具有鐵路、公路、等高線、河流等基礎地理要素,經由程序自動計算繪制后,輸出結果如圖8,可以看到已經為底圖添加了內外圖框、經緯網、坐標注記和圖名等圖飾,線寬、注釋大小等由數學基礎嚴格控制,通過坐標反算得到的坐標注記符合延吉市的實際經緯度坐標,此外為圖例、接圖表、圖簽等劃定了繪制區域以供后續制作參考,該結果說明開發的圖框自動繪制程序具有可行性。
4.3 討論
由測試結果可以看出,外接模塊劃定的區域已經和圖框綁定,無法智能擴展,其他圖飾部分的繪制算法需要與本程序的算法有較高的融合度,要有接口接收圖框的數學基礎與參數體系,使得多個部分繪制集成后協調美觀;表達不同信息的線參數要用不同的線型加以區分,使得地圖內容更加直觀。
5 結論
計算機技術的高速發展不斷地解放人們的雙手,當前智能制圖成為一種流行趨勢,圖框作為地圖的關鍵組成部分,其智能化水平關系著高效批量制圖的實現,之前的研究解決了繪制技術問題,但信息整合度不強,共享性不高,沒有考慮個性化需求,本研究為有效解決這些問題,構建了一種利用數據庫組織的新型圖框模型,提出多種自主技術,采用C#+MapGIS 10 API的二次開發技術實現了數字圖框智能化繪制。研究結果表明:
(1)基于關系數據庫構建的新型數字化的圖框模型,可將圖框要素的離散化信息進行整合并以數字化的形式存儲,使圖框信息相互獨立,增強參數可控性和共享性;(2)數學基礎控制技術控制圖框要素的分布位置和圖框繪制的整個過程,框架控制技術管理圖框繪制及外接圖飾的范圍和布局,注記計算與定位技術和坐標網構建技術是搭建圖框主體部分的關鍵,這些技術是支撐圖框自動繪制的理論基礎;(3)可通過外接模塊通訊技術為圖例、接圖表、比例尺等其它地圖要素提供接口,為地圖后續制作與智能化調整提供有價值的參考;(4)利用C#+MapGIS 10 API能夠開發直接可用的圖框制作程序,減少人工干預,提高制圖效率,對“快速智能化制圖”而言具有重要實踐意義。
本研究已經在一定程度上提高了圖框繪制的智能化水平,但仍然存在一些不足,描述圖框特性的參數表還需增加內容,使得圖框繪制的靈活性進一步提高;繪制的坐標網需要經過裁剪才能與內圖框相匹配,算法較繁瑣,可以先算出交點再進行繪線,簡化步驟,這些問題可以在后續工作中得到解決。
參考文獻:
[1]樊文有,曾文.GIS制圖中標準圖框的機助生成[J].中國地質大學學報,1998,23(4):379-381.
[2]俞松,劉耀林,苗作華.MapObjects在地圖打印中的應用研究[J].測繪通報,2006(5):44-46.
[3]潘宸,談帥,朱周華,等.GIS地圖整飾及打印模塊的設計與實現[J].測繪與空間地理信息,2008,31(4):206-207.
[4]張標,陳楠.地形圖圖廓整飾的設計與實現[J].測繪工程,2017(08):17-22.
[5]楊德嚴,趙俊三,李紅波,等.地圖圖幅整飾自動化技術[J].計算機工程,2011,37(22).
[6]董國橋,王友昆,董書曉.測繪工程圖件的圖廓自動繪制程序設計與實現[C]//云南省測繪地理信息學會2017年學術年會論文集.
[7]楊英偉,吳凡,粟衛民.數字地圖制圖數學基礎的自動建立與圖廓整飾[J].測繪地理信息,2007,32(2):7-9.
[8]黃茂軍,杜清運,鄔國鋒,等.地圖投影組件化研究[J].測繪,2003,26(1):19-23.