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

        ?

        在AutoCAD中瀏覽Google衛(wèi)星地圖的方法研究

        2013-04-07 07:46:32徐昌榮周春波
        測繪通報(bào) 2013年1期
        關(guān)鍵詞:窗體二次開發(fā)調(diào)用

        徐昌榮,周春波

        (江西理工大學(xué)建筑與測繪工程學(xué)院,江西贛州 341000)

        一、引 言

        AutoCAD是一款由Autodesk公司開發(fā)的自動(dòng)計(jì)算機(jī)輔助設(shè)計(jì)軟件,由于其具有功能強(qiáng)大、實(shí)用性強(qiáng)、易二次開發(fā)的特點(diǎn),被廣泛應(yīng)用于建筑、規(guī)劃、制造業(yè)等諸多行業(yè)。用戶可以通過AutoCAD的二次開發(fā)接口開發(fā)出適用于本行業(yè)的專業(yè)軟件,如測繪行業(yè)中廣泛使用的南方CASS軟件,以及建筑行業(yè)中使用的天正軟件均是AutoCAD二次開發(fā)的產(chǎn)物。相比于從底層開發(fā)一個(gè)CAD軟件,利用AutoCAD提供的接口進(jìn)行二次開發(fā)所耗費(fèi)的人力物力都更少,加之AutoCAD強(qiáng)大的功能支撐,這些二次開發(fā)軟件在各自行業(yè)都發(fā)揮著巨大的作用。

        Google衛(wèi)星地圖是Google公司提供的一種網(wǎng)絡(luò)地圖服務(wù),這些衛(wèi)星地圖覆蓋全球的各個(gè)角落,在世界諸多城市都可以達(dá)到1 m以內(nèi)的精度[1],且用戶可以在Google Map或Google Earth中瀏覽這些衛(wèi)星地圖。同時(shí),Google允許用戶使用它的網(wǎng)絡(luò)地圖服務(wù),用戶可以通過其提供的API在自己的網(wǎng)頁或應(yīng)用程序中嵌入Google Map,當(dāng)每天的請求次數(shù)少于50 000次時(shí),這種服務(wù)是免費(fèi)的。這能夠滿足大部分用戶的一般性需求。

        在進(jìn)行城市規(guī)劃或道路設(shè)計(jì)等方面的工作時(shí),一般需要事先了解該區(qū)域的道路、植被、地形等現(xiàn)狀情況,而Google衛(wèi)星地圖平均每半年更新一次,具有較好的現(xiàn)勢性,可完成這部分工作。將Google衛(wèi)星地圖等網(wǎng)絡(luò)地圖集成于桌面軟件中的研究已有很多,楊帆等人將Google Map集成于桌面軟件,用于對敏感目標(biāo)的追蹤[2];李木梓等以Google Map為例實(shí)現(xiàn)了將網(wǎng)絡(luò)地圖作為自定義圖層的形式集成到GIS桌面系統(tǒng)[3]。而AutoCAD軟件是城市規(guī)劃或道路設(shè)計(jì)廣泛應(yīng)用的設(shè)計(jì)軟件,若能在AutoCAD中實(shí)現(xiàn)Google衛(wèi)星地圖的瀏覽,設(shè)計(jì)人員勢必能快速地了解設(shè)計(jì)區(qū)域,提高工作效率?;诖耍疚膶υ贏utoCAD中瀏覽Google衛(wèi)星地圖的方法進(jìn)行了研究,并通過AutoCAD二次開發(fā)與Google Map二次開發(fā)技術(shù)實(shí)現(xiàn)了這一功能。

        二、AutoCAD二次開發(fā)與Google Map二次開發(fā)

        1.AutoCAD二次開發(fā)

        AutoCAD為開發(fā)者提供了多種應(yīng)用程序接口,其中.NET API因其開發(fā)簡單及效率高的優(yōu)勢而被廣泛使用。AutoCAD從2006年開始增加了.NET API,該API提供了一系列的托管外包類,是AutoCAD較為理想的二次開發(fā)方式。開發(fā)人員可在.NET框架下使用.NET支持的任何編程語言進(jìn)行開發(fā),本文采用C#語言進(jìn)行AutoCAD的二次開發(fā)。

        開發(fā)人員可以通過兩種方式進(jìn)行AutoCAD.NET的二次開發(fā):一種是通過Visual Studio 2010的AutoCAD 2011 Plug-in模板建立解決方案進(jìn)行開發(fā),這種方式不需要開發(fā)人員手動(dòng)引用AutoCAD組件庫;另一種是在Visual Studio 2010中建立一個(gè)解決方案,手動(dòng)添加需要在開發(fā)中用到的組件庫,如Ac-DbMgd.dll、AcMgd.dll等,并將 AutoCAD 的執(zhí)行文件添加到解決方案中且設(shè)置為啟動(dòng)項(xiàng),可實(shí)現(xiàn)調(diào)試。

        2.Google Map二次開發(fā)

        Google為開發(fā)者提供了各種類型的API來實(shí)現(xiàn)對Google Map的二次開發(fā),這些API處于不斷更新中,Google Maps JavaScript API V3目前是JavaScript API的最新版本。對于之前的版本,開發(fā)者需要申請API Key才能獲得Google Map的使用權(quán)限,而該版本的API用戶無需申請API Key即可使用。用戶在網(wǎng)頁中嵌入以下代碼便能使用Google Maps JavaScript API V3開發(fā)自己的應(yīng)用程序

        Google衛(wèi)星地圖提供0~17共18個(gè)縮放級別的衛(wèi)星地圖,用戶在初始化地圖時(shí)通過設(shè)置地圖選項(xiàng)(Map Options)來設(shè)置初始縮放級別、初始位置及其他內(nèi)容。而對地圖的其他設(shè)置可參照Google Maps JavaScript API V3的參考文檔,里面提供了各個(gè)對象的屬性、方法和事件等內(nèi)容,可幫助用戶開發(fā)自己的應(yīng)用程序。另外,用戶除了使用API中提供的控件外還可以使用自定義控件。

        三、方法與實(shí)現(xiàn)

        1.方法研究

        本文利用上述的AutoCAD.NET API和Google Maps JavaScript API對AutoCAD進(jìn)行二次開發(fā),主要實(shí)現(xiàn)以下兩個(gè)功能:

        1)將Google衛(wèi)星地圖嵌入到窗體應(yīng)用程序中,使用戶能在窗體中實(shí)現(xiàn)對Google衛(wèi)星地圖的動(dòng)態(tài)瀏覽,以及平移、縮放、查詢位置、量距等基本的地圖操作。

        2)在AutoCAD中能自由調(diào)用該窗體應(yīng)用程序,并且兩者能實(shí)現(xiàn)一些簡單的交互,如將當(dāng)前顯示的衛(wèi)星地圖插入到AutoCAD中的指定區(qū)域。

        實(shí)現(xiàn)上述兩個(gè)功能可分3個(gè)步驟:首先,在Auto-CAD中調(diào)用窗體程序比較容易實(shí)現(xiàn),利用AutoCAD.NET API的模態(tài)對話框可以實(shí)現(xiàn)這一功能;其次,將Google衛(wèi)星地圖嵌入到窗體應(yīng)用程序雖比較復(fù)雜,但可以通過創(chuàng)建一個(gè)靜態(tài)的HTML頁面來實(shí)現(xiàn),該頁面通過JavaScript腳本語言載入Google衛(wèi)星地圖;最后在窗體中創(chuàng)建一個(gè)WebBrowser控件,用于瀏覽該頁面,既可實(shí)現(xiàn)與在Web瀏覽器上相同的效果[2],又可通過腳本語言來控制對地圖的操作。由此可知,利用C#語言和JavaScript腳本語言編程基本可以實(shí)現(xiàn)在AutoCAD中瀏覽Google衛(wèi)星地圖的功能。

        2.功能實(shí)現(xiàn)

        (1)HTML頁面與窗體應(yīng)用程序交互

        如程序中實(shí)現(xiàn)查詢經(jīng)緯度或地名來搜索地圖的功能,采用在C#窗體程序中調(diào)用JavaScript中的方法實(shí)現(xiàn),在Form1類之間添加兩段代碼

        以上兩段代碼的目的是為程序集請求權(quán)限,并使得COM組件對應(yīng)用程序可見,這樣才能在C#窗體程序中調(diào)用JavaScript中的方法。

        如要實(shí)現(xiàn)一個(gè)搜索目標(biāo)位置的功能。首先在HTML中編寫一個(gè)方法,實(shí)現(xiàn)用戶輸入經(jīng)緯度或地名,并將地圖顯示到該位置;然后在窗體的事件方法中通過以下代碼來調(diào)用腳本中的方法

        這樣就實(shí)現(xiàn)了在窗體類中調(diào)用腳本函數(shù)的方法。如圖1所示,搜索地名“廣州”,當(dāng)前地圖顯示為廣州市區(qū)。

        圖1 搜索目標(biāo)(地圖顯示區(qū)域?yàn)閺V州市城區(qū))

        由于Google Maps JavaScript API V3中并未提供計(jì)算兩點(diǎn)之間的距離的方法,因此需要在Google Map中自定義一個(gè)量距控件,實(shí)現(xiàn)測量折線距離的功能。雖然 JavaScript可以描述的數(shù)值范圍很廣,但事實(shí)證明,用JavaScript進(jìn)行高精度計(jì)算會(huì)導(dǎo)致瀏覽器異常甚至崩潰[4]。為了保證程序的穩(wěn)定性,筆者在Form1類中編寫了一個(gè)方法,以實(shí)現(xiàn)由兩點(diǎn)的經(jīng)緯度求取距離的功能,然后在JavaScript中調(diào)用該方法,顯示測量的距離。下面這段代碼演示了如何在JavaScript中調(diào)用窗體中定義的方法

        在Form1類中定義一個(gè)根據(jù)兩點(diǎn)經(jīng)緯度計(jì)算兩點(diǎn)大地線長的方法,該方法采用白塞爾法進(jìn)行大地主題反算,橢球參數(shù)采用WGS-84橢球參數(shù),精度可靠。

        (2)AutoCAD與C#窗體交互

        該程序中有一個(gè)功能是將當(dāng)前顯示的衛(wèi)星地圖插入到AutoCAD的當(dāng)前圖形界面,并利用程序?qū)Ξ?dāng)前顯示的衛(wèi)星地圖進(jìn)行截圖保存,然后將該位置的圖像插入到AutoCAD圖面中。

        在AutoCAD中實(shí)現(xiàn)插入光柵圖像的功能比較復(fù)雜,其具體步驟為:

        1)創(chuàng)建圖像定義對象(RasterImageDef類型對象)。

        2)創(chuàng)建圖像實(shí)體對象(RasterImage類型對象)。

        3)將以上兩者關(guān)聯(lián)起來,實(shí)現(xiàn)顯示柵格圖像的功能。

        4)對柵格圖像定位定向,通過RasterImage類型的Orientation屬性實(shí)現(xiàn)柵格地圖的定位定向[5]。

        3.調(diào)試運(yùn)行

        首先編譯程序,打開AutoCAD,在命令行輸入命令“netload”,加載編譯好的程序集,輸入命令“showmap”,彈出瀏覽Google Map的主界面(如圖2所示)。

        圖2 主界面(標(biāo)注位置為江西理工大學(xué)建筑與測繪工程學(xué)院)

        在主界面中可對Google衛(wèi)星地圖進(jìn)行一些地圖的基本操作,如縮放、漫游、量距、添加標(biāo)記等。用戶可通過搜索目標(biāo)按鈕輸入經(jīng)緯度或地名來進(jìn)行地圖的搜索,也可將當(dāng)前衛(wèi)星圖片保存為本地磁盤中,或通過“導(dǎo)入AutoCAD”按鈕將圖片插入到AutoCAD的當(dāng)前繪圖窗口中(如圖3所示)。

        四、結(jié)束語

        本文實(shí)現(xiàn)了在AutoCAD中瀏覽Google衛(wèi)星地圖的功能,該程序界面整潔、功能實(shí)用,可作為規(guī)劃設(shè)計(jì)人員的輔助工具。設(shè)計(jì)人員通過對規(guī)劃區(qū)域Google衛(wèi)星地圖的瀏覽,可以充分考慮土地的合理利用與節(jié)約等因素,通過對周圍環(huán)境的查看可以較為方便地分析規(guī)劃部分與整體環(huán)境的協(xié)調(diào)性[6]。該程序已應(yīng)用于筆者所在學(xué)校城市規(guī)劃專業(yè)的城市規(guī)劃課程設(shè)計(jì),獲得了較好的評價(jià)。

        圖3 衛(wèi)星圖片插入AutoCAD中

        本文通過AutoCAD二次開發(fā)與Google Map二次開發(fā)技術(shù)實(shí)現(xiàn)了在AutoCAD中瀏覽Google衛(wèi)星地圖的功能,但仍然存在需要改進(jìn)的地方。如何在AutoCAD與Google地圖之間實(shí)現(xiàn)更多的交互和更多實(shí)用的功能,如何實(shí)現(xiàn)與數(shù)據(jù)庫的交互等,都是今后研究的重點(diǎn)。

        [1] 《Google API大全》編委會(huì).Google API大全:編程·開發(fā)·實(shí)例[M].北京:電子工業(yè)出版社,2009.

        [2] 楊帆,張彩麗.桌面應(yīng)用程序嵌入Google Map及其交互方法研究[J].陜西科技大學(xué)學(xué)報(bào),2010,28(5):80-84.

        [3] 李木梓,徐柱,黃澤純,等.網(wǎng)絡(luò)地圖集成于GIS桌面系統(tǒng)的方法及試驗(yàn)[J].地球信息科學(xué)學(xué)報(bào),2011,13(1):95-101.

        [4] 馮曼菲.精通Ajax——基礎(chǔ)概念、核心技術(shù)與典型案例[M].北京:人民郵電出版社,2008.

        [5] 龔有亮,翟翊,曹歆宏,等.AutoCAD中柵格圖像定位研究[J].測繪通報(bào),2011(5):13-15.

        [6] 張瑞.Google Earth在道路及規(guī)劃設(shè)計(jì)中的應(yīng)用[D].武漢:華中科技大學(xué),2007.

        猜你喜歡
        窗體二次開發(fā)調(diào)用
        淺談基于Revit平臺的二次開發(fā)
        甘肅科技(2020年20期)2020-04-13 00:30:02
        核電項(xiàng)目物項(xiàng)調(diào)用管理的應(yīng)用研究
        試談Access 2007數(shù)據(jù)庫在林業(yè)檔案管理中的應(yīng)用
        檔案天地(2019年5期)2019-06-12 05:12:02
        淺談Mastercam后處理器的二次開發(fā)
        模具制造(2019年3期)2019-06-06 02:11:02
        LabWindows/CVI下基于ActiveX技術(shù)的Excel調(diào)用
        西門子Easy Screen對倒棱機(jī)床界面二次開發(fā)
        基于系統(tǒng)調(diào)用的惡意軟件檢測技術(shù)研究
        基于LayeredWindow的異形窗體局部刷新
        中文信息(2014年2期)2014-03-06 23:49:14
        基于Pro/E二次開發(fā)的推土鏟參數(shù)化模塊開發(fā)
        巧設(shè)WPS窗體控件讓表格填寫更規(guī)范
        真人抽搐一进一出视频| 天天澡天天揉揉AV无码人妻斩 | 国产精品区一区二区三在线播放| 国产精品99久久久久久猫咪| 亚洲熟妇无码av另类vr影视| 浪荡少妇一区二区三区| 丰满人妻一区二区三区免费| 日本不卡视频一区二区三区| 欧洲美熟女乱av亚洲一区| 野花社区视频在线观看| 国产亚洲婷婷香蕉久久精品| 国产亚洲曝欧美不卡精品| 青草草视频在线观看华人免费| 91色老久久偷偷精品蜜臀懂色 | 欧美性猛交xxxx黑人| 狠狠色噜噜狠狠狠狠97俺也去| 国产高清在线精品一区不卡| 丝袜美腿在线观看一区| 人妻丰满熟妇av无码区| 99久热re在线精品99 6热视频| 亚洲一区丝袜美腿在线观看| 亚洲熟少妇一区二区三区| 亚洲av综合av一区二区三区 | 日韩成人精品日本亚洲| 国产一区二区美女主播| 亚洲午夜狼人综合影院| 少妇仑乱a毛片| 亚洲高清无码第一| 国产精品一区二区久久精品蜜臀| 国产三级精品av在线| 亚洲人成影院在线无码按摩店| 日本精品人妻无码77777| 欧洲人体一区二区三区| 人妻少妇偷人精品视频| 丰满少妇高潮惨叫久久久| 天天鲁一鲁摸一摸爽一爽| 无码在线观看123| 看中文字幕一区二区三区| 无码伊人66久久大杳蕉网站谷歌| 日本在线看片免费人成视频1000| 欧美日韩国产成人综合在线影院|