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

        ?

        基于AutoCAD VBA二次開發(fā)的大比例尺地形圖查詢系統(tǒng)

        2010-04-18 10:36:12黃毓李文柱
        城市勘測 2010年2期
        關(guān)鍵詞:圖塊圖幅韶關(guān)市

        黃毓,李文柱

        (韶關(guān)市測繪院,廣東韶關(guān) 512000)

        基于AutoCAD VBA二次開發(fā)的大比例尺地形圖查詢系統(tǒng)

        黃毓?,李文柱

        (韶關(guān)市測繪院,廣東韶關(guān) 512000)

        介紹在AutoCAD環(huán)境下,利用VBA二次開發(fā)工具實(shí)現(xiàn)大比例尺地形圖的快速查詢,給尚未建立地理信息系統(tǒng)的單位進(jìn)行地形圖的快捷、方便的調(diào)用提供了工具。

        大比例尺地形圖;查詢;VBA;AutoCAD

        1 引 言

        大比例尺地形圖是城市規(guī)劃、城市建設(shè)不可缺少的基礎(chǔ)資料。我院承擔(dān)向社會(huì)提供各種地形圖的服務(wù),由于各種客觀原因,在對(duì)外供圖服務(wù)窗口,顧客多數(shù)不熟悉測繪知識(shí),很難準(zhǔn)確的報(bào)出所需地形圖相應(yīng)的圖幅號(hào),所以經(jīng)常需要我們按各種條件,如按坐標(biāo)或地名查找相應(yīng)圖幅號(hào)。早期,對(duì)地形圖的查找只能靠對(duì)地形圖非常熟悉的作業(yè)人員憑借經(jīng)驗(yàn)完成,或按照分幅接圖表來手工查詢,這些查詢方法非常不便,且效率很低,影響了售圖服務(wù)整個(gè)流程進(jìn)展,服務(wù)效率有待提高。

        我院一直使用AutoCAD軟件平臺(tái),本文利用AutoCAD自帶的VBA(Visual Basic For Application),在AutoCAD中進(jìn)行二次開發(fā),實(shí)現(xiàn)了大比例尺地形圖快速查詢、定位和顯示,極大地提高了工作效率。

        2 程序思路及算法

        2.1 地圖查詢思路

        (1)dwg文件存儲(chǔ)方式

        我院的大比例尺地形圖都是采用dwg文件按圖幅命名進(jìn)行圖形的存儲(chǔ),為地圖查詢提供了有利條件。

        (2)圖幅號(hào)計(jì)算

        我院大比例尺地形圖一直采用正方形 50 cm× 50 cm標(biāo)準(zhǔn)分幅,圖幅號(hào)計(jì)算規(guī)律如圖1所示。

        (3)結(jié)合dwg文件的命名方式,分析圖幅號(hào)的計(jì)算規(guī)律,得出圖幅號(hào)計(jì)算公式。

        (4)地圖查詢方式

        可按輸入圖幅號(hào)及在圖上進(jìn)行范圍框選進(jìn)行查詢。利用插入圖塊的方式將符合要求的圖幅插入到當(dāng)前視圖中。

        設(shè)計(jì)方便進(jìn)行范圍查詢的底圖,如韶關(guān)市道路圖作為索引圖,利用插入圖塊的方式自動(dòng)將底圖顯示于屏幕之中,并且提供刪除底圖功能。

        圖1 圖幅分幅表

        2.2 編程實(shí)現(xiàn)

        在VBA二次開發(fā)環(huán)境中,利用模塊來定義各種功能函數(shù),主要內(nèi)容如下:

        首先定義1∶500圖幅號(hào)計(jì)算功能函數(shù)。

        Function strTFH500(ByVal x0 As Double,ByVal y0 As Double)′計(jì)算圖幅號(hào)

        Dim xa As String,ya As String,str As String

        Dim txt2000 As String,txt1000 As String,txt500 As String

        If Fix(x0/1000)Mod 2=0 Then′判斷x是偶數(shù)

        xa=Fix(x0/1000)

        Else ′若x是奇數(shù)

        xa=Fix(x0/1000)-1

        End If

        If Fix(y0/1000)Mod 2=0 Then

        ya=Fix(y0/1000)

        Else

        ya=Fix(y0/1000)-1

        End If

        Dim tp1 As Double,tp2 As Double

        Dim x1,y1,x2,y2,x3,y3 As Double

        tp1=xa?1000

        tp2=y(tǒng)a?1000

        ′計(jì)算1:2000的圖號(hào)

        x1=x0-tp1

        y1=y(tǒng)0-tp2

        txt2000=Count(x1,y1)

        ′計(jì)算1:1000的圖號(hào)

        x2=x0-Fix(x0/1000)?1000

        y2=y(tǒng)0-Fix(y0/1000)?1000

        txt1000=Count(x2?2,y2?2)

        x3=x0-Fix(x0/1000)?1000

        y3=y(tǒng)0-Fix(y0/1000)?1000

        If x3〉500 Then

        x3=x3-500

        End If

        If y3〉500 Then

        y3=y(tǒng)3-500

        End If

        ′計(jì)算1:500的圖號(hào)

        txt500=Count(x3?4,y3?4)

        strTFH500=xa&ya&"-"&txt2000&txt1000&txt500

        End Function

        Function Count(ByVal a1 As Double,ByVal a2 As Double)

        If a1〉1000 And a2<1000 Then

        Count=1

        ElseIf a1〉1000 And a2〉1000 Then

        Count=2

        ElseIf a1<1000 And a2<1000 Then

        Count=3

        ElseIf a1<1000 And a2〉1000 Then

        Count=4

        End If

        End Function

        再定義進(jìn)行框選時(shí)的左下角x、y坐標(biāo)

        Function leftXY(ByVal n0 As Double)′計(jì)算左下角x、y坐標(biāo)

        Dim xa As String,ya As String,str As String

        Dim txt2000 As String,txt1000 As String,txt500 As String

        xa=Fix(n0/1000)

        Dim x1,y1,x2,y2,x3,y3 As Double

        y1=xa?1000

        x1=n0-y1

        ya=cnt(x1)

        If ya=0 Then

        leftXY=xa?1000

        Else

        leftXY=xa&ya

        End If

        End Function

        Function cnt(ByVal x1 As Double)

        If x1〉=0 And x1<250 Then

        cnt=0

        ElseIf x1〉=250 And x1<500 Then

        cnt=250

        ElseIf x1〉=500 And x1<750 Then

        cnt=500

        ElseIf x1〉=750 And x1<1000 Then

        cnt=750

        End If

        End Function

        根據(jù)實(shí)現(xiàn)思路,設(shè)計(jì)查詢界面如圖2所示。

        圖2 查詢界面

        其中,“索引圖上點(diǎn)取范圍”,利用GetPoint和Get-Corner方法來獲取屏幕框選的兩點(diǎn)坐標(biāo),并進(jìn)行計(jì)算獲得左下角和右上角坐標(biāo),再通過自定義算法來計(jì)算左下角坐標(biāo)和右上角坐標(biāo)范圍所包含的圖幅號(hào),由于篇幅有限,代碼部分省略。

        顯示地圖采用插入圖塊的方式來實(shí)現(xiàn),主要插入圖塊代碼如下:

        Set BlkRefObj=ThisDrawing.ModelSpace.InsertBlock(Instpnt,filename,1#,1#,1#,0#)

        3 系統(tǒng)界面及其效果

        程序編好后,就是加載和運(yùn)用VBA程序了。首先新建一個(gè)文本文件,在該文件中用LISP語言定義執(zhí)行VBA宏的命令,用LSP后綴名保存該文件。在Auto-CAD啟動(dòng)后,在命令行輸入“vbaload”或”appload”命令來加載VBA工程文件和LSP文件。為了避免每次啟動(dòng)CAD都要手動(dòng)加載的麻煩,可在執(zhí)行appload命令后,在啟動(dòng)組的“內(nèi)容”按鈕中加載。程序加載完成后,就可以進(jìn)行地形圖查詢了。

        (1)按地名、道路名查詢。先調(diào)出韶關(guān)市道路圖作為索引圖,然后在索引圖上框選查詢范圍,相應(yīng)的地形圖就能快速查詢、顯示出來,如圖3所示。

        (2)根據(jù)給定坐標(biāo)或紅線查詢,如圖4所示。

        圖3 按地面、道路名查詢

        圖4 按紅線查詢

        4 結(jié) 語

        本程序?qū)崿F(xiàn)了大比例尺地形圖快速查詢、定位和顯示,在實(shí)際中方便了客戶的查詢,提高了工作效率。但僅具有查詢功能,不具有地形圖數(shù)據(jù)庫管理功能,作為個(gè)人開發(fā)的程序無法與地理信息系統(tǒng)(GIS)為基礎(chǔ),圖庫管理系統(tǒng)相比擬,只能作為從手工管理地形圖到地理信息系統(tǒng)建立的一種過渡。

        [1]李鳳華.AutoCAD2002/2000 VBA開發(fā)指南[M].清華大學(xué)出版社,2001

        [2]謝玉周,王振中,杜耀剛.在AutoCAD中實(shí)現(xiàn)地形圖圖庫管理[J].測繪通報(bào),2006(7):55~57

        [3]林遠(yuǎn)清.基于VB6.0的地形圖管理信息系統(tǒng)設(shè)計(jì)與開發(fā)[J].城市勘測,2008(3):20~22

        Large-Scale Topographic Map Inquiry System Based on Redevelop AutoCAD VBA

        Huang Yu,Li WenZhu
        (Shaoguan Institute of Surveying and Mapping,Shaoguan 512000,China)

        This article describes on the AutoCAD environment,how to achive quickly search Large-scale Topographic Map used VBA Secondary Development Tools,and offer tools to conveniently export topographic map for some units which geographic information system still unestablished.

        Large-scale Topographic Map;Search;VBA;AutoCAD

        1672-8262(2010)02-150-03

        P209

        B

        2009—08—30

        黃毓(1978—),男,工程師,主要從事城市測繪技術(shù)管理工作。

        猜你喜歡
        圖塊圖幅韶關(guān)市
        AutoCAD中圖塊命令的應(yīng)用分析
        區(qū)域土壤重金屬污染與多元主體治理——以韶關(guān)市董塘鎮(zhèn)為例
        優(yōu)化A算法搜索連連看圖塊配對(duì)和消除次序
        生態(tài)文明視野下中等城市新型工業(yè)化道路研究——基于韶關(guān)市的實(shí)證研究
        基于EXCEL的地形圖圖幅號(hào)轉(zhuǎn)換查詢方法
        廣東省首個(gè)“關(guān)心下一代教育示范基地”落戶韶關(guān)市乳源瑤族自治縣
        中國火炬(2015年4期)2015-07-31 17:39:27
        茶壺難題
        基于ArcMap的圖幅接合表快速生成方法研究
        地形圖圖幅編號(hào)規(guī)則及實(shí)現(xiàn)
        城市勘測(2014年4期)2014-06-24 14:33:27
        基于Bing Maps的地形圖圖幅編號(hào)的網(wǎng)絡(luò)可視化查詢
        中文字幕在线乱码亚洲| 亚洲人成人影院在线观看| 亚洲中文字幕无码二区在线| 成年视频网站在线观看777| 日韩精品成人一区二区三区| 中国少妇久久一区二区三区| 久久偷看各类wc女厕嘘嘘偷窃| 97久久人人超碰超碰窝窝| 国产午夜精品理论片| 日本一区二区三区在线播放| 狠狠综合久久av一区二区三区| 中文字幕一区二区人妻秘书| 免费视频成人片在线观看| 内射精品无码中文字幕| 久久99久久99精品免观看不卡| 性色av一区二区三区密臀av| 激情五月我也去也色婷婷| 国产黄大片在线观看| 精品久久久久久777米琪桃花 | 欧美村妇激情内射| a人片在线观看苍苍影院| 久久99精品中文字幕在| 国产精品天堂在线观看 | 久久婷婷国产五月综合色| 成人做爰黄片视频蘑菇视频| 欧美人与善在线com| 国产熟妇人妻精品一区二区动漫| 91精品国产免费久久久久久青草 | 最近中文字幕精品在线| 男女肉粗暴进来动态图| 久久久久亚洲av片无码v| 四虎精品国产一区二区三区| 日本大片在线一区二区三区| 国产乱理伦在线观看美腿丝袜| 久久精品国产亚洲av无码娇色 | 久久无码潮喷a片无码高潮| 色先锋av资源中文字幕| 国产精品中文第一字幕| 五月综合丁香婷婷久久| 无码少妇丰满熟妇一区二区| 亚洲中文字幕无码爆乳|