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

        ?

        AutoCAD生產(chǎn)平臺與GIS系統(tǒng)交互研究

        2018-03-15 03:29:37張小波陳凱石吉寶白曉明陳軍勝
        城市勘測 2018年1期
        關(guān)鍵詞:調(diào)用切片坐標(biāo)系

        張小波,陳凱,石吉寶,白曉明,陳軍勝

        (成都市勘察測繪研究院,四川 成都 610081)

        1 引 言

        測繪地理信息采集生產(chǎn)的平臺多基于AutoCAD,早期由于對數(shù)據(jù)要求不高,在生產(chǎn)平臺只進(jìn)行基本的圖形繪制與編輯,隨著地理信息技術(shù)的發(fā)展,在生產(chǎn)環(huán)節(jié)采集編輯的地理信息要素越來越多,生產(chǎn)時往往需要在外業(yè)采集的數(shù)據(jù)上疊加其他數(shù)據(jù)進(jìn)行綜合生產(chǎn)。

        生產(chǎn)平臺若能調(diào)用GIS系統(tǒng)的影像及地圖服務(wù),將極大地豐富基礎(chǔ)數(shù)據(jù)來源,為數(shù)據(jù)生產(chǎn)提供便利。Esri官方推出了ArcGIS for AutoCAD插件,其可以使AutoCAD作為ArcGIS Server的客戶端加載地圖服務(wù),并且可以作為GIS數(shù)據(jù)結(jié)構(gòu)編輯器來組織CAD數(shù)據(jù)。其功能雖然強(qiáng)大,但是由于其沿襲專業(yè)GIS軟件的風(fēng)格和體系,更側(cè)重GIS數(shù)據(jù)管理,若用于AutoCAD平臺進(jìn)行生產(chǎn),缺點(diǎn)十分明顯:一是需要手動輸入服務(wù)路徑等相關(guān)參數(shù),對使用人員要求較高;二是需要在本地進(jìn)行投影定義,不利于投影參數(shù)保密;三是不具備自動刷新及緩存機(jī)制,響應(yīng)速度慢。

        基于此,我們進(jìn)行了AutoCAD生產(chǎn)平臺與GIS系統(tǒng)交互的研究,使AutoCAD生產(chǎn)平臺能夠直接調(diào)用ArcGIS發(fā)布的服務(wù),雖然功能不及ArcGIS for AutoCAD強(qiáng)大,但是對運(yùn)行效率和易用性方面進(jìn)行了優(yōu)化,并將關(guān)鍵參數(shù)內(nèi)置,而且內(nèi)建緩存機(jī)制,達(dá)到了比較理想的使用效果。

        2 實(shí)現(xiàn)方法

        服務(wù)器端利用ArcGIS Server發(fā)布地圖服務(wù)并進(jìn)行切片處理;在AutoCAD客戶端上開發(fā)插件:根據(jù)當(dāng)前窗口的顯示范圍匹配地圖服務(wù)的比例尺,按切片規(guī)則計(jì)算出相應(yīng)的緩存圖片集,將緩存圖片插入后置于底層作為底圖顯示,并進(jìn)行自動刷新檢測,實(shí)現(xiàn)實(shí)時更新。其基本流程如圖1所示。

        圖1 基本流程

        雖然通過ArcGIS Server的REST接口以HTTP指令的形式能夠直接獲取指定范圍的電子地圖[1],但是經(jīng)測試這種方式響應(yīng)速度相當(dāng)慢,在本場合不具備實(shí)用性,所以需要在客戶端另行開發(fā)。通過實(shí)時獲取當(dāng)前范圍和比例,依據(jù)ArcGIS Server的切片規(guī)則計(jì)算當(dāng)前比例下需要顯示的緩存圖片,直接從地圖服務(wù)的緩存目錄獲取對應(yīng)的文件,以底圖方式拼接顯示,同時在本地建立緩存機(jī)制,以提高速度。

        3 服務(wù)器配置

        服務(wù)器端對需要發(fā)布的地圖文檔正常進(jìn)行切片即可[2~4],切片完成后,根據(jù)客戶端調(diào)用方式將切片數(shù)據(jù)設(shè)置HTTP,F(xiàn)TP或者文件共享。

        需要注意的是ArcGIS Server 10.1之后發(fā)布地圖服務(wù)必須要對Mxd文檔添加地圖投影文件,用戶在調(diào)用地圖服務(wù)時候很容易獲取到坐標(biāo)系參數(shù),不利于參數(shù)保密,因而在對外發(fā)布地圖服務(wù)通常使用標(biāo)準(zhǔn)3度帶投影。為了保證發(fā)布的地圖數(shù)據(jù)位置正確,能和常用的坐標(biāo)系下數(shù)據(jù)疊合,需要先在常用坐標(biāo)系下進(jìn)行地圖發(fā)布和切片;接著提取發(fā)布數(shù)據(jù)的范圍線,去掉坐標(biāo)信息,在標(biāo)準(zhǔn)3度帶投影下配置mxd文檔,必須保證只有mxd文件帶有坐標(biāo)系信息,范圍線數(shù)據(jù)不能帶有坐標(biāo)系信息;然后使用配置好的mxd數(shù)據(jù)以同樣的參數(shù)(包括起始點(diǎn)、分辨率、切片大小、級別等)在標(biāo)準(zhǔn)3度帶投影下發(fā)布地圖服務(wù),再把常用坐標(biāo)系下的地圖切片數(shù)據(jù)拷貝過來,這樣發(fā)布出來的地圖坐標(biāo)位置就和常用坐標(biāo)系下坐標(biāo)位置一致。

        4 客戶端開發(fā)

        客戶端基本功能是根據(jù)切片配置和當(dāng)前顯示范圍,獲取GIS平臺的地圖服務(wù)作為底圖,其核心是緩存圖片的計(jì)算;由于面對一線生產(chǎn)人員,客戶端的易用性與顯示速度非常重要,因此加入了自動刷新檢測與緩存機(jī)制。為了方便與其他功能集成,本次客戶端基本的緩存圖片計(jì)算、顯示緩存機(jī)制等采用Visual LISP開發(fā),而自動刷新檢測采用ObjectARX技術(shù)編寫反應(yīng)器回調(diào)LISP函數(shù)。

        4.1 緩存圖片計(jì)算原理

        緩存目錄結(jié)構(gòu)如圖2所示,在_alllayers文件夾以下,是切片設(shè)置的從小到大多個比例尺級別;一個比例尺文件夾下,是切圖的“行”文件夾,命名規(guī)則是R加上16進(jìn)制8位行號,不足補(bǔ)0;每行文件夾下就是該行的所有緩存文件了,命名規(guī)則是C加上16進(jìn)制8位列號,不足補(bǔ)0。

        圖2 緩存目錄結(jié)構(gòu)

        在緩存目錄的conf.xml文件中,保存了切片的參數(shù),其中涉及計(jì)算緩存圖片的關(guān)鍵參數(shù)有切圖原點(diǎn)TileOrigin,圖片的DPI,每張圖片的長度和寬度,各級比例尺及對應(yīng)地圖單位長度。

        首先計(jì)算當(dāng)前屏幕顯示的比例尺Sins,并與切片參數(shù)中的各級比例尺進(jìn)行比較,匹配最接近的地圖比例尺。

        式中:Viewsize為按圖形單位存儲當(dāng)前視口的高度;ScreensizeY為以像素為單位存儲當(dāng)前視口的高度;Dpitch為顯示器點(diǎn)距,根據(jù)顯示效果取 0.1 mm~0.3 mm。

        再根據(jù)當(dāng)前坐標(biāo)計(jì)算緩存圖片的行列號:

        式中:Row,Col為緩存圖片的行列號;x,y為當(dāng)前坐標(biāo);XOrigin,YOrigin為切片原點(diǎn)坐標(biāo);TileRows,TileCols為圖片的長度和寬度;Resolution為當(dāng)前比例尺對應(yīng)的地圖單位長度。

        同時計(jì)算該緩存圖片的插入點(diǎn)坐標(biāo)Inx、Iny,按AutoCAD的規(guī)則,取圖片的左下角點(diǎn)為插入點(diǎn),計(jì)算公式如下:

        Inx=XOrigin+Row×TileRows×Resolution

        Iny=YOrigin-(Col+1)×TileCols×Resolution

        4.2 自動刷新檢測

        電子地圖隨屏幕顯示范圍自動刷新的功能在GIS系統(tǒng)中可以通過地圖控件的事件接口直接調(diào)用,但是由于AutoCAD并未直接提供類似功能的接口,因而需要單獨(dú)開發(fā)。

        基于ObjectARX編寫一個反應(yīng)器[5~6],獲取窗口的中心點(diǎn)坐標(biāo),根據(jù)窗口長寬計(jì)算左下及右上角點(diǎn)坐標(biāo)進(jìn)行監(jiān)視,若窗口顯示范圍有變化則觸發(fā)一個事件,運(yùn)行回調(diào)函數(shù)進(jìn)行緩存圖片更新。

        自定義一個派生于ACED庫中AcEdInputPointMonitor類的反應(yīng)器類DBLCTTooltips,通過重寫虛函數(shù)monitorInputPoint方法,以便在引發(fā)回調(diào)事件發(fā)生時對應(yīng)的回調(diào)函數(shù)能夠處理特定的事項(xiàng)。本項(xiàng)目重寫的回調(diào)函數(shù)功能為:當(dāng)光標(biāo)移動、輸入點(diǎn)等事件發(fā)生后,檢測當(dāng)前CAD活動文檔的活動視口中心坐標(biāo)是否移動,若移動了就在CAD命令行輸出當(dāng)前活動視口中心坐標(biāo)、獲得當(dāng)前視口兩個對角點(diǎn)坐標(biāo)、同時執(zhí)行CAD本地命令“myfun”。核心功能代碼如下:

        Acad::ErrorStatus DBLCTTooltips::monitorInputPoint (定義略)

        {

        struct resbuf rb;

        acedGetVar("VIEWCTR",&rb);

        if ((s_nowpoint.x == -100000)&&(s_nowpoint.y == -100000)){

        s_nowpoint.x = rb.resval.rpoint[X];

        s_nowpoint.y = rb.resval.rpoint[Y];

        }

        if (((fabs(rb.resval.rpoint[X] - s_nowpoint.x)) > 0) && ((fabs(rb.resval.rpoint[Y] - s_nowpoint.y)) > 0) ){

        s_perpoint.x = s_nowpoint.x;

        s_perpoint.y = s_nowpoint.y;

        s_nowpoint.x = rb.resval.rpoint[X];

        s_nowpoint.y = rb.resval.rpoint[Y];

        ads_point ptMin;

        ads_point ptMax;

        GetViewPortBound(ptMin,ptMax);

        //調(diào)用命令

        resbuf *rp = acutBuildList(RTSTR,"c:myfun",RTNONE);

        acedInvoke(rp,NULL);

        }

        return (Acad::eOk) ;

        }

        由于反應(yīng)器優(yōu)先級很高,在AutoCAD中利用鼠標(biāo)中鍵執(zhí)行窗口平移縮放時,一旦窗口變化即進(jìn)行更新,不必等到釋放鼠標(biāo),使用體驗(yàn)與主流GIS平臺的電子地圖類似。

        4.3 顯示與緩存機(jī)制

        為了在客戶端實(shí)現(xiàn)良好的用戶體驗(yàn),對一些細(xì)節(jié)進(jìn)行了相應(yīng)開發(fā)。

        顯示控制:AutoCAD 2006以后,在當(dāng)前模型空間的ACAD_SORTENTS數(shù)據(jù)字典中存儲了對象的顯示順序,通過設(shè)置緩存圖片位于底層以確保待編輯圖形始終可見,功能代碼如下:

        ;ImgObj為圖片對象

        (setqedtab (VL-CATCH-ALL-APPLY

        'VLA-GETOBJECT

        (LIST edict "ACAD_SORTENTS")))

        (setqtestvar (vlax-make-safearray vlax-vbobject '(0 . 0)))

        (vlax-safearray-fill testvar (list ImgObj))

        (vla-movetobottom edtab testvar)

        當(dāng)前窗口緩存圖片計(jì)算:計(jì)算當(dāng)前窗口左下及右上角點(diǎn)對應(yīng)緩存圖片的行列號以后,即可得到待插入圖片的序列,依次插入即可[7~9];窗口刷新后,通過待插入圖片序列與當(dāng)前顯示的序列進(jìn)行比對,只對變化的圖片進(jìn)行刷新;

        本地緩存:在本地建立緩存目錄,從服務(wù)器獲取緩存圖片后,在緩存目錄備份,下次再調(diào)用該圖片可直接在本地加載,大大提高速度;

        網(wǎng)絡(luò)檢測:網(wǎng)絡(luò)不通時,客戶端直接獲取服務(wù)器的遠(yuǎn)程圖片需要很長時間才會返回出錯信息,在此期間AutoCAD會處于“假死機(jī)”狀態(tài)無法操作,因此程序運(yùn)行時首先進(jìn)行網(wǎng)絡(luò)檢測,最簡便的方法是獲取一張服務(wù)器特定路徑的問題,若成功則表明網(wǎng)絡(luò)正常,否則有問題直接提示,檢測代碼如下:

        (vl-catch-all-error-p

        (vl-catch-all-apply

        'vla-GetRemoteFile

        (listutil "ftp://192.168.10.10/layers/_alllayers/test.png" 'tmp :vlax-true)

        )

        )

        圖3 AutoCAD與GIS系統(tǒng)交互示例

        5 結(jié) 語

        AutoCAD生產(chǎn)平臺中調(diào)用GIS系統(tǒng)的地圖服務(wù),可以方便地實(shí)現(xiàn)矢量圖和影像圖等電子地圖的疊加比對分析,廣泛應(yīng)用于中小比例尺地形圖更新、專項(xiàng)調(diào)查、生產(chǎn)質(zhì)檢等方面,取得了良好的效果。

        [1] 黃夢龍. 瓦片地圖技術(shù)在桌面端GIS中的應(yīng)用[J]. 地理空間信息,2011(4):149~151.

        [2] 郭藝歌,王新云,李學(xué)斌. 基于ArcEngine的CAD圖中GIS柵格影像數(shù)據(jù)的自動處理[J]. 地理空間信息,2012,10(6):89~90,93,3,2.

        [3] 蘇旭明,譚建成. WebGIS中瓦片地圖關(guān)鍵技術(shù)研究[J]. 北京測繪,2012(2):9~12.

        [4] 張廣春,仲偉政. 基于ArcGIS Engine組件實(shí)現(xiàn)瓦片地圖的應(yīng)用[J]. 測繪通報(bào),2015(3):115~116,120.

        [5] 施立瑾,張賀忻. 面向?qū)ο蟮腁utoCAD開發(fā)工具ARX Notification機(jī)制及Reactor類的使用[J]. 智能建筑與城市信息,2001(11):59~61.

        [6] 趙清清,王建勇. ARX反應(yīng)器智能關(guān)聯(lián)技術(shù)在BIM施工圖中的應(yīng)用[J]. 土木建筑工程信息技術(shù),2013(6):111~114.

        [7] 張鵬程. 常用CAD與GIS平臺影像自動配準(zhǔn)方法及實(shí)現(xiàn)[J]. 地理空間信息,2010,8(4):28~31.

        [8] 徐昌榮,周春波. 在AutoCAD中瀏覽Google衛(wèi)星地圖的方法研究[J]. 測繪通報(bào),2013(1):77~79.

        [9] 馮連好,單湛波,陳振宇. 地形圖柵格化批量處理的實(shí)現(xiàn)與應(yīng)用[J]. 東北測繪,2012(3):211~212,216.

        猜你喜歡
        調(diào)用切片坐標(biāo)系
        核電項(xiàng)目物項(xiàng)調(diào)用管理的應(yīng)用研究
        LabWindows/CVI下基于ActiveX技術(shù)的Excel調(diào)用
        解密坐標(biāo)系中的平移變換
        坐標(biāo)系背后的故事
        基于重心坐標(biāo)系的平面幾何證明的探討
        基于系統(tǒng)調(diào)用的惡意軟件檢測技術(shù)研究
        基于SDN與NFV的網(wǎng)絡(luò)切片架構(gòu)
        腎穿刺組織冷凍切片技術(shù)的改進(jìn)方法
        冰凍切片、快速石蠟切片在中樞神經(jīng)系統(tǒng)腫瘤診斷中的應(yīng)用價值比較
        極坐標(biāo)系下移動機(jī)器人的點(diǎn)鎮(zhèn)定
        国产高清精品自在线看| 日本精品少妇一区二区三区| 99精品人妻少妇一区二区| 国产99r视频精品免费观看| 一区视频在线观看免费播放.| 美女与黑人巨大进入免费观看| 亚洲av国产av综合av卡| 亚洲色无码播放| 久久久久久久久国内精品影视| 免费观看一区二区三区视频| 五月天激情电影| 亚洲精品欧美二区三区中文字幕| 国产偷国产偷亚洲欧美高清| av在线网站一区二区| 国产自拍视频免费在线| 久久午夜夜伦鲁鲁片免费无码| 无码人妻AⅤ一区 二区 三区| 97超碰国产一区二区三区| 77777亚洲午夜久久多喷| 亚洲精品字幕| 在线观看亚洲精品国产| 老岳肥屁熟女四五十路| 成人免费a级毛片无码片2022| 小12箩利洗澡无码视频网站| 无码啪啪人妻| 大量漂亮人妻被中出中文字幕| 久久久av波多野一区二区| 日韩国产欧美视频| 亚洲中国美女精品久久久| 国产亚洲精品综合一区| 亚洲aⅴ天堂av天堂无码麻豆| 精品免费一区二区三区在| 亚洲一区二区三区在线最新| 国产永久免费高清在线| 国产精品久久国产精品99gif| 日本在线播放不卡免费一区二区| 日韩免费视频| 亚洲aⅴ无码成人网站国产app| 无码中文字幕专区一二三| 国产成人一区二区三区影院| 青春草在线视频免费观看 |