畢業(yè)論文:基于MAPX的房屋測繪管理系統(tǒng)設(shè)計(jì).doc
《畢業(yè)論文:基于MAPX的房屋測繪管理系統(tǒng)設(shè)計(jì).doc》由會員分享,可在線閱讀,更多相關(guān)《畢業(yè)論文:基于MAPX的房屋測繪管理系統(tǒng)設(shè)計(jì).doc(24頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。
1、本科生畢業(yè)論文(設(shè)計(jì))題 目:基于MAPX的房屋測繪 管理系統(tǒng)設(shè)計(jì) 專業(yè)代碼: 070703 作者姓名: 歐陽任彬 學(xué) 號: 2007202065 單 位: 環(huán)境與規(guī)劃學(xué)院 指導(dǎo)教師: 肖 燕 2011年5月31日原創(chuàng)性聲明本人鄭重聲明:所提交的學(xué)位論文是本人在導(dǎo)師指導(dǎo)下,獨(dú)立進(jìn)行研究取得的成果。除文中已經(jīng)注明引用的內(nèi)容外,論文中不含其他人已經(jīng)發(fā)表或撰寫過的研究成果,也不包含為獲得聊城大學(xué)或其他教育機(jī)構(gòu)的學(xué)位證書而使用過的材料。對本文的研究做出重要貢獻(xiàn)的個人和集體,均已在文中以明確方式標(biāo)明。本人承擔(dān)本聲明的相應(yīng)責(zé)任。學(xué)位論文作者簽名: 日期 .指導(dǎo)教師簽名: 日期 .聊城大學(xué)本科畢業(yè)論文(設(shè)計(jì)
2、)目錄1 前言11.1 系統(tǒng)設(shè)計(jì)背景11.2 系統(tǒng)開發(fā)相關(guān)技術(shù)11.2.1 Visual Basic 6.0中文版介紹11.2.2 MapX 5.0中文版簡介12 系統(tǒng)總功能22.1繪制房屋平面圖22.2平面圖屬性設(shè)置22.3平面面積的計(jì)算22.4系統(tǒng)輔助功能22.5系統(tǒng)維護(hù)23 系統(tǒng)程序?qū)崿F(xiàn)33.1主界面設(shè)計(jì)33.2 圖層控制功能設(shè)計(jì)43.3 平面圖屬性設(shè)置功能設(shè)計(jì)43.4 平面圖面積計(jì)算功能設(shè)計(jì)73.5 系統(tǒng)輔助功能設(shè)計(jì)153.6 系統(tǒng)維護(hù)功能設(shè)計(jì)164 結(jié)語16參考文獻(xiàn)17致 謝18摘 要房屋測繪管理是對房屋屬性描述的有效系統(tǒng),針對房屋管理中需要解決的如何實(shí)現(xiàn)測繪平面圖、屬性設(shè)置、房屋面
3、積計(jì)算、輔助功能和系統(tǒng)維護(hù)等管理功能,文章提出建立基于MAPX的房屋測繪管理系統(tǒng),以數(shù)據(jù)庫為基礎(chǔ),在計(jì)算機(jī)軟硬件支持下,運(yùn)用系統(tǒng)工程和信息科學(xué)的理論和方法,綜合地、動態(tài)地獲取、存儲、管理、分析和應(yīng)用地理信息的多媒體信息系統(tǒng)。該系統(tǒng)的建立,將以其快速高效收集、存儲、整理、輸出、查詢、檢索等功能來提高房屋測繪管理效率,更以其優(yōu)越的空間分析功能使房屋測繪管理更為科學(xué)。關(guān)鍵詞:MAPX;房屋測繪;管理系統(tǒng);設(shè)計(jì)AbstractHouses of surveying and mapping management is the effective system house property descrip
4、tion .Aimed at building management of how to realize the need to be solved in surveying and mapping plan,attribute set ,building area calculation,the auxiliary function and system maintenance management function.This paper based on the house MAPX surveying and mapping management system, based on dat
5、abase, in support of computer software and hardware , uses system engineering and information science, the theory and methods of comprehensive dynamicly 、acquire、store 、manage 、analysis and apply of multimedia information system of geographic information.With its efficient collection, storage, sorti
6、ng, output, inquiry, retrieval functions to improve the efficiency of surveying and mapping administration more houses, with its superior spatial analysis function of surveying and mapping administration of the building is more scientific, this system sets up successly.Key words: MAPX;housing survey
7、ing and mapping;management system;design基于MAPX的房屋測繪管理系統(tǒng)設(shè)計(jì)1 前言1.1 系統(tǒng)設(shè)計(jì)背景 隨著房價日益上漲,房屋測繪管理系統(tǒng)顯得尤為重要。房屋測繪管理系統(tǒng)包括測繪平面圖、屬性設(shè)置、房屋面積計(jì)算、輔助功能和系統(tǒng)維護(hù)五大管理功能,實(shí)現(xiàn)了房屋測繪的全面管理,是各種房地產(chǎn)公司進(jìn)行電腦信息化管理的理想選擇。最重要的就是利用Mapx控件進(jìn)行房屋圖層的管理和控制.并將數(shù)據(jù)庫同圖層緊密的結(jié)合在一起。該系統(tǒng)可以廣泛的應(yīng)用于各種測繪企業(yè)以及房地產(chǎn)公司。以空間信息處理為核心的地理信息系統(tǒng)(GIS) 技術(shù), 因具有強(qiáng)大的空間信息管理、空間信息分析、空間信息查詢及三
8、維影像顯示等功能 1。而成為房屋測繪信息化的首選平臺?;赩B+MapX的房屋測繪管理系統(tǒng)是以數(shù)據(jù)庫為基礎(chǔ),在計(jì)算機(jī)軟硬件支持下,運(yùn)用系統(tǒng)工程和信息科學(xué)的理論和方法,綜合地、動態(tài)地獲取、存儲、管理、分析和應(yīng)用地理信息的多媒體信息系統(tǒng)。該系統(tǒng)的建立,將以其快速高效收集、存儲、整理、輸出、查詢、檢索等功能來提高房屋測繪管理效率,更以其優(yōu)越的空間分析功能使房屋測繪管理更為科學(xué) 2。1.2 系統(tǒng)開發(fā)相關(guān)技術(shù)1.2.1 Visual Basic 6.0中文版介紹Visual Basic是在原有Basic語言基礎(chǔ)上的進(jìn)一步發(fā)展,它包含了數(shù)百條語句、函數(shù)及關(guān)鍵詞,其中很多與Windows GUI有直接的關(guān)系
9、??梢暂p易的使用DAO、RDO、ADO連接數(shù)據(jù)庫,或者輕松的創(chuàng)建ActiveX控件。程序員可以輕松的使用VB提供的組件快速建立一個應(yīng)用程序3。1.2.2 MapX 5.0中文版簡介MapX是一種集MapInfo強(qiáng)大功能于一身的性價比非常高的ActiveX控件,MapX支持用戶將地圖功能添加到任何應(yīng)用中,提供了一種高度可視化的方法,來顯示和分析基于位置的數(shù)據(jù),它和眾多的可視化編程工具例如Visual Basic、Visual c+、PowerBuilder、Delphi等緊密結(jié)合,使得眾多的用戶利用它可以很快的開發(fā)出非常專業(yè)的地理信息系統(tǒng)應(yīng)用軟件4。2 系統(tǒng)總功能2.1繪制房屋平面圖在這個功能模
10、塊中,包括基本信息設(shè)置、平面圖文件操作、繪制房屋平面圖、設(shè)置平面圖屬性和編輯平面圖5個方面。通過一系列正確的操作,可以方便地生成房屋平面圖。2.2平面圖屬性設(shè)置在這個圖形屬性設(shè)置中,包括層數(shù)設(shè)置、類型設(shè)置、分?jǐn)偤完柵_閣樓歸屬4個方面。類型設(shè)置和分?jǐn)偸欠课菝娣e計(jì)算中關(guān)鍵的參數(shù),是是否能夠計(jì)算出房屋面積的關(guān)鍵。類型設(shè)置中的功能模塊以準(zhǔn)確的類型基礎(chǔ),提供了對各封閉平面的類型設(shè)定,類型包括戶室、封閉陽臺、陽臺、閣樓、墻體、分?jǐn)偯娣e和未知類型幾種,按封閉面和不同種類分別給予設(shè)定。2.3平面面積的計(jì)算能否準(zhǔn)確合理地計(jì)算所需的平面圖的數(shù)據(jù),是評價系統(tǒng)好壞的關(guān)鍵。為了達(dá)到一個比較好的計(jì)算效果,系統(tǒng)中綜合運(yùn)用了
11、數(shù)據(jù)庫的后臺備份技術(shù)及其MapX空間強(qiáng)大的前臺繪圖機(jī)計(jì)算機(jī)技術(shù),較好地實(shí)現(xiàn)了計(jì)算機(jī)平面圖面積的功能。2.4系統(tǒng)輔助功能在這個模塊中,包括轉(zhuǎn)成區(qū)域、區(qū)域合并、生成墻體、三角形角度計(jì)算和計(jì)算器5個方面。該模塊用來實(shí)現(xiàn)平面圖統(tǒng)一集中的管理,為其他幾個管理系統(tǒng)提供了基本信息,用以提高工作效率。2.5系統(tǒng)維護(hù)在這個模塊中,包括系統(tǒng)日志、數(shù)據(jù)庫整理、數(shù)據(jù)庫備份、數(shù)據(jù)庫還原4個方面。系統(tǒng)維護(hù)中的功能模塊用來保障數(shù)據(jù)庫和系統(tǒng)的安全。綜上所述,系統(tǒng)的功能需求框圖如圖1所示。繪制房屋平面圖平面圖面積計(jì)算系統(tǒng)維護(hù)系統(tǒng)輔助功能平面圖屬性設(shè)置房屋測繪管理系統(tǒng)圖1 系統(tǒng)總功能需求框圖 Fig.1 systems tota
12、l functional requirements diagram3 系統(tǒng)程序?qū)崿F(xiàn)3.1主界面設(shè)計(jì)本程序采用流行的界面設(shè)計(jì)技術(shù),符合商業(yè)化軟件設(shè)計(jì)的要求。采用菜單、工具欄、狀態(tài)條相結(jié)合的方法,使得用戶能夠在主界面上快速的進(jìn)入所需要的程序模塊,具體的程序運(yùn)行界面如圖2所示。圖2 系統(tǒng)主界面 Fig.2 system interface3.2 圖層控制功能設(shè)計(jì) 圖層控制,最主要的就是能夠新建圖層或者打開現(xiàn)有的圖層。打開圖層以后,能夠選取或者刪除圖層中的元素等。3.3 平面圖屬性設(shè)置功能設(shè)計(jì) 平面圖屬性設(shè)置主要包括層數(shù)設(shè)置、類型設(shè)置、分?jǐn)傇O(shè)置和陽臺、閣樓歸屬設(shè)置4個功能模塊。上圖形繪制完成了,才對各
13、個封閉面進(jìn)行各種設(shè)置,以便以后的面積計(jì)算。在對封閉面進(jìn)行層數(shù)設(shè)置時,點(diǎn)擊選區(qū)域或框選后選中一個或幾個封閉面,如圖3所示。圖3選定封閉面后窗體 Fig.3 after selecting areas form 在“屬性”菜單中選中“層數(shù)設(shè)置”,在其中輸入基層和結(jié)束層數(shù)。完成對剛才選定的封閉的層數(shù)的設(shè)定。 在對封閉面進(jìn)行分?jǐn)傇O(shè)置時,應(yīng)先畫好平面圖,點(diǎn)擊選區(qū)域或框選后選中多個封閉面(一定要有一個封閉面的類型為戶屋),在“屬性”菜單中選中“分?jǐn)傇O(shè)置”,選擇是一次分?jǐn)傔€是多次分?jǐn)?。則對剛才選定的封閉的分?jǐn)傔M(jìn)行了設(shè)定,被分?jǐn)偯娴念愋桶l(fā)生了變化。 對陽臺、閣樓歸屬的設(shè)置和分?jǐn)傇O(shè)置基本相同,不再贅述。 下面就
14、屬性設(shè)置中重要的功能模塊的設(shè)計(jì)和核心代碼實(shí)現(xiàn)進(jìn)行分析。 菜單“屬性 類型設(shè)置”單擊事件代碼,用于進(jìn)行圖層類型設(shè)置,類型設(shè)置界面如圖4所示。圖4 類型設(shè)置窗體 Fig.4 type settings form類型設(shè)置代碼如下:Private Sub mnuProperties_Click() Dim fs As Features Dim f As MapXLib.Feature Dim txtLyrF As New MapXLib.Feature Dim rs As ADODB.Recordset Dim szSQL As String Dim frm As frmSProperies Dim
15、ct As Long Dim ret As Long Dim OldType As Long 老的類型 On Error GoTo ErrHandler Set fs = Map1.Layers.Item(REGION_LAYER).Selection - ct = GetCountFromFeatures(fs) If ct = 1 Then 先從數(shù)據(jù)庫刪除數(shù)據(jù) DeleteFromTBFir REGION_LAYER, f.FeatureKey 將新類型寫入tbFeature szSQL = UPDATE tbFeature & _ SET jchh= & CStr(frm.HuHao)
16、& , & _ ftype= & CStr(frm.Htype) & _ WHERE tbName= & REGION_LAYER & AND ftkey= & f.FeatureKey & MAP_CONN.Execute szSQL 改變Feature的顏色 f.Style.RegionPattern = miPatternSolid Select Case frm.Htype Case 0 未知類型 f.Style.RegionColor = lblWZ.BackColor Case 1 戶室 f.Style.RegionColor = lblHS.BackColor Case 2 陽臺
17、 f.Style.RegionColor = lblYT.BackColor Case 3 封閉陽臺 f.Style.RegionColor = lblFBYT.BackColor Case 4 閣樓 f.Style.RegionColor = lblGL.BackColor Case 5 未分?jǐn)偯?f.Style.RegionColor = lblFT.BackColor Case 6 墻體 f.Style.RegionColor = lblQT.BackColor Case Else End Select f.Update End If - If Not rs Is Nothing The
18、n If rs.State = adStateOpen Then rs.Close End If End If Next close the rs If Not rs Is Nothing Then If rs.State = adStateOpen Then rs.Close End If Set rs = Nothing End If Exit SubErrHandler: Screen.MousePointer = 0 Set rs = Nothing Set frm = Nothing ErrMessageBox mnuProperties_Click(), Me.CaptionEnd
19、 Sub3.4 平面圖面積計(jì)算功能設(shè)計(jì)既然是房屋測量系統(tǒng),那么面積計(jì)算的功能是不可少的,下面介紹面積測量模塊中的重要代碼。 (l)菜單“屬性 面積計(jì)算”單擊事件代碼,用于樓層面積計(jì)算,面積計(jì)算的結(jié)果如圖5所示。菜單單擊事件代碼如下:Private Sub mnuCalcArea_Click() 面積計(jì)算 Call CalculateArea 顯示計(jì)算結(jié)果 Call mnuAreaDisp_ClickEnd Sub其中函數(shù)CalculateArea用于計(jì)算面積,rnnuAreaDispes-Click用于顯示計(jì)算窗體。圖5 面積計(jì)算窗體 Fig.5 calculate area form(2)計(jì)
20、算面積的核心函數(shù)CalculateArea面積計(jì)算Private Sub CalculateArea() Dim frm As Form Dim fs As MapXLib.Features Dim f As MapXLib.Feature Dim szSQL As String Dim szCydy As String 參與分?jǐn)偟膯卧?Dim rs As ADODB.Recordset Dim rs1 As ADODB.Recordset Dim MaxCS As Long 最大層數(shù) Dim MinCS As Long 最小層數(shù) Dim Zjzmj As Double 總建筑面積 Dim Z
21、Gymj As Double 部共用面積 Dim Ztljzmj As Double 總套內(nèi)建筑面積 Dim Zglmj As Double 總閣樓面積 Dim Zftxs As Double 總分?jǐn)傁禂?shù) Screen.MousePointer = 11 Set rs = New ADODB.Recordset Set frm = New frmBusy frm.Message = 正在進(jìn)行面積計(jì)算,請稍候. Load frm frm.Show vbModeless, Me DoEvents On Error GoTo ErrHandler 10:在進(jìn)行面積計(jì)算之前,做一些初始化的工作 MAP
22、_CONN.Execute DELETE FROM tbHS 20:先計(jì)算幾何面積并存入tbFeature中 Set fs = Map1.Layers.Item(REGION_LAYER).AllFeatures For Each f In fs If f.Type = miFeatureTypeRegion Then szSQL = UPDATE tbFeature SET Farea= & CStr(f.Area) & _ WHERE tbName= & REGION_LAYER & & _ AND FtKey= & CStr(f.FeatureKey) & MAP_CONN.Execut
23、e szSQL End If Next 25:將戶室數(shù)據(jù)轉(zhuǎn)入tbHS中 MAP_CONN.Execute INSERT INTO tbHS SELECT * FROM tbFeature & _ WHERE tbFeature.tbName= & REGION_LAYER & & _ AND tbFeature.FType=1 30:計(jì)算戶室面積(實(shí)用面積),包括陽臺和封閉陽臺 30.10#:將戶室的幾何面積存入tbArea中 MAP_CONN.Execute DELETE FROM tbArea MAP_CONN.Execute INSERT INTO tbArea(tbName,FtKey
24、,CH,Harea) & _ SELECT tbHS.tbName,tbHS.FtKey, & _ (CSTR(jc) & - & Cstr(JC+CS-1) as CH, & _ tbHS.Farea FROM tbHS 30.20#:計(jì)算陽臺的幾何面積并加到tbArea.Harea中去 rs.Open SELECT * FROM qryYT, MAP_CONN, adOpenKeyset, adLockPessimistic, adCmdText Do While Not rs.EOF MAP_CONN.Execute UPDATE tbArea & _ Set tbArea.Harea
25、= tbArea.Harea + & CStr(rs!YTArea) & , & _ tbArea.YT=tbArea.YT+ & CStr(rs!YTArea) & _ Where tbArea.tbName = & CStr(rs!tbName) & And & _ tbArea.FtKey = & CStr(rs!FTKey) & rs.MoveNext Loop If Not rs Is Nothing Then If rs.State = adStateOpen Then rs.Close End If End If 30.30#:計(jì)算封閉陽臺的幾何面積并加到tbArea.Harea
26、中去 rs.Open SELECT * FROM qryFBYT, MAP_CONN, adOpenKeyset, adLockPessimistic, adCmdText Do While Not rs.EOF MAP_CONN.Execute UPDATE tbArea & _ Set tbArea.Harea = tbArea.Harea + & CStr(rs!YTArea) & , & _ tbArea.YT=tbArea.YT+ & CStr(rs!YTArea) & _ Where tbArea.tbName = & CStr( & rs!tbName) & And & _ tb
27、Area.FtKey = & CStr( & rs!FTKey) & rs.MoveNext Loop If Not rs Is Nothing Then If rs.State = adStateOpen Then rs.Close End If End If 40:計(jì)算一次分?jǐn)傁禂?shù)及面積 rs.Open SELECT tbName,FtKey,Sum(YCFTMJ) as FTMJ FROM qryHSYCFT GROUP BY tbName,FtKey, MAP_CONN, adOpenKeyset, adLockPessimistic, adCmdText Do While Not r
28、s.EOF MAP_CONN.Execute UPDATE tbArea & _ SET tbArea.ycftxs= & CStr(rs!YCFTXS) & , & _ TbArea.YCFTMJ = & CStr(rs!YCFTMJ) & _ WHERE tbArea.tbName= & CStr(rs!tbName) & AND & _ tbArea.FTKey = & CStr(rs!FtKey) & MAP_CONN.Execute UPDATE tbArea & _ SET tbArea.YCFTMJ = & CStr(rs!FTMJ) & _ WHERE tbArea.tbNam
29、e= & CStr(rs!tbName) & AND & _ tbArea.FTKey = & CStr(rs!FTKey) & rs.MoveNext Loop If Not rs Is Nothing Then If rs.State = adStateOpen Then rs.Close End If End If 50:計(jì)算多次分?jǐn)傁禂?shù)及面積 rs.Open SELECT tbName,FtKey,Sum(DCFTMJ) as FTMJ FROM qryHSDCFT GROUP BY tbName,FtKey, MAP_CONN, adOpenKeyset, adLockPessimi
30、stic, adCmdText Do While Not rs.EOF MAP_CONN.Execute UPDATE tbArea & _ SET tbArea.dcftmj = & CStr(rs!FTMJ) & _ WHERE tbArea.tbName= & CStr(rs!tbName) & AND & _ tbArea.FTKey = & CStr(rs!FTKey) & rs.MoveNext Loop If Not rs Is Nothing Then If rs.State = adStateOpen Then rs.Close End If End If 55:計(jì)算墻體分?jǐn)?/p>
31、系數(shù)及面積(已經(jīng)納入一次分?jǐn)傆?jì)算中去了) 60:閣樓面積 rs.Open SELECT * FROM qryGL, MAP_CONN, adOpenKeyset, adLockPessimistic, adCmdText Do While Not rs.EOF MAP_CONN.Execute UPDATE tbArea & _ SET tbArea.GLmj = & CStr(rs!GLArea) & & _ WHERE tbArea.tbName= & CStr(rs!tbName) & AND & _ tbArea.ftKey = & CStr(rs!FTKey) & rs.MoveNe
32、xt Loop If Not rs Is Nothing Then If rs.State = adStateOpen Then rs.Close End If End If 70:計(jì)算建筑面積 MAP_CONN.Execute UPDATE tbArea & _ SET jzmj = Harea + ycftmj + dcftmj + glmj 75:處理報表數(shù)據(jù) 75.10#:清空分?jǐn)偯娣e表tbFTarea MAP_CONN.Execute DELETE FROM tbFTarea 75.20#:插入一次分?jǐn)偯婷娣e szSQL = INSERT INTO tbFTarea ( FtKey,
33、 CH, Jhmj, zmj, HSzmj, ftlx ) & _ SELECT tbFeature.FtKey AS Ftkey, & _ (CStr(tbFeature.Jc) & - & CStr(tbFeature.JC + tbFeature.CS - 1) AS CH, & _ tbFeature.Farea AS Jhmj, (tbFeature.Farea * tbFeature.CS) AS zmj, & _ qryYCFTZMJ.YCZMJ AS HSzmj, 一次分?jǐn)?AS Ftlx & _ From tbFeature, qryYCFTZMJ & _ WHERE qry
34、YCFTZMJ.tbName=tbFeature.tbName AND & _ qryYCFTZMJ.FtKey=tbFeature.FtKey MAP_CONN.Execute szSQL 75.30#:插入多次分?jǐn)偯娣e szSQL = INSERT INTO tbFTarea(FtKey,CH,Jhmj,zmj,HSzmj,Ftlx) & _ SELECT tbFeature.FtKey AS Ftkey, & _ (CStr(tbFeature.Jc) & - & CStr(tbFeature.JC + tbFeature.CS - 1) AS CH, & _ tbFeature.Far
35、ea AS Jhmj, (tbFeature.Farea * tbFeature.CS) AS zmj, & _ qryDCFTZMJ.DCZMJ, 多次分?jǐn)?AS Ftlx & _ From qryDCFTZMJ, tbFeature & _ WHERE qryDCFTZMJ.tbName=tbFeature.tbName AND & _ qryDCFTZMJ.FtKey=tbFeature.FtKey MAP_CONN.Execute szSQL 75.40#:更新分?jǐn)傁禂?shù)、參與分?jǐn)偟膯卧?分?jǐn)傁禂?shù) MAP_CONN.Execute UPDATE tbFTarea SET Ftxs=zmj
36、/HSzmj 參與分?jǐn)偟膯卧?rs.Open SELECT FtKey,Cydy FROM tbFTarea, MAP_CONN, adOpenKeyset, adLockPessimistic, adCmdText Set rs1 = New ADODB.Recordset Do While Not rs.EOF szSQL = SELECT (A & H_FtKey) as HFK FROM tbFir WHERE F_TbName= szSQL = szSQL & REGION_LAYER & AND F_FtKey= & & rs(FtKey) & rs1.Open szSQL, MA
37、P_CONN, adOpenKeyset, adLockPessimistic, adCmdText Set rs1 = MAP_CONN.Execute(szSQL) szCydy = Do While Not rs1.EOF szCydy = szCydy & & rs1(HFK) & , rs1.MoveNext Loop If Right(szCydy, 1) = , Then szCydy = Left(szCydy, Len(szCydy) - 1) End If update the recordset rs.Update Array(Cydy), Array(szCydy) -
38、 If Not rs1 Is Nothing Then If rs1.State = adStateOpen Then rs1.Close End If End If - rs.MoveNext Loop release the pointer If Not rs1 Is Nothing Then If rs1.State = adStateOpen Then rs1.Close End If Set rs1 = Nothing End If 77:統(tǒng)計(jì) 77.10#:計(jì)算層數(shù) Set rs = MAP_CONN.Execute(SELECT Max(jc+cs-1) as MaxC FROM
39、 tbFeature WHERE tbName= & REGION_LAYER & ) If Not rs.EOF Then MaxCS = rs(MaxC) End If If Not rs Is Nothing Then If rs.State = adStateOpen Then rs.Close End If End If Set rs = MAP_CONN.Execute(SELECT Min(jc) as MinC FROM tbFeature WHERE tbName= & REGION_LAYER & ) If Not rs.EOF Then MinCS = rs(MinC)
40、End If If Not rs Is Nothing Then If rs.State = adStateOpen Then rs.Close End If End If If MinCS 0 Then MaxCS = MaxCS - MinCS End If 77.20#: Dim Zjzmj As Double 總建筑面積 Dim ZGymj As Double 總共用面積 Dim Ztljzmj As Double 總套內(nèi)建筑面積 Dim Zglmj As Double 總閣樓面積 Dim Zftxs As Double 總分?jǐn)傁禂?shù) 總共用面積 Set rs = MAP_CONN.Ex
41、ecute(SELECT Sum(Zmj) as GYMJ FROM rptFT) If Not rs.EOF Then If Not IsNull(rs(GYMJ) Then ZGymj = rs(GYMJ) End If End If If Not rs Is Nothing Then If rs.State = adStateOpen Then rs.Close End If End If 總套內(nèi)建筑面積 szSQL = SELECT Sum(tbArea.Harea*tbFeature.cs) as TLMJ FROM tbArea,tbFeature & _ WHERE tbArea
42、.Tbname=tbFeature.tbName AND tbArea.FtKey=tbFeature.FtKey Set rs = MAP_CONN.Execute(szSQL) If Not rs.EOF Then If Not IsNull(rs(TLMJ) Then Ztljzmj = rs(TLMJ) End If End If If Not rs Is Nothing Then If rs.State = adStateOpen Then rs.Close End If End If 總建筑面積 Zjzmj = ZGymj + Ztljzmj 總閣樓面積 szSQL = SELEC
43、T Sum(cs*farea) as GLMJ FROM tbFeature WHERE tbName= & REGION_LAYER & AND Ftype=4 Set rs = MAP_CONN.Execute(szSQL) If Not rs.EOF Then If Not IsNull(rs(GLMJ) Then Zglmj = 0 + rs(GLMJ) End If End If If Not rs Is Nothing Then If rs.State = adStateOpen Then rs.Close End If End If 總分?jǐn)傁禂?shù) If Ztljzmj 0 Then
44、 Zftxs = ZGymj / Ztljzmj End If 寫入數(shù)據(jù)庫 szSQL = UPDATE tbTable SET Cs= & CStr(MaxCS) & , & _ Zjzmj= & CStr(Zjzmj) & , & _ Zgymj= & CStr(ZGymj) & , & _ Ztljzmj= & CStr(Ztljzmj) & , & _ Zglmj= & CStr(Zglmj) & , & _ Zftxs= & CStr(Zftxs) & _ WHERE LyrName= & REGION_LAYER & MAP_CONN.Execute szSQL 80:計(jì)算結(jié)束,顯
45、示計(jì)算結(jié)果 Screen.MousePointer = 0 If Not rs Is Nothing Then If rs.State = adStateOpen Then rs.Close End If Set rs = Nothing End If Unload frm - Exit SubErrHandler: Screen.MousePointer = 0 If Not frm Is Nothing Then Unload frm End If - If Not rs Is Nothing Then If rs.State = adStateOpen Then rs.Close End
46、 If Set rs = Nothing End If - If Not rs1 Is Nothing Then If rs1.State = adStateOpen Then rs1.Close End If Set rs1 = Nothing End If ErrMessageBox CalculateArea():面積計(jì)算出錯!, Me.CaptionEnd Sub以上計(jì)算函數(shù),主要是從數(shù)據(jù)庫中讀取各種數(shù)據(jù),然后進(jìn)行各種統(tǒng)計(jì)計(jì)算。 在計(jì)算面積的同時。還可以打印。在圖5中,單擊“打印預(yù)覽”按鈕,可以進(jìn)行預(yù)覽并打印,如圖6所示。圖6 打印預(yù)覽窗體 Fig.6 print preview fo
47、rm3.5 系統(tǒng)輔助功能設(shè)計(jì)“系統(tǒng)輔助”模塊主要完成圖形轉(zhuǎn)換、合并等操作,輔助平面圖繪制人員進(jìn)行圖形的繪制。系統(tǒng)輔助功能包括區(qū)域轉(zhuǎn)換、區(qū)域合并、三角形角度計(jì)算和生成墻體。三角形角度計(jì)算的窗體frmTriangle如圖7所示,可以計(jì)算三角形的角度。用戶只需要在3個文本框中輸入三角形三條邊的長度,就可以計(jì)算出三條邊之間的角度,可以在窗體中畫出三角形。圖7 三角形角度計(jì)算窗體 Fig.7 triangle angle calculation form可以通過選擇一定的區(qū)域,然后將其變成墻體。生成墻體可以實(shí)現(xiàn)這個功能。例如墻體厚度設(shè)定為13米,墻體設(shè)定前后,圖層的外觀分別如圖8和圖9所示。 圖8 設(shè)定墻體前窗體 圖9 設(shè)定墻體后窗體Fig.8 before setting wall form Fig.9 after setting wall form3.6 系統(tǒng)維護(hù)功能設(shè)計(jì)在這個模塊中,包括系統(tǒng)日志、數(shù)據(jù)庫整理、數(shù)據(jù)庫備份、數(shù)據(jù)庫還原4個方面。系統(tǒng)維護(hù)中的功能模塊用來保障數(shù)據(jù)庫和系統(tǒng)安全性。系統(tǒng)日志的窗體如圖10所示。圖10 系統(tǒng)日志窗體 Fig.10 system log form4 結(jié)語本文提出的房屋測繪管理系統(tǒng)是基于MAPX
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 怎樣管理好孩子的情緒課件
- 動量和能量的相對論變換由四維動量的洛侖茲變換-南昌大學(xué)應(yīng)用物理
- 分支桿菌屬與放線菌屬-課件
- 認(rèn)識圖形-復(fù)習(xí)ppt課件
- 《岳飛練字》課件
- 內(nèi)戰(zhàn)烽火課件分析
- 55焊接裂紋-層狀撕裂
- 1在山的那邊7 中學(xué)七年級語文上冊課件下載制作模板
- 第五講_原函數(shù)與不定積分_柯西積分公式_解析函數(shù)的高階導(dǎo)數(shù)課件
- 1222用坐標(biāo)表示平移課件(教學(xué))
- 生產(chǎn)現(xiàn)場標(biāo)識管理課件
- 人教版七年級下冊英語Unit6_
- 家紡行業(yè)創(chuàng)業(yè)計(jì)劃書課件
- 項(xiàng)目七項(xiàng)目管理
- 小麥種子的貯藏方法