999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

在AutoCAD中瀏覽Google衛星地圖的方法研究

2013-04-07 07:46:32徐昌榮周春波
測繪通報 2013年1期
關鍵詞:二次開發用戶功能

徐昌榮,周春波

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

一、引 言

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

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

在進行城市規劃或道路設計等方面的工作時,一般需要事先了解該區域的道路、植被、地形等現狀情況,而Google衛星地圖平均每半年更新一次,具有較好的現勢性,可完成這部分工作。將Google衛星地圖等網絡地圖集成于桌面軟件中的研究已有很多,楊帆等人將Google Map集成于桌面軟件,用于對敏感目標的追蹤[2];李木梓等以Google Map為例實現了將網絡地圖作為自定義圖層的形式集成到GIS桌面系統[3]。而AutoCAD軟件是城市規劃或道路設計廣泛應用的設計軟件,若能在AutoCAD中實現Google衛星地圖的瀏覽,設計人員勢必能快速地了解設計區域,提高工作效率?;诖?,本文對在AutoCAD中瀏覽Google衛星地圖的方法進行了研究,并通過AutoCAD二次開發與Google Map二次開發技術實現了這一功能。

二、AutoCAD二次開發與Google Map二次開發

1.AutoCAD二次開發

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

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

2.Google Map二次開發

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

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

三、方法與實現

1.方法研究

本文利用上述的AutoCAD.NET API和Google Maps JavaScript API對AutoCAD進行二次開發,主要實現以下兩個功能:

1)將Google衛星地圖嵌入到窗體應用程序中,使用戶能在窗體中實現對Google衛星地圖的動態瀏覽,以及平移、縮放、查詢位置、量距等基本的地圖操作。

2)在AutoCAD中能自由調用該窗體應用程序,并且兩者能實現一些簡單的交互,如將當前顯示的衛星地圖插入到AutoCAD中的指定區域。

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

2.功能實現

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

如程序中實現查詢經緯度或地名來搜索地圖的功能,采用在C#窗體程序中調用JavaScript中的方法實現,在Form1類之間添加兩段代碼

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

如要實現一個搜索目標位置的功能。首先在HTML中編寫一個方法,實現用戶輸入經緯度或地名,并將地圖顯示到該位置;然后在窗體的事件方法中通過以下代碼來調用腳本中的方法

這樣就實現了在窗體類中調用腳本函數的方法。如圖1所示,搜索地名“廣州”,當前地圖顯示為廣州市區。

圖1 搜索目標(地圖顯示區域為廣州市城區)

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

在Form1類中定義一個根據兩點經緯度計算兩點大地線長的方法,該方法采用白塞爾法進行大地主題反算,橢球參數采用WGS-84橢球參數,精度可靠。

(2)AutoCAD與C#窗體交互

該程序中有一個功能是將當前顯示的衛星地圖插入到AutoCAD的當前圖形界面,并利用程序對當前顯示的衛星地圖進行截圖保存,然后將該位置的圖像插入到AutoCAD圖面中。

在AutoCAD中實現插入光柵圖像的功能比較復雜,其具體步驟為:

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

2)創建圖像實體對象(RasterImage類型對象)。

3)將以上兩者關聯起來,實現顯示柵格圖像的功能。

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

3.調試運行

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

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

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

四、結束語

本文實現了在AutoCAD中瀏覽Google衛星地圖的功能,該程序界面整潔、功能實用,可作為規劃設計人員的輔助工具。設計人員通過對規劃區域Google衛星地圖的瀏覽,可以充分考慮土地的合理利用與節約等因素,通過對周圍環境的查看可以較為方便地分析規劃部分與整體環境的協調性[6]。該程序已應用于筆者所在學校城市規劃專業的城市規劃課程設計,獲得了較好的評價。

圖3 衛星圖片插入AutoCAD中

本文通過AutoCAD二次開發與Google Map二次開發技術實現了在AutoCAD中瀏覽Google衛星地圖的功能,但仍然存在需要改進的地方。如何在AutoCAD與Google地圖之間實現更多的交互和更多實用的功能,如何實現與數據庫的交互等,都是今后研究的重點。

[1] 《Google API大全》編委會.Google API大全:編程·開發·實例[M].北京:電子工業出版社,2009.

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

[3] 李木梓,徐柱,黃澤純,等.網絡地圖集成于GIS桌面系統的方法及試驗[J].地球信息科學學報,2011,13(1):95-101.

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

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

[6] 張瑞.Google Earth在道路及規劃設計中的應用[D].武漢:華中科技大學,2007.

猜你喜歡
二次開發用戶功能
也談詩的“功能”
中華詩詞(2022年6期)2022-12-31 06:41:24
淺談基于Revit平臺的二次開發
甘肅科技(2020年20期)2020-04-13 00:30:02
淺談Mastercam后處理器的二次開發
模具制造(2019年3期)2019-06-06 02:11:02
西門子Easy Screen對倒棱機床界面二次開發
關于非首都功能疏解的幾點思考
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
關注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
如何獲取一億海外用戶
創業家(2015年5期)2015-02-27 07:53:25
中西醫結合治療甲狀腺功能亢進癥31例
主站蜘蛛池模板: 欧美成人综合视频| 亚洲天堂网视频| 中文字幕在线日韩91| 亚洲视频免费在线看| 亚洲综合专区| 99久久精品国产麻豆婷婷| 国产a在视频线精品视频下载| 91亚洲免费| 综合色亚洲| 亚洲一级无毛片无码在线免费视频| 99草精品视频| 亚洲无码精彩视频在线观看| 国产亚洲视频在线观看| 好紧太爽了视频免费无码| 国产杨幂丝袜av在线播放| 国产美女丝袜高潮| 99久久免费精品特色大片| 91视频区| 欧美国产菊爆免费观看| 有专无码视频| 91精品专区| 日日拍夜夜操| 少妇精品久久久一区二区三区| 成人亚洲国产| 日韩人妻少妇一区二区| 久久久久国色AV免费观看性色| 欧美、日韩、国产综合一区| 欧美一区日韩一区中文字幕页| 成人国产精品2021| 亚洲综合片| 日韩av电影一区二区三区四区 | 国产一区成人| AV无码国产在线看岛国岛| 国产极品粉嫩小泬免费看| 欧美国产日韩另类| 亚洲第一黄片大全| 亚洲精品动漫| 久久久久青草大香线综合精品 | 精品国产网| 自拍偷拍一区| 国产精品视频观看裸模| 91综合色区亚洲熟妇p| 成人伊人色一区二区三区| 亚洲人成影视在线观看| 亚洲一欧洲中文字幕在线| 国产无码高清视频不卡| 日韩精品一区二区三区大桥未久| 综合色区亚洲熟妇在线| 在线欧美日韩| 岛国精品一区免费视频在线观看 | 亚洲精品无码专区在线观看| 一区二区在线视频免费观看| 动漫精品啪啪一区二区三区| 毛片网站在线看| 99视频国产精品| 爆乳熟妇一区二区三区| 国产在线视频福利资源站| 精品久久久无码专区中文字幕| 国产在线日本| 日本精品视频| 亚洲乱强伦| 国产网站免费看| 亚洲无码日韩一区| 亚洲人成日本在线观看| 好吊日免费视频| 99这里只有精品在线| 欧美在线综合视频| 亚洲国语自产一区第二页| 欧美激情一区二区三区成人| 青青青视频91在线 | 污视频日本| 国产本道久久一区二区三区| 久久国产精品娇妻素人| 免费观看成人久久网免费观看| 欧美国产精品不卡在线观看| 欧美视频在线不卡| 在线观看免费国产| 亚洲国产理论片在线播放| 久久天天躁狠狠躁夜夜躁| 久久视精品| 人人妻人人澡人人爽欧美一区| 成年人福利视频|