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

        ?

        基于VB.NET的AutoCAD實(shí)時(shí)加載正射影像方法研究

        2018-11-01 03:15:52郭雷徐彥中焦明東
        城市勘測(cè) 2018年5期
        關(guān)鍵詞:數(shù)據(jù)文件射影鼠標(biāo)

        郭雷,徐彥中,焦明東

        (1.濟(jì)南市勘察測(cè)繪研究院,山東 濟(jì)南 250013; 2.山東省城市空間信息工程技術(shù)研究中心,山東 濟(jì)南 250013)

        1 引 言

        數(shù)字正射影像(DOM)數(shù)據(jù)目前廣泛應(yīng)用在測(cè)繪地理信息行業(yè)各部門(mén),同時(shí)具有地圖幾何精度和影像特征,可以通過(guò)ArcGIS等各種專(zhuān)業(yè)應(yīng)用軟件自動(dòng)加載,進(jìn)行各種分析應(yīng)用。當(dāng)前測(cè)繪行業(yè)廣泛使用基于AutoCAD軟件開(kāi)發(fā)的地形圖生產(chǎn)平臺(tái),其成果為標(biāo)準(zhǔn)格式的DWG數(shù)據(jù)。有時(shí)也需要利用正射影像數(shù)據(jù)作為地形圖的底圖數(shù)據(jù),來(lái)進(jìn)行各種設(shè)計(jì)和分析,但是AutoCAD軟件本身卻沒(méi)有自動(dòng)加載正射影像數(shù)據(jù)的功能。

        為解決這一問(wèn)題,本文擬使用VB.NET程序設(shè)計(jì)語(yǔ)言結(jié)合AutoCAD 2010軟件進(jìn)行二次開(kāi)發(fā),設(shè)計(jì)一款獨(dú)立運(yùn)行的應(yīng)用程序,通過(guò)人機(jī)交互的方式,加載正射影像數(shù)據(jù)到AutoCAD的DWG圖形中,并確保坐標(biāo)正確。程序開(kāi)發(fā)環(huán)境使用Microsoft Visual Studio 2008集成開(kāi)發(fā)軟件,具有功能強(qiáng)大、界面友好、編譯好的應(yīng)用程序可移植性強(qiáng)等優(yōu)點(diǎn),用其開(kāi)發(fā)的獨(dú)立程序可以很流暢地運(yùn)行在Windows XP、Win 7等主流操作系統(tǒng)中,比較切合用戶的使用體驗(yàn)。

        2 程序設(shè)計(jì)思路

        2.1 正射影像數(shù)據(jù)坐標(biāo)文件分析

        一般一幅標(biāo)準(zhǔn)分幅的數(shù)字正射影像成果,除了一個(gè)TIFF格式的影像文件,還應(yīng)有一個(gè)記錄影像定位坐標(biāo)信息的文本文件。本文采用的數(shù)據(jù)為 1∶5 000比例尺標(biāo)準(zhǔn)分幅數(shù)字正射影像成果,經(jīng)坐標(biāo)轉(zhuǎn)換獲得2000國(guó)家大地坐標(biāo)系的坐標(biāo)信息文件,其坐標(biāo)信息文件的主要內(nèi)容如圖1所示:

        圖1 正射影像坐標(biāo)信息文件格式

        不同于一般正射影像成果附帶的TFW格式坐標(biāo)信息文件,本文所使用的坐標(biāo)信息文件已經(jīng)明確指定了數(shù)字正射影像圖的左下角X、Y坐標(biāo),右上角X、Y坐標(biāo),實(shí)際寬度和實(shí)際高度,各參數(shù)均以米為單位。需要注意的是X和Y為數(shù)學(xué)坐標(biāo)(X為東方向,Y為北方向)。

        程序設(shè)計(jì)中加載數(shù)字正射影像的函數(shù)AddRaster使用方法如下所示:

        RetVal = object.AddRaster(ImageFileName,InsertionPoint,ScaleFactor,RotationAngle)

        需要正確指定數(shù)字正射影像文件名(ImageFileName)、左下角插入點(diǎn)三維坐標(biāo)(InsertionPoint)、縮放比例(ScaleFactor)、旋轉(zhuǎn)角度(RotationAngle)等參數(shù),然后才能使用此函數(shù)插入影像數(shù)據(jù)。程序設(shè)計(jì)的思路即轉(zhuǎn)換為如何通過(guò)坐標(biāo)信息文件獲取加載影像數(shù)據(jù)所需要的各種參數(shù)。

        因?yàn)锳ddRaster函數(shù)是利用影像的左下角插入點(diǎn)縱橫坐標(biāo)和縮放比例數(shù)值來(lái)確定影像的右上角縱橫坐標(biāo),所以在保持寬高比不變的情況下,縮放比例數(shù)值即為數(shù)字正射影像數(shù)據(jù)在DWG圖形中的橫向?qū)嶋H寬度,也就是本文使用的坐標(biāo)信息文件中的實(shí)際寬度參數(shù)。由于僅改變DWG地形圖當(dāng)前比例尺參數(shù),并不會(huì)相應(yīng)改變相關(guān)地物要素的實(shí)際坐標(biāo)位置,所以通過(guò)這種方法利用坐標(biāo)信息插入影像數(shù)據(jù)到地形圖以后,總是能夠正確插入到實(shí)際的地理坐標(biāo)位置。也就是說(shuō)這種方法與地形圖的當(dāng)前比例尺沒(méi)有關(guān)系,可以適用于任意比例尺的地形圖數(shù)據(jù)。

        2.2 程序界面及功能設(shè)計(jì)

        根據(jù)實(shí)際需要,設(shè)計(jì)程序運(yùn)行界面如圖2所示。

        圖2 程序運(yùn)行界面

        程序主要包括打開(kāi)地形圖文件,指定正射影像數(shù)據(jù)存放位置,影像插入位置調(diào)整,插入影像文件到地形圖中等功能。

        (1)打開(kāi)地形圖文件:自動(dòng)啟動(dòng)AutoCAD軟件,并打開(kāi)需要加載正射影像數(shù)據(jù)的DWG格式地形圖文件。前提條件是地形圖數(shù)據(jù)和正射影像數(shù)據(jù)的平面坐標(biāo)系統(tǒng)應(yīng)一致,本例中為2000國(guó)家大地坐標(biāo)系。

        (2)指定正射影像數(shù)據(jù)存放位置:填寫(xiě)正射影像數(shù)據(jù)在計(jì)算機(jī)中的存儲(chǔ)路徑,作為AutoCAD加載正射影像的路徑參數(shù)。

        (3)影像插入位置調(diào)整:根據(jù)影像首次插入時(shí)的位置偏差,進(jìn)行平移微調(diào),確保下次插入同一影像時(shí)定位誤差最小。

        (4)插入影像文件到地形圖:用于在AutoCAD圖形界面獲取當(dāng)前鼠標(biāo)點(diǎn)擊位置的坐標(biāo)信息,并與指定位置的正射影像數(shù)據(jù)進(jìn)行后臺(tái)匹配,實(shí)時(shí)快速加載影像到圖形中疊加顯示。

        3 關(guān)鍵方法實(shí)現(xiàn)

        3.1 打開(kāi)地形圖

        獨(dú)立運(yùn)行的程序需要通過(guò)創(chuàng)建對(duì)象的方法啟動(dòng)當(dāng)前計(jì)算機(jī)中已經(jīng)安裝的AutoCAD軟件,根據(jù)當(dāng)初程序設(shè)計(jì)時(shí)引用的AutoCAD類(lèi)型庫(kù)文件版本,決定將要啟動(dòng)的AutoCAD軟件版本。隨著計(jì)算機(jī)軟硬件性能的提高,64位操作系統(tǒng)所占比重已經(jīng)越來(lái)越大,相應(yīng)地AutoCAD軟件也有32位與64位兩種,需要根據(jù)操作系統(tǒng)的版本選擇安裝對(duì)應(yīng)的AutoCAD軟件。經(jīng)測(cè)試,無(wú)論是32位還是64位,AutoCAD 2010軟件安裝到計(jì)算機(jī)以后,所創(chuàng)建的類(lèi)型庫(kù)文件均為acax18enu.tlb和axdb18enu.tlb,它們一般位于c:program filescommon filesautodesk shared目錄中。要通過(guò)Microsoft Visual Studio.NET完全訪問(wèn)AutoCAD Automation對(duì)象,需要?jiǎng)?chuàng)建acax18enu.tlb和axdb18enu.tlb的引用。

        這些引用提供了以下主要交互操作部件:Autodesk.AutoCAD.Interop.dll和Autodesk.AutoCAD.Interop.Common.dll。Interop程序集位于全局程序集緩存中,它們會(huì)將Automation對(duì)象映射到.NET的對(duì)等對(duì)象。引用了類(lèi)型庫(kù)之后,就可以在Microsoft Visual Studio .NET中聲明基于AutoCAD的變量,進(jìn)而利用它們完成需要的功能和運(yùn)算。

        單擊打開(kāi)地形圖按鈕,首先啟動(dòng)AutoCAD軟件,并打開(kāi)指定的地形圖dwg文件。打開(kāi)文件的主要代碼如下:

        Dim cadApp1 As Autodesk.AutoCAD.Interop.AcadApplication

        Dim docCAD1 As Autodesk.AutoCAD.Interop.AcadDocument

        Dim filePath As String

        Dim fileOpen = False

        Dim setFilePath = False

        ……

        cadApp1 = New Autodesk.AutoCAD.Interop.AcadApplication

        docCAD1 = cadApp1.Documents.Open(OpenFileDialog1.FileName)

        3.2 指定正射影像數(shù)據(jù)文件存放位置

        通過(guò)文件瀏覽對(duì)話框控件(FolderBrowserDialog)或粘貼輸入的方式指定正射影像數(shù)據(jù)文件的存放位置。需要首先添加此控件到MicroSoft Visual Studio 2008的窗體設(shè)計(jì)器,然后就可以在程序代碼中引用此控件進(jìn)行處理,獲取指定路徑信息作為AutoCAD中插入正射影像的路徑參數(shù)。

        3.3 影像插入位置調(diào)整

        正射影像數(shù)據(jù)根據(jù)坐標(biāo)信息文件加載到AutoCAD圖形中以后,可能與已有正確坐標(biāo)的地形圖數(shù)據(jù)位置不是完全吻合,例如房角、道路等整體向同一方向偏移一個(gè)距離,導(dǎo)致定位存在偏差,不利于地物的判讀。此時(shí)就需要根據(jù)實(shí)際情況進(jìn)行插入點(diǎn)的微調(diào),通過(guò)指定東移和北移參數(shù)進(jìn)行調(diào)整,將這兩個(gè)偏移分量數(shù)據(jù)分別加到正射影像插入定位點(diǎn)的相應(yīng)坐標(biāo)分量。在刪除先前插入的正射影像數(shù)據(jù)后,使用新的偏移參數(shù)重新執(zhí)行一次插入操作,就可確保插入位置正確。

        為簡(jiǎn)化使用,規(guī)定輸入正數(shù)代表東移和北移,輸入負(fù)數(shù)代表西移和南移。當(dāng)然也可以根據(jù)實(shí)際測(cè)量結(jié)果只輸入其中一個(gè)分量數(shù)據(jù),默認(rèn)值0表示不作任何移動(dòng)。這樣的處理方法增加了程序使用的靈活性,可以手工提前糾正偏差太大的正射影像數(shù)據(jù),不至于某些批次的數(shù)據(jù)因定位精度問(wèn)題而無(wú)法使用。

        3.4 插入影像文件到地形圖中

        (1)獲取插入點(diǎn)坐標(biāo)

        本文所使用的方法是通過(guò)AutoCAD軟件,在需要加載影像數(shù)據(jù)的地形圖任一位置點(diǎn)擊一下鼠標(biāo),獲取鼠標(biāo)點(diǎn)擊位置的縱橫坐標(biāo)信息,然后根據(jù)此坐標(biāo)信息去查找影像數(shù)據(jù)的對(duì)應(yīng)坐標(biāo)數(shù)據(jù)文件,從而獲取符合條件的正射影像數(shù)據(jù)文件。獲取鼠標(biāo)點(diǎn)擊位置的主要代碼為:

        Dim returnPnt As Object

        'CAD坐標(biāo),X為東,Y為北

        Dim currX,currY As Double

        Me.Hide()

        returnPnt = docCAD1.Utility.GetPoint()

        '獲取鼠標(biāo)點(diǎn)選位置信息

        currX = returnPnt(0)

        currY = returnPnt(1)

        (2)加載影像數(shù)據(jù)到地形圖中

        如果點(diǎn)擊鼠標(biāo)獲取的坐標(biāo)位置落在某幅正射影像數(shù)據(jù)的左下角和右上角坐標(biāo)所確定的矩形之間,則代表已經(jīng)找到合適的正射影像數(shù)據(jù)文件,將加載此正射影像到地形圖中。如果已經(jīng)遍歷了指定文件夾下面的所有坐標(biāo)數(shù)據(jù)文件,并沒(méi)有找到一個(gè)符合要求的文件,則認(rèn)為鼠標(biāo)位置無(wú)對(duì)應(yīng)的正射影像數(shù)據(jù),將給出“地形圖指定位置無(wú)匹配的正射影像文件”消息提示并退出查找,待用戶重新指定影像數(shù)據(jù)存放位置后再執(zhí)行插入操作。

        影像數(shù)據(jù)加載完成以后,將存放在指定的影像數(shù)據(jù)圖層中,可以通過(guò)圖層開(kāi)關(guān)控制是否顯示,方便瀏覽使用。加載影像數(shù)據(jù)的主要代碼為:

        For Each foundFile As String In My.Computer.FileSystem.GetFiles(filePath,_

        FileIO.SearchOption.SearchAllSubDirectories,"*.txt")

        Dim fileReader As String

        fileReader = My.Computer.FileSystem.ReadAllText(foundFile,_

        System.Text.Encoding.Default)

        '獲取原始影像的四角坐標(biāo)和縮放比例

        If fileReader <> "" Then

        array0 = Split(fileReader,Chr(13))

        array1 = Split(array0(0)," ")

        Xzuoxia = CDbl(array1(3)) - 39000000.0 + CDbl(TextBox2.Text)

        array2 = Split(array0(1)," ")

        Yzuoxia = CDbl(array2(3)) + CDbl(TextBox3.Text)

        array3 = Split(array0(2)," ")

        Xyoushang = CDbl(array3(3)) - 39000000.0

        array4 = Split(array0(3)," ")

        Yyoushang = CDbl(array4(3))

        array5 = Split(array0(4)," ")

        suofangBiLi = CDbl(array5(2))

        End If

        '查找用戶鼠標(biāo)點(diǎn)選的位置是否落在某幅影像圖的范圍內(nèi),找到后退出循環(huán)

        If (Xzuoxia < currX And currX < Xyoushang) And (Yzuoxia < currY And currY < Yyoushang) Then

        foundImage = True

        insertRaster(0) = Xzuoxia

        insertRaster(1) = Yzuoxia

        insertRaster(2) = 0

        rasterName = Microsoft.VisualBasic.Strings.Left(foundFile,foundFile.Length - 9) + ".tif"

        '加載影像數(shù)據(jù)到當(dāng)前地形圖中

        currRaster = docCAD1.ModelSpace.AddRaster(rasterName,insertRaster,suofangBiLi,rotationAngle)

        currRaster.Layer = "正射影像-2017"

        Exit For

        End If

        Next

        If foundImage = False Then

        MsgBox("地形圖指定位置無(wú)匹配的正射影像文件!")

        End If

        4 程序使用效果

        使用本程序加載正射影像數(shù)據(jù)到AutoCAD地形圖的效果如圖3所示,可見(jiàn)影像數(shù)據(jù)已經(jīng)以實(shí)際坐標(biāo)正確地疊加到了對(duì)應(yīng)的地形圖數(shù)據(jù)中。可以通過(guò)AutoCAD的疊放次序命令選擇將正射影像數(shù)據(jù)放到最底層,便于顯示和使用。

        圖3 程序運(yùn)行效果

        5 結(jié) 語(yǔ)

        使用本文介紹的方法,可以通過(guò)在AutoCAD軟件中指定當(dāng)前地形圖的任意位置坐標(biāo),實(shí)時(shí)準(zhǔn)確地插入相應(yīng)位置所在圖幅的正射影像數(shù)據(jù)??梢酝ㄟ^(guò)重復(fù)執(zhí)行插入功能,連續(xù)插入多幅相鄰位置的正射影像數(shù)據(jù)并確保拼接正確,能夠迅速獲得大范圍的影像加載結(jié)果。對(duì)于經(jīng)常需要使用正射影像數(shù)據(jù)作為工作底圖的情況,提高了影像數(shù)據(jù)加載的速度和效率。通過(guò)實(shí)際工作中的具體應(yīng)用,取得了較好的效果。

        猜你喜歡
        數(shù)據(jù)文件射影鼠標(biāo)
        Progress in Neural NLP: Modeling, Learning, and Reasoning
        Engineering(2020年3期)2020-09-14 03:42:00
        三參數(shù)射影平坦芬斯勒度量的構(gòu)造
        數(shù)據(jù)文件恢復(fù)專(zhuān)題問(wèn)答
        數(shù)據(jù)文件安全管控技術(shù)的研究與實(shí)現(xiàn)
        SQL數(shù)據(jù)文件恢復(fù)工具
        基于已有控制資料的正射影像自動(dòng)更新
        遙感信息(2015年3期)2015-12-13 07:26:50
        基于改進(jìn)射影控制的柔性直流輸電廣域阻尼控制
        Tekla Structure數(shù)據(jù)文件交互格式分析
        大比例尺真正射影像遮擋檢測(cè)和補(bǔ)償
        45歲的鼠標(biāo)
        国产AV无码无遮挡毛片| 久久精品国产9久久综合| 亚洲国产一区二区三区| 欧美日韩国产精品自在自线| 国产无套内射久久久国产| 97人人模人人爽人人少妇| 日韩AV不卡六区七区| 青青草免费激情自拍视频| 中文国产乱码在线人妻一区二区| 久久天天躁夜夜躁狠狠| 精品国产乱码久久久软件下载 | 国产一级黄色录像大片| 国产国产裸模裸模私拍视频| 亚洲国产av一区二区三区四区 | 欧美午夜刺激影院| 亚洲精品一区二区在线播放| 国产又湿又爽又猛的视频| 久久精品国产久精国产爱| 国产产区一二三产区区别在线| 3d动漫精品一区二区三区| 国产女人91精品嗷嗷嗷嗷| 亚洲又黄又大又爽毛片| 日本熟女精品一区二区三区| 鸭子tv国产在线永久播放| 麻豆精品网站国产乱子伦| 午夜国产精品视频免费看电影| 精品黄色一区二区三区| 99re6在线视频精品免费下载| 四川发廊丰满老熟妇| 久久久久这里只有精品网| 中文字幕亚洲日本va| 91成人自拍国语对白| 精品人妻va出轨中文字幕| 国产在视频线精品视频www666| 日产精品一区二区在线| 久久精品国产亚洲av精东 | 99久久精品国产自在首页| 日日高潮夜夜爽高清视频| 国产精品www夜色视频| 日韩AV无码一区二区三区不卡毛片| 少妇高潮太爽了免费网站|