


下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
基于MapX的多字段專題餅圖的設(shè)計(jì)
摘要:本文以小靈通路測(cè)系統(tǒng)中同步與漂移測(cè)試數(shù)據(jù)為例,提出如何在VC++開發(fā)環(huán)境中利用MapX創(chuàng)建多字段的專題餅圖,特別是如何利用安全數(shù)組進(jìn)行數(shù)據(jù)綁定創(chuàng)建多字段的專題餅圖。關(guān)鍵字:MapX安全數(shù)組專題地圖引言組件式軟件技術(shù)已經(jīng)成為當(dāng)今軟件技術(shù)的潮流之一,組件式GIS技術(shù)將給整個(gè)GIS技術(shù)體系和應(yīng)用模式帶來(lái)巨大的影響。MapX是MapInfo公司提供的具有強(qiáng)大地圖分析功能的ActiveX控件,支持大多數(shù)標(biāo)準(zhǔn)的可視化開發(fā)環(huán)境并且可以脫離MapInfo的軟件平臺(tái)運(yùn)行。利用MapX,能夠簡(jiǎn)單快速地在企業(yè)應(yīng)用中嵌入地圖功能,增強(qiáng)應(yīng)用的空間分析能力。在MapX中,專題地圖是用來(lái)分析和表現(xiàn)數(shù)據(jù)的一種強(qiáng)有力的方式。利用專題地圖,可根據(jù)表中特定的值來(lái)賦予地圖對(duì)象顏色、圖案和符號(hào),從而把各種數(shù)據(jù)圖形化,很直觀地顯示在地圖上,為用戶的決策支持提供依據(jù)。專題地圖數(shù)據(jù)通常在創(chuàng)建地圖時(shí)所基于的表中或在ODBC支持的外部數(shù)據(jù)源中,也可以在COM數(shù)據(jù)集安全數(shù)組中。在小靈通信號(hào)的測(cè)試分析系統(tǒng)中,地圖格式支持柵格圖與矢量地圖,為提高效率、滿足實(shí)時(shí)性的要求,相關(guān)待處理數(shù)據(jù)存放在安全數(shù)組中,創(chuàng)建專題地圖時(shí)利用安全數(shù)組進(jìn)行數(shù)據(jù)綁定。1
安全數(shù)組(SAFEARRAY)MapX既是一個(gè)自動(dòng)化對(duì)象,也是一個(gè)標(biāo)準(zhǔn)的COM對(duì)象,它支持結(jié)構(gòu)化存儲(chǔ)技術(shù)、自動(dòng)化技術(shù)等。自動(dòng)化繼承了COM的語(yǔ)言無(wú)關(guān)性、進(jìn)程透明性等優(yōu)點(diǎn),也簡(jiǎn)化了COM的一些底層細(xì)節(jié)。但自動(dòng)化技術(shù)有一組專用于自動(dòng)化的數(shù)據(jù)類型,SAFEARRAY便是Automation中的標(biāo)準(zhǔn)數(shù)組存儲(chǔ)方式。SAFEARRAY類型實(shí)際是一個(gè)結(jié)構(gòu)類型,但它可用于描述各種數(shù)組,指定了數(shù)組每一維的邊界信息。安全數(shù)組類型的使用主要是要定義一個(gè)安全數(shù)組及維數(shù)與維的邊界。COM提供了一套API用于處理SAFEARRAY。為了保證程序和SAFEARRAY結(jié)構(gòu)無(wú)關(guān),程序中建立、讀取、更改和釋放SAFEARRAY都應(yīng)該通過(guò)這些API進(jìn)行,而不應(yīng)該直接讀寫SAFEARRAY結(jié)構(gòu)。其方法如下:⑴定義安全數(shù)組ColeSafeArraytheData;//或SAFEARRAYtheData,用SAFEARRAYBOUND來(lái)設(shè)定維中的元素的個(gè)數(shù)及維的下界。⑵設(shè)定維中元素的個(gè)數(shù)unsignedlongdims[2]={row,col};//row是行數(shù),col為列數(shù)。⑶創(chuàng)建安全數(shù)組theData.Create(VT_VARIANT,2,dims);//創(chuàng)建一個(gè)二維的存放任意類型的安全數(shù)組,邊界值為dims。⑷定義安全數(shù)組元素索引longindex[2];//index[0]為行標(biāo),index[1]為列標(biāo)。⑸數(shù)據(jù)的存放theData.putElement(index,ColeVariant(data));//把data放入安全數(shù)組中index單元內(nèi)。2
數(shù)據(jù)綁定數(shù)據(jù)綁定是將數(shù)據(jù)源中的數(shù)據(jù)導(dǎo)入MapX的過(guò)程。為了增強(qiáng)GIS系統(tǒng)數(shù)據(jù)處理的靈活性,系統(tǒng)分開存儲(chǔ)涉及的圖形矢量數(shù)據(jù)及空間屬性數(shù)據(jù)。MapX通過(guò)數(shù)據(jù)集集合(Datasets)對(duì)象,可以將用戶的屬性數(shù)據(jù)與地圖的空間數(shù)據(jù)連接起來(lái),屬性數(shù)據(jù)與幾何數(shù)據(jù)的關(guān)聯(lián)是通過(guò)數(shù)據(jù)綁定實(shí)現(xiàn)的。數(shù)據(jù)綁定的數(shù)據(jù)源可以是ODBC數(shù)據(jù)源、MapInfoTable文件、安全數(shù)組等。要綁字一個(gè)數(shù)據(jù)源,首先要指定所綁定的圖層,然后需要指定與圖層中地圖對(duì)象相匹配的關(guān)鍵字段。數(shù)據(jù)綁定主要有兩個(gè)作用:以地圖中的圖形對(duì)象來(lái)顯示數(shù)據(jù)及將屬性數(shù)據(jù)綁定到地圖中,并創(chuàng)建專題圖。數(shù)據(jù)綁定的實(shí)現(xiàn)是通過(guò)Datasets.Add方法實(shí)現(xiàn)的。⑴DataSets.add方法原型如下:Datasets.Add(Type,SourceData,[Name],[Geofield],[SecondaryGeofield],[BindLayer],[Fields],[Dynamic])//詳解參見相關(guān)資料⑵創(chuàng)建BindLayer當(dāng)綁定時(shí)數(shù)據(jù)包含經(jīng)度和緯度,且要在新的圖層相應(yīng)的位置上創(chuàng)建這些點(diǎn),需使用BindLayer對(duì)象。通過(guò)數(shù)據(jù)綁定,可以將BindLayer對(duì)象作為一個(gè)參數(shù),使用Datasets.Add方法將自己的數(shù)據(jù)轉(zhuǎn)變?yōu)橐粋€(gè)DataSet。CMapXBindLayerBindLayer;BindLayer.CreateDispatch(BindLayer.GetClsid());BindLayer.SetLayerName("Customers");BindLayer.SetLayerType(miBindLayerTypeXY);//類型BindLayer.SetRefColumn1("X");//經(jīng)度BindLayer.SetRefColumn2("Y");//緯度⑶
用Fields集合在MapX中有Field對(duì)象和Fields對(duì)象。在數(shù)據(jù)綁定時(shí),MapX對(duì)綁定的每個(gè)數(shù)據(jù)列均需要開銷,通過(guò)Field對(duì)象和Fields對(duì)象只綁定地圖中需要的數(shù)據(jù)。使用Datasets.Add的Fields參數(shù)建立要綁定到地圖上的字段。字段集合對(duì)象的Add方法的原型如下:[Field=]OBJECT.Add(DataSourceCol,[Name],[AggregateFunction],[Type])//DataSourceCol取值為數(shù)據(jù)源中字段名或索引值,在本文中數(shù)據(jù)源為安全數(shù)組,其取值為索引值(COleVariant(1l)或COleVariant(2l)),詳解參見相關(guān)資料。⑷
據(jù)綁定使用Datasets.Add可以將用戶數(shù)據(jù)綁定到地圖中。3專題地圖
主題地圖繪制是用于分析和可視化數(shù)據(jù)的一種強(qiáng)大方法。為數(shù)據(jù)提供圖形格式,以便可以在地圖上查看數(shù)據(jù)。制作專題地圖是根據(jù)某個(gè)特定專題對(duì)地圖進(jìn)行“渲染”的過(guò)程。所謂的專題渲染,就是以某種圖案或顏色填充來(lái)表明地圖對(duì)象(點(diǎn)、線、區(qū)域)的某些信息(例如信號(hào)的同步狀態(tài)、人口等等),也就是說(shuō),這類渲染存在著主題,經(jīng)過(guò)這樣渲染的地圖就是專題地圖。在小靈通信號(hào)的測(cè)試中,需要獲取分析信號(hào)的多組數(shù)據(jù)與狀態(tài),本文以同步與漂移狀態(tài)為例。通過(guò)使用餅狀圖的主題地圖繪制,可以每行同時(shí)檢查多個(gè)變量,可以顯示每個(gè)統(tǒng)計(jì)組的統(tǒng)計(jì)數(shù)據(jù),并查看其在每個(gè)餅狀圖中所占的比例。在創(chuàng)建專題圖的過(guò)程中,有幾個(gè)關(guān)鍵因素,包括專題圖變量的確定、屬性數(shù)據(jù)的獲取以及專題地圖的顯示與控制。⑴
定專題圖變量。在專題地圖上顯示的數(shù)據(jù)稱為專題變量。根據(jù)要執(zhí)行的專題分析的類型,地圖可能會(huì)顯示一個(gè)或多個(gè)專題變量,餅狀圖可以同時(shí)顯示多個(gè)專題變量(Fields集合),本文中包括三個(gè)專題變量:同步、單時(shí)隙同步、雙時(shí)隙同步。⑵
屬性數(shù)據(jù)的獲取。數(shù)據(jù)來(lái)源于Field對(duì)象或Field集合,在Themes.Add方法中通過(guò)Fields參數(shù)傳遞。⑶
專題集(Themes)對(duì)象。MapX中使用Themes集合與Theme對(duì)象來(lái)實(shí)現(xiàn)對(duì)專題圖的支持,每一個(gè)數(shù)據(jù)集對(duì)象都擁有一個(gè)專題集對(duì)象。⑷
創(chuàng)建專題地圖,使用Themes.Add方法為數(shù)據(jù)集創(chuàng)建Theme對(duì)象。Add方法原型如下立刻注冊(cè),免費(fèi)享受三天的試用收看期,火爆,激情讓您免費(fèi)欣賞三天
OBJECT.Add([Type],[Field],[Name],[ComputeTheme])//Type取miThemePieChart
⑸
通過(guò)處理ThemeProperties對(duì)象,更改專題的屬性,使用GetMultivarCategories()。⑹
設(shè)置自定義圖例。4實(shí)例本文以小靈通信號(hào)路測(cè)中漂移數(shù)據(jù)為實(shí)驗(yàn)數(shù)據(jù),以VC++6.0、MapX5.0為開發(fā)環(huán)境。在實(shí)施過(guò)程中利用芝測(cè)公司生產(chǎn)的接收儀器接收小靈通信號(hào),分析提取出漂移與同步的數(shù)據(jù)。漂移分為:不漂移、漂移一、漂移二;同步分為:同步、單時(shí)隙異步、雙時(shí)隙異步。其數(shù)據(jù)結(jié)構(gòu)如下:structPY{
doublelo;//經(jīng)度
doublela;//緯度
union{struct{
longp1;//不漂移或同步
longp2;//漂移一或單時(shí)隙異步
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 網(wǎng)絡(luò)環(huán)境下的圖書館服務(wù)能力考查試題及答案
- 激光系統(tǒng)升級(jí)的必要性試題及答案
- 小高考模擬卷試題及答案
- 深入解析光電工程師考試試題與答案
- 系統(tǒng)規(guī)劃與管理師考試常用工具的使用指引試題及答案
- 突破系統(tǒng)架構(gòu)設(shè)計(jì)師考試的關(guān)鍵技巧試題及答案
- 自擬題目試題及答案大全
- 育嬰師發(fā)展支持試題及答案
- 肇慶教師面試題目及答案
- 精心設(shè)計(jì)的護(hù)士資格證試題及答案
- 2025福建省泉州市房屋租賃合同范本
- 中華遺產(chǎn)考試題目及答案
- 全廠設(shè)施色彩、標(biāo)志牌統(tǒng)一規(guī)定
- 《民航重大安全隱患判定標(biāo)準(zhǔn)(2024 年修訂版)》知識(shí)培訓(xùn)
- 物業(yè)電工安全培訓(xùn)
- 湖南省炎德英才名校聯(lián)考聯(lián)合體2024-2025學(xué)年高二下學(xué)期3月月考-化學(xué)+答案
- 國(guó)家安全你我有責(zé)-2025全民國(guó)家安全教育日主題宣教課件
- 樓梯 欄桿 欄板(一)22J403-1
- 合同工期延期補(bǔ)充協(xié)議書
- 幼兒園繪本故事《三只小豬蓋房子》教學(xué)課件全文
- JBT 7387-2014 工業(yè)過(guò)程控制系統(tǒng)用電動(dòng)控制閥
評(píng)論
0/150
提交評(píng)論