李雙銀,李嘉星,,曹亞妮,吳永明
(1.68029部隊,甘肅 蘭州 730020;2.信息工程大學(xué) 測繪學(xué)院,河南 鄭州 450052)
基于GDI+的三維統(tǒng)計地圖符號的研究與實現(xiàn)*
李雙銀1,李嘉星1,2,曹亞妮2,吳永明1
(1.68029部隊,甘肅 蘭州 730020;2.信息工程大學(xué) 測繪學(xué)院,河南 鄭州 450052)
分析了三維統(tǒng)計地圖符號的構(gòu)圖規(guī)律,并將其分為簡單符號、復(fù)合符號和組合符號3類。在此基礎(chǔ)上,提出了基于GDI+的三維統(tǒng)計地圖符號的繪制方法。實踐證明,利用該方法建立常用的三維統(tǒng)計地圖符號庫,并將其應(yīng)用于專題地圖的制作,能取得良好的效果。
GDI+;三維統(tǒng)計地圖符號;構(gòu)圖規(guī)律;簡單符號;復(fù)合符號;組合符號
專題地圖是突出表示一種或幾種自然現(xiàn)象和社會經(jīng)濟現(xiàn)象的地圖,如各種應(yīng)急地圖、旅游圖、經(jīng)濟圖、氣象圖和影像圖等[1]。專題地圖能夠深入地揭示制圖區(qū)域內(nèi)某一種或者幾種自然或社會經(jīng)濟現(xiàn)象,對于地理要素的表達形象、鮮明、生動、深刻。隨著專題地圖在國民經(jīng)濟生活中的廣泛應(yīng)用,其類型已經(jīng)由單一的定性分析專題地圖發(fā)展到定量、評價、三維綜合景觀等多類型專題地圖。統(tǒng)計專題地圖是專題地圖中最常用、最直觀的一類,目前統(tǒng)計地圖制作工具主要有Adobe公司的Illustrator和Photoshop兩款圖形、圖像處理軟件以及MapInfo、SuperMap、ArcGIS等GIS軟件中的統(tǒng)計地圖制作模塊。符號化是專題地圖制圖的關(guān)建環(huán)節(jié),直接影響著地圖的表達能力和顯示效果。鑒于這些模塊的統(tǒng)計符號都是二維符號和一些簡單的三維符號,本文提出了一種基于GDI+的三維統(tǒng)計地圖符號的繪制方法,該方法主要是從GIS系統(tǒng)的底層開發(fā)來探討三維統(tǒng)計符號的設(shè)計。
按照符號與數(shù)據(jù)關(guān)系的復(fù)雜度,統(tǒng)計地圖符號可以分為簡單符號、復(fù)合符號、組合符號3大類,下面詳細介紹3類統(tǒng)計符號的特點。
簡單統(tǒng)計地圖符號無內(nèi)部結(jié)構(gòu),主要用來表示單指標(biāo)、單要素的分級特征和數(shù)值特征。表示分級特征時,有點、線、面3種形態(tài)。點狀統(tǒng)計分級符號主要采用各種無內(nèi)部結(jié)構(gòu)的幾何圖形或者圖片符號來表示。線狀統(tǒng)計分級符號主要通過線狀符號的粗細來表示。面狀統(tǒng)計分級符號主要通過色相相同,飽和度或者亮度不同的色彩來表示。表示數(shù)值特征時,可以采用無結(jié)構(gòu)的柱、矩形等基本幾何圖形來表示;也可以用幾何圖形的組合形式,即零錢法來表示,用不同的數(shù)目代表不同的數(shù)值,用戶依據(jù)其數(shù)目來計算得出專題要素的具體值。簡單統(tǒng)計符號,如圖1所示。
圖1 簡單統(tǒng)計符號Fig.1 Simple statistic symbols
復(fù)合統(tǒng)計地圖符號是指能夠表示總要素由各個子要素構(gòu)成的比例關(guān)系的統(tǒng)計符號[2,4]。具體可以分為以下幾類:
1)柱狀圖:通過分割柱體來表現(xiàn)總量與分量的對比關(guān)系。
2)條形圖:在表示數(shù)量關(guān)系時,條形圖的功能與柱狀圖基本一致,但在表現(xiàn)頻率分布時,主要表述的是各組分量的情況。如:人口圖中人口的年齡分組。
3)折(曲)線圖:在表示頻率關(guān)系時也是以一組分量的形式出現(xiàn),與柱狀圖和條形圖只是形式上差別,當(dāng)分組較多時不宜采用。
4)餅圖:表示總量百分比的方法,餅圖有許多變種,包括圓環(huán)餅圖、半圓環(huán)餅圖、半圓餅圖和分裂餅圖等。
5)風(fēng)玫瑰圖:表現(xiàn)與空間方位相關(guān)的統(tǒng)計數(shù)據(jù)的數(shù)量對比關(guān)系,用于不同區(qū)域風(fēng)向頻率的對比,在氣候圖中常用到。
復(fù)合統(tǒng)計符號,見圖2。
圖2 復(fù)合統(tǒng)計符號Fig.2 Compound statistic symbols
當(dāng)同一區(qū)域或者同一定位點要配置多個統(tǒng)計地圖符號時,為了顯示的美觀性和有序性,避免產(chǎn)生重疊,將各個統(tǒng)計符號組合為一個整體,這樣就生成了組合統(tǒng)計符號。組合統(tǒng)計符號中的各個統(tǒng)計符號是相互獨立的。常用的組合方式有柱狀圖與環(huán)狀圖、餅狀圖的組合,半圓和半圓的組合、以及圓與圓環(huán)的組合等。
在多數(shù)情況下依靠時間軸將其聯(lián)系在一起,通過采用相同量綱的復(fù)合統(tǒng)計圖型的排列、疊置、翻轉(zhuǎn)展示不同時段數(shù)據(jù)間的對比關(guān)系,最常見的如相互疊置的餅圖,順序排列的帶有構(gòu)成的柱狀圖等。
以同一種統(tǒng)計符號出現(xiàn)時,可以根據(jù)數(shù)據(jù)相關(guān)類型考慮將兩個符號放置成平行或?qū)Ρ鹊男问?。有時幾組數(shù)據(jù)間表面上沒有直接的關(guān)聯(lián),往往可以采用幾種統(tǒng)計符號來表達,常見的有用柱狀表示一個區(qū)域的各月平均降雨量,用折線表示平均氣溫、日照時數(shù)等,這樣的組合統(tǒng)計符號反映了該區(qū)域的氣候特點。組合統(tǒng)計符號,如圖3所示。
圖3 組合統(tǒng)計符號Fig.3 Combination statistic symbols
圖4中顯示了各種統(tǒng)計符號[7],越靠近中間符號越簡單,越往邊上符號構(gòu)成越復(fù)雜。
圖4 統(tǒng)計地圖符號的種類Fig.4 The kinds of statistic map symbols
目前對矢量系統(tǒng)開發(fā)有較好支持的圖形庫主要有微軟的GDI+,開源的 AGG,Cairo等[2]。作為微軟的產(chǎn)品,GDI+在Windows系統(tǒng)下得能到較好的支持,是Windows系統(tǒng)底層開發(fā)的首要選擇。設(shè)備環(huán)境是Windows程序、驅(qū)動程序和輸出設(shè)備(如打印機、繪圖儀)之間的紐帶,GDI是一組C++類,它在驅(qū)動程序的協(xié)助下把數(shù)據(jù)描繪在硬件上,位于應(yīng)用程序與硬件之間,把數(shù)據(jù)從一方傳到另一方。在.Net中Microsoft解決了GDI中的許多問題,并讓它變得更容易使用,這就是GDI的升級版本GDI+。
利用GDI+繪圖的一個好處就是程序員不必知道任何關(guān)于數(shù)據(jù)在設(shè)備上渲染的細節(jié),只需要知道對應(yīng)的接口函數(shù)如何使用。與傳統(tǒng)的GDI相比,GDI+主要有漸變畫刷、獨立的路徑對象、矩陣對象、區(qū)域和多格式圖片支持等特點。另外,GDI+能夠定義Alpha通道合成運算,能夠自定義線條樣式,設(shè)置線寬并支持線頭和線冒及線條拐角處的鏈接樣式;提供了對矩陣計算的支持,可以通過矩陣運算來進行圖形的平移、縮放、旋轉(zhuǎn)、變換等操作;使用了浮點數(shù)作為數(shù)據(jù)源,提高了顯示精度。
VC6.0中默認支持GDI繪圖[3],并不支持GDI+的繪圖包,因此需要下載微軟的GDIPlus支持包。一個完整的GDI+支持包至少應(yīng)包括頭文件 gdiplus.h,動態(tài)庫文件 gdiplus.lib和gdiplus.dll三個文件。一般從官方網(wǎng)站上下載的支持包是一個文件夾,里面大致有26個文件,如圖5所示。
圖5 GDI+文件夾結(jié)構(gòu)Fig.5 GDI+folder construction
在VC6.0中使用GDI+時,應(yīng)將GDI+文件夾拷貝到工程目錄下,并在項目工程中進行如下設(shè)置:
1)在頭文件stdafx.h中加入3行代碼:
#include"GDI+//GdiPlus.h"
using namespace Gdiplus;
#pragma comment(lib,"GDI+//GdiPlus.lib")
2)在APP類的頭文件中聲明一個全局變量m_gdiplusToken:
GdiplusStartupInput m_gdiplusStartupInput;
ULONG_PTR m_gdiplusToken;
3)在APP類的InitInstance()函數(shù)、ExitInstance()函數(shù)中加入以下代碼:
InitInstance中添加:
GdiplusStartup(&m_gdiplusToken,&m_gdiplusStartupInput,NULL);
ExitInstance中添加:
GdiplusShutdown(m_gdiplusToken);
通過這些設(shè)置就可以在工程中利用GDI+提供的函數(shù)繪制三維地圖符號。
符號的三維效果(光影效果)是通過GDI+中的漸變畫刷來實現(xiàn)的,先由繪圖函數(shù)生成圖形路徑,再由不同的顏色生成畫刷,最終用畫刷填充圖形路徑即可得到對應(yīng)的三維符號,如圖6所示。
統(tǒng)計符號雖然多樣,但很多都是由各種簡單符號組合而成的[5],而且在符號組合中需要考慮的問題很多,如定位點、壓蓋關(guān)系、顏色匹配等,圖7顯示出組合符號的實現(xiàn)過程。
根據(jù)上述方法,利用GDI+的繪圖函數(shù),本文實現(xiàn)了一些組合的復(fù)雜統(tǒng)計地圖符號,如圖8所示。
為了管理這些三維統(tǒng)計地圖符號,本文還設(shè)計了一個統(tǒng)計地圖符號庫,用于管理和維護所生成的符號 。符號庫的設(shè)計遵循了完備性、靈活性、精確性、易用性、開放性這5個原則,能夠有效地組織管理文中提到的3類統(tǒng)計符號。用戶不僅可以對符號庫內(nèi)的符號進行增加、刪除、修改,而且還可以用簡單符號自己組合生成新的符號。本文設(shè)計實現(xiàn)的符號庫,見圖9。
圖6 三維效果的實現(xiàn)過程Fig.6 Implementation process of 3D effect
圖7 組合符號的實現(xiàn)過程Fig.7 Implementation process of combination symbols
圖8 三維統(tǒng)計符號的實現(xiàn)效果圖Fig.8 Implementation effect diagram of 3D statistic symbols
圖9 統(tǒng)計符號庫管理界面Fig.9 Management interface of library of statistic symbols
以河南省各類糧食產(chǎn)量、畝產(chǎn)量及增長率為實驗數(shù)據(jù),制作分區(qū)組合統(tǒng)計圖,用結(jié)構(gòu)環(huán)表示各類糧食的產(chǎn)量,用中間的柱表示糧食增長率,如圖10所示。
本文在研究統(tǒng)計地圖符號構(gòu)圖規(guī)律的基礎(chǔ)上,著重探討了基于GDI+的三維統(tǒng)計地圖符號的實現(xiàn)方法,利用GDI+的繪圖函數(shù)繪制各種復(fù)雜的三維統(tǒng)計符號,并設(shè)計了符號庫對符號進行管理。以河南糧食數(shù)據(jù)為例,制作了分區(qū)統(tǒng)計圖表三維專題圖,驗證了符號的實用性。本研究為三維統(tǒng)計地圖符號的設(shè)計和實現(xiàn)提供了一個新思路,有利于提高統(tǒng)計地圖的顯示效果,提升各類專題信息的傳輸效率。
圖10 分區(qū)統(tǒng)計圖表專題地圖Fig.10 The thematic map of the subarea statistics graphics
[1]曹亞妮.面向快速制作的專題地圖符號生成研究[D].鄭州:解放軍信息工程大學(xué),2010.
[2]扈洋,楊世杰.基于GDI+的數(shù)字地圖符號設(shè)計[J].地理信息世界,2010(3):20 -24.
[3]李利正,楊世杰.基于 GDI+特殊統(tǒng)計圖的設(shè)計[J].科技信息,2007(35):571-572.
[4]王宇紅.專題地圖可視化符號自動生成的研究[D].西安:陜西師范大學(xué),2004.
[5]王海龍.統(tǒng)計數(shù)據(jù)地圖可視化研究[D].鄭州:解放軍信息工程大學(xué),2007.
[6]謝超,陳毓芬.基于GDI+的電子地圖符號庫的改進[J].測繪工程,2006,15(2):45 -49.
[7]陳棉,王秀斌,施建勇.空間信息多媒體可視化設(shè)計探討[J].測繪通報,2007(7):54-57.
Research and Practice of 3D Statistic Map Symbols Based on GDI+
LI Shuang-yin1,LI Jia-xing1,2,CAO Ya-ni1,WU Yong-ming1
(1.68029 Troops,Lanzhou Gansu 730020,China;2.Department of Surveying and Mapping,Information Engineering University,Zhengzhou Henan 450052,China)
This paper analyzes the rule of composition of a map of 3D statistic map symbols.They are divided into three kinds:simple symbols,compound symbols and combination symbols.The paper puts forward drawn method of 3D statistic map symbols based on GDI+.The practice proved to apply that the method establish 3D statistic map symbols library in common use,and application to the making of thematic map could get better effect.
GDI+;3D statistic map symbols;composition rule of a map;simple symbol;compound symbol;combination symbol
P 285;TP 302.4
A
1007-9394(2011)03-0012-03
2011-03-28
李雙銀(1972~),男,甘肅臨洮人,碩士,高級工程師,主要研究方向:數(shù)字地圖制圖和遙感攝影測量。