亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于 VC的 MAPGIS二次開發(fā)——以煙臺市環(huán)境地質(zhì)信息管理系統(tǒng)為例

        2010-03-19 03:18:00成建梅
        地下水 2010年3期
        關鍵詞:類庫圖件二次開發(fā)

        吳 璽,成建梅,常 敏

        (中國地質(zhì)大學環(huán)境學院,武漢 430074)

        0 引言

        MAPGIS軟件是武漢中地信息工程有限公司研制的具有自主版權(quán)的大型基礎地理信息系統(tǒng)軟件平臺,是一個集當代最先進的圖形、圖像、地質(zhì)、地理、遙感、測繪、人工智能、計算機科學于一體的大型智能軟件,是集數(shù)字制圖、數(shù)據(jù)庫管理及空間分析為一體的空間信息系統(tǒng),是進行現(xiàn)代化管理與決策的先進工具。MAPGIS軟件已經(jīng)被廣泛應用于各領域。其中,在土地、地籍、電信、管網(wǎng)、規(guī)劃等系統(tǒng)成為國家各部委向全國重點推廣的高科技產(chǎn)品,成為我國各領域進行數(shù)字化建設的首選軟件。

        1 MAPGIS二次開發(fā)方式

        MAPGIS的二次開發(fā)方式主要有 API函數(shù)、MFC類庫、組件開發(fā)、ActiveX控件四種方式,MAPGIS二次開發(fā)庫封裝在若干動態(tài)鏈接庫(DLL文件)中。MAPGIS提供的二次開發(fā)方式采用的開發(fā)接口獨立于開發(fā)工具(MFC類庫開發(fā)方式除外),用戶無需學習新的開發(fā)工具就可以進行 MAPGIS二次開發(fā),MAPGIS有四種二次開發(fā)方式:

        (l)API函數(shù)開發(fā):MAPGIS的 API函數(shù)開發(fā)方式與 Windows的 API開發(fā)方式一樣[1]。

        (2)MFC類庫開發(fā):MAPGIS類庫是基于 MFC庫的開發(fā)方式。用面向?qū)ο蟮乃枷氚岩恍?API功能進行封裝,形成多個派生于 MFC中 CView類的可重用基類,用戶利用基于MFC的 MAPGIS類庫,可構(gòu)建面向?qū)ο筌浖こ痰?MAPGIS應用系統(tǒng)。類庫開發(fā)是針對 C++的[1]。

        (3)組件開發(fā):它是基于 COM(組件對象模型)標準的一種程序組件,能夠嵌入程序中運行完成一定功能,在軟件開發(fā)中實現(xiàn)了功能重用。開發(fā)中只需簡單調(diào)用功能接口就可以了。在使用可視化程度很高的開發(fā)工具 VC來開發(fā) MAPGIS應用程序的過程中,最快速有效的方法就是使用 MAPGIS組件(控件)[1]。

        (4)ActiveX控件是 MAPGIS完成組件化改造的成果之一,它使得二次開發(fā)更為快捷便利,代碼的可復用性更高[1]。

        本文選擇了基于MFC類庫的開發(fā)。MAPGIS二次開發(fā)類庫是建立在 MAPGIS API之上的一個類庫層,用于支持基于MFC類庫的面向?qū)ο蟮?W indows程序設計。MAPGIS二次開發(fā)類庫,提供了一套強有力的 C++類,它屏蔽了基于 MAPGIS API之上開發(fā)MAPGIS實用程序的許多復雜性,同時仍然允許有經(jīng)驗的程序員使用底層的MAPGIS API功能。

        2 系統(tǒng)的開發(fā)

        煙臺市環(huán)境地質(zhì)信息管理系統(tǒng)具有數(shù)據(jù)管理、數(shù)據(jù)查詢、數(shù)據(jù)分析、報表分析、圖庫管理與編輯、災害評價分析等功能的綜合性信息系統(tǒng),為今后預警預報系統(tǒng)的建立奠定基礎。整個系統(tǒng)的體系結(jié)構(gòu)圖如圖 1所示:

        圖1 信息管理系統(tǒng)結(jié)構(gòu)框圖

        系統(tǒng)最重要的內(nèi)容是數(shù)據(jù)的建設,數(shù)據(jù)庫可分兩個部分,圖件資料和數(shù)據(jù)資料,本文采用兩者分離的方式進行數(shù)據(jù)庫建設。

        2.1 基礎數(shù)據(jù)管理系統(tǒng)開發(fā)

        Visual C++6.0提供了各種各樣的數(shù)據(jù)庫訪問技術——ODBC API、MFC ODBC、DAO、OLE DB等 。這些技 術各有自己的特點,具有簡單、靈活、訪問速度快、可擴展性好的特點。

        ODBC(Open Database Connectivity)[2]是客戶應用程序訪問關系數(shù)據(jù)庫時提供的一個統(tǒng)一接口,對于不同的數(shù)據(jù)庫,ODBC提供了一套統(tǒng)一的 API,使用應用程序可以應用所提供的 API來訪問任何提供了 ODBC驅(qū)動程序的數(shù)據(jù)庫,并且,ODBC已經(jīng)成為一種標準,目前所有的關系數(shù)據(jù)庫[3]都提供了 ODBC驅(qū)動程序,這使ODBC的應用非常廣泛,基本上可用于所有的關系數(shù)據(jù)庫。

        由于 ODBC是一種底層的訪問技術,因此,直接使用 ODBCAPI編寫應用程序需要編寫大量代碼。Visual C++提供了MFC ODBC類,其中封裝了 ODBC API,因此,使用 MFC來創(chuàng)建 ODBC的應用程序非常簡便。

        煙臺市海岸帶環(huán)境地質(zhì)問題復雜,數(shù)據(jù)種類及數(shù)據(jù)量繁多,關系復雜。因此,研究選取了基于 MFC ODBC數(shù)據(jù)庫訪問技術來進行開發(fā)。該系統(tǒng)集所有的數(shù)據(jù)管理、查詢、統(tǒng)計、分析報表功能于一體。采用該方法開發(fā)了管理系統(tǒng)中的基礎數(shù)據(jù)管理模塊,包括監(jiān)測點普查信息管理子系統(tǒng)、監(jiān)測點水位數(shù)據(jù)管理子系統(tǒng)、監(jiān)測點水量數(shù)據(jù)管理子系統(tǒng)、監(jiān)測點水溫數(shù)據(jù)管理子系統(tǒng)、監(jiān)測點水質(zhì)數(shù)據(jù)管理子系統(tǒng)、野外調(diào)查點水質(zhì)數(shù)據(jù)管理子系統(tǒng)和降雨量數(shù)據(jù)管理子系統(tǒng)。

        系統(tǒng)開發(fā)技術流程如圖 2所示。

        圖2 基于 ODBC數(shù)據(jù)庫訪問技術的數(shù)據(jù)管理系統(tǒng)開發(fā)技術路線圖

        2.2 圖庫管理系統(tǒng)的開發(fā)

        MAPGIS提供的類庫有基于 CView類派生的 CGisView類、CGisEditView和 CPrjEditView類。本研究選取采用繼承CGisEditView類和CPrjEditView類的方法,這樣可以同時使用CGisView、CGisEditView類及 VC++的 CView類所提供的所有功能。

        其中繼承 CGisEditView類開發(fā)了圖形信息庫管理界面模塊程序 Prjmapsee.exe,繼而開發(fā)了基礎圖形庫管理系統(tǒng)(jctk.exe)、海水入侵危險性評價系統(tǒng)(hsrq.exe)、海岸線變遷危險性評價系統(tǒng)(axbq.exe)、地下水環(huán)境質(zhì)量評價系統(tǒng)(h jzl.exe)、地下水系統(tǒng)脆弱性評價系統(tǒng)(dscr.exe)、地下水資源潛力評價系統(tǒng)(zyq l.exe)、地下水庫建設可行性評價系統(tǒng)(sk js.exe)、海岸帶地質(zhì)環(huán)境質(zhì)量綜合評價系統(tǒng)(dzhj.exe)和海岸帶建設功能用地適宜性評價系統(tǒng)(hajs.exe)。開發(fā)流程圖如圖 3所示。

        圖3 基于 MAPGIS類庫開發(fā)的圖庫管理與編輯系統(tǒng)開發(fā)流程圖

        3 系統(tǒng)功能和應用

        根據(jù)系統(tǒng)程序結(jié)構(gòu)的設計,該系統(tǒng)主要有:顯示工程圖件、數(shù)據(jù)輸入、數(shù)據(jù)查詢、數(shù)據(jù)輸出[4]和數(shù)據(jù)備份功能模塊,從而實現(xiàn)對煙臺市海岸帶環(huán)境地質(zhì)相關數(shù)據(jù)的有效管理。

        3.1 顯示工程圖件

        在基礎圖庫的菜單中,選擇任意一個圖件,將彈出顯示工程圖件的界面,界面的左側(cè)為樹視圖,選中圖件名稱前的方框,界面的右側(cè)將顯示該圖件,還可以對圖件進行放大顯示、縮小顯示和復位顯示。該界面還具有添加 MAPGIS點文件、區(qū)文件、線文件和工程文件 MPJ的功能,在界面的右下角可以讀取光標所在位置的坐標。

        3.2 數(shù)據(jù)輸入

        在基礎信息庫管理系統(tǒng)中,初始化了監(jiān)測點普查信息、監(jiān)測點水位數(shù)據(jù)、監(jiān)測點水溫數(shù)據(jù)、監(jiān)測點水量數(shù)據(jù)、監(jiān)測點水質(zhì)數(shù)據(jù)、野外調(diào)查點水質(zhì)數(shù)據(jù)和降雨量數(shù)據(jù),可以在相應的界面下輸入需要更新的數(shù)據(jù)。

        3.3 數(shù)據(jù)查詢

        基礎信息庫管理系統(tǒng)具有分類查詢功能,可以選擇查詢

        類別、查詢條件,可供選擇的有“大于、大于等于、等于、小于等于、等于”。點擊查詢即可從數(shù)據(jù)庫中查詢得到記錄。

        3.4 數(shù)據(jù)輸出

        點擊“報表”,系統(tǒng)提供了與Excel接口功能,查詢結(jié)果將以 Excel格式報表輸出,供用戶使用。報表將存在安裝目錄下的“YTDZ報表 ”目錄下。

        3.5 數(shù)據(jù)備份

        在數(shù)據(jù)備份的界面中,選擇我們想要備份的圖件或其它格式的資料,并選擇希望保存的路徑,即可完成重要數(shù)據(jù)備份,非常方便。

        4 系統(tǒng)功能的實現(xiàn)

        系統(tǒng)采用 MAPGIS67SDK+VC模式編程,使用 MAPGIS67SDK顯示圖件資料和管理相關信息,使用 VC完成界面設計及數(shù)據(jù)庫顯示。以下是本系統(tǒng)基本功能實現(xiàn)的介紹。

        4.1 圖件管理的實現(xiàn)

        調(diào)用_AppendArea(short ai)函數(shù),將要顯示的工作區(qū)添加到 CGisView類的顯示列表中,即可由 CGisView來自動完成圖形的顯示,代碼如下:

        shortCTryAttCtrlView::OpenLinFile()

        {//打開線文件

        m_Ai=_OpenLinArea(m_h Inst);//m_h Inst為打開的工作區(qū)實例

        _LoadFile(m_Ai);

        _AppendArea(m_Ai);

        return 1;

        }

        放大功能:void_dsEnlargeMapDbs(HWND hWnd,DbsAI dbsAi);

        縮小功能:void_dsDelargeMapDbs(HWND hWnd,DbsAI dbsAi);

        復位顯示:_RestoreWindow();裝入點文件:LoadPoint();裝入線文件:LoadLine();

        裝入?yún)^(qū)文件:LoadRegion();裝入工程文件:LoadProject()。

        4.2 數(shù)據(jù)管理的實現(xiàn)

        系統(tǒng)的數(shù)據(jù)庫通過 access的關系模型建立起來,VC將其連接并顯示出來,代碼如下:

        CString VSjxxset::GetDefaultConnect()//連接數(shù)據(jù)庫

        {return_T("ODBC;DSN=y tdz");//ytdz是數(shù)據(jù)庫的名稱}

        CString VSjxxset::GetDefaultSQL()

        {return_T("[sw水溫]");//sw水溫是數(shù)據(jù)表的名稱}

        數(shù)據(jù)輸入:m_time.GetW indowText(str);m_pset.m_time=str;

        數(shù)據(jù)刪除:

        if(m_list.GetItemState(i,LVIS_SELECTED)==LVIS_SELECTED)

        {

        str.Format(_T("確實要刪除第%d條記錄?"),i+1);

        if(AfxMessageBox(str,MB_YESNO,0)==IDYES)

        {

        m_list.GetItem Text(i,0,ctemp,sizeof(char[20]));

        m_list.DeleteItem(i);

        VSjxxsetm_pset;

        UpdateData(TRUE);

        m_pset.Open(CRecordset::snapshot,NULL,CRecordset::none);

        m_pset.m_strFilter.Format("ID=%d",atoi(ctemp));

        m_pset.Requery();

        m_pset.Delete();

        if(m_pset.IsOpen())

        {

        m_pset.Close();

        }}}

        數(shù)據(jù)查詢:m_pSet->Close();

        m_strfiter="...";//定義查詢條件

        m_pSet->Open();

        m_pSet->Requery();//來更新記錄集數(shù)據(jù)輸出:CSpreadSheet SS(szCurrentDir[0],"TestSheet");//新建 Excel文件名及路徑,TestSheet為內(nèi)部表名

        samp leArray.RemoveAll();

        samp leArray.Add("ID");//加入標題

        samp leArray.Add(m_list.GetItem Text(i,j));//加入數(shù)據(jù)

        5 結(jié)語

        煙臺市海岸帶環(huán)境地質(zhì)問題評價系統(tǒng)將煙臺市主要的環(huán)境地質(zhì)問題的相關資料數(shù)據(jù)整理在一起,形成了規(guī)范的數(shù)據(jù)資料列表,解決了實際工作中,數(shù)據(jù)資料格式不統(tǒng)一和紙質(zhì)圖不易保存的問題,對當?shù)叵嚓P部門了解海岸帶的具體情況提供了很大的方便。

        [1]中地軟件公司.MAPGIS二次開發(fā)培訓教程.2001.10.

        [2]施伯樂,顧寧,劉國華 譯.數(shù)據(jù)庫處理——基礎、設計與實現(xiàn)(第七版)[M].北京:電子工業(yè)出版社,2001.3.

        [3]張強.巧學巧用 Access 2003數(shù)據(jù)庫應用開發(fā)實例[M].北京:電子工業(yè)出版社,2007.1.

        [4]楊志,郭福生,劉林清.基于 MAPGIS的江西省丹霞地貌信息系統(tǒng)設計與開發(fā)[J].測繪與空間地理信息,2006.2.

        猜你喜歡
        類庫圖件二次開發(fā)
        一種地質(zhì)圖件數(shù)據(jù)管理系統(tǒng)設計思路
        遙感解譯成果圖件矢量化方法技術研究*
        淺談基于Revit平臺的二次開發(fā)
        甘肅科技(2020年20期)2020-04-13 00:30:02
        用Java編寫客戶機/服務器端應用程序
        淺談Mastercam后處理器的二次開發(fā)
        模具制造(2019年3期)2019-06-06 02:11:02
        Python在數(shù)據(jù)可視化中的應用
        基于MapGIS和ArcGIS的遙感解譯成果圖件數(shù)據(jù)庫設計與實現(xiàn)
        數(shù)據(jù)結(jié)構(gòu)課程教學改革方案和應用效果
        軟件工程(2017年12期)2018-01-29 17:35:55
        數(shù)據(jù)結(jié)構(gòu)可視化類庫的設計與實現(xiàn)
        西門子Easy Screen對倒棱機床界面二次開發(fā)
        噜噜噜色97| 日本免费在线一区二区三区| 亚洲一区二区三区内裤视| 国产成人av一区二区三区| 欧性猛交ⅹxxx乱大交| 国产亚洲欧美日韩综合一区在线观看 | 亚洲一二三区在线观看| 少妇被粗大猛进进出出| 日本亚洲中文字幕一区| 色先锋av影音先锋在线| 国产精品99久久精品爆乳| 亚洲偷自拍另类图片二区| 粗一硬一长一进一爽一a视频| 久久精品国产亚洲av天美| 极品美女一区二区三区免费| 色avav色av爱avav亚洲色拍| 国产特级全黄一级毛片不卡| 久久九九av久精品日产一区免费 | 亚洲激情一区二区三区不卡| 日本免费视频| 无码va在线观看| 国产啪精品视频网站丝袜| 热门精品一区二区三区| 日韩精品综合一本久道在线视频| 人人爽人人爱| 国产91对白在线观看| 亚洲一本二区偷拍精品| 中文字字幕人妻中文| 免费黄色电影在线观看| 日本精品久久性大片日本| 国产一级二级三级在线观看av| 久久精品女人天堂av免费观看| 玩弄放荡人妻一区二区三区| 国产成人aa在线观看视频| 中文字幕综合一区二区| 99精品国产一区二区三区不卡| 色诱久久av| 东京热加勒比日韩精品| 中文字幕乱码在线人妻| 无码中文字幕日韩专区视频| 911国产在线观看精品|