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

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

2018-03-15 03:29:37張小波陳凱石吉寶白曉明陳軍勝
城市勘測 2018年1期
關(guān)鍵詞:服務(wù)

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

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

1 引 言

測繪地理信息采集生產(chǎn)的平臺多基于AutoCAD,早期由于對數(shù)據(jù)要求不高,在生產(chǎn)平臺只進行基本的圖形繪制與編輯,隨著地理信息技術(shù)的發(fā)展,在生產(chǎn)環(huán)節(jié)采集編輯的地理信息要素越來越多,生產(chǎn)時往往需要在外業(yè)采集的數(shù)據(jù)上疊加其他數(shù)據(jù)進行綜合生產(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ù)。其功能雖然強大,但是由于其沿襲專業(yè)GIS軟件的風(fēng)格和體系,更側(cè)重GIS數(shù)據(jù)管理,若用于AutoCAD平臺進行生產(chǎn),缺點十分明顯:一是需要手動輸入服務(wù)路徑等相關(guān)參數(shù),對使用人員要求較高;二是需要在本地進行投影定義,不利于投影參數(shù)保密;三是不具備自動刷新及緩存機制,響應(yīng)速度慢。

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

2 實現(xiàn)方法

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

圖1 基本流程

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

3 服務(wù)器配置

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

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

4 客戶端開發(fā)

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

4.1 緩存圖片計算原理

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

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

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

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

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

再根據(jù)當前坐標計算緩存圖片的行列號:

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

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

Inx=XOrigin+Row×TileRows×Resolution

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

4.2 自動刷新檢測

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

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

自定義一個派生于ACED庫中AcEdInputPointMonitor類的反應(yīng)器類DBLCTTooltips,通過重寫虛函數(shù)monitorInputPoint方法,以便在引發(fā)回調(diào)事件發(fā)生時對應(yīng)的回調(diào)函數(shù)能夠處理特定的事項。本項目重寫的回調(diào)函數(shù)功能為:當光標移動、輸入點等事件發(fā)生后,檢測當前CAD活動文檔的活動視口中心坐標是否移動,若移動了就在CAD命令行輸出當前活動視口中心坐標、獲得當前視口兩個對角點坐標、同時執(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中利用鼠標中鍵執(zhí)行窗口平移縮放時,一旦窗口變化即進行更新,不必等到釋放鼠標,使用體驗與主流GIS平臺的電子地圖類似。

4.3 顯示與緩存機制

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

顯示控制:AutoCAD 2006以后,在當前模型空間的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)

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

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

網(wǎng)絡(luò)檢測:網(wǎng)絡(luò)不通時,客戶端直接獲取服務(wù)器的遠程圖片需要很長時間才會返回出錯信息,在此期間AutoCAD會處于“假死機”狀態(tài)無法操作,因此程序運行時首先進行網(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ù),可以方便地實現(xiàn)矢量圖和影像圖等電子地圖的疊加比對分析,廣泛應(yī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組件實現(xiàn)瓦片地圖的應(yīng)用[J]. 測繪通報,2015(3):115~116,120.

[5] 施立瑾,張賀忻. 面向?qū)ο蟮腁utoCAD開發(fā)工具ARX Notification機制及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平臺影像自動配準方法及實現(xiàn)[J]. 地理空間信息,2010,8(4):28~31.

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

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

猜你喜歡
服務(wù)
服務(wù)在身邊 健康每一天
服務(wù)在身邊 健康每一天
服務(wù)在身邊 健康每一天
服務(wù)在身邊 健康每一天
服務(wù)在身邊 健康每一天
招行30年:從“滿意服務(wù)”到“感動服務(wù)”
商周刊(2017年9期)2017-08-22 02:57:56
主站蜘蛛池模板: 国产精品自在拍首页视频8| 日韩大片免费观看视频播放| 高清大学生毛片一级| 999在线免费视频| 美女黄网十八禁免费看| 四虎成人精品在永久免费| 亚洲综合久久成人AV| 亚洲一级色| 无码 在线 在线| 精品欧美一区二区三区在线| 视频一区视频二区日韩专区| 国产成人亚洲日韩欧美电影| 手机在线免费不卡一区二| 久久无码av三级| 久久婷婷人人澡人人爱91| 亚洲精品手机在线| 欧美a√在线| 天堂成人av| 日韩欧美综合在线制服| 国产精品主播| 福利在线不卡| 欧美日韩国产在线人成app| 日本五区在线不卡精品| 亚洲一区第一页| 亚洲国产天堂久久综合226114| 国产一级二级三级毛片| 亚洲精品国产日韩无码AV永久免费网| 日韩国产亚洲一区二区在线观看 | 精品国产www| 国产高清免费午夜在线视频| 久久久噜噜噜久久中文字幕色伊伊| 亚洲二区视频| 婷婷亚洲视频| 国产成人精品在线| 91精品国产一区自在线拍| 狠狠操夜夜爽| 免费看a级毛片| 丝袜亚洲综合| 成人免费黄色小视频| 中文字幕亚洲专区第19页| 在线观看视频99| 青草精品视频| 国产流白浆视频| 色妞www精品视频一级下载| 在线观看国产精美视频| 国产无码网站在线观看| 国产在线自在拍91精品黑人| 国产麻豆va精品视频| 凹凸精品免费精品视频| 欧美亚洲国产精品久久蜜芽| 激情综合婷婷丁香五月尤物| 欧美成人影院亚洲综合图| 欧美第九页| 不卡视频国产| 色哟哟国产精品一区二区| 波多野结衣二区| 国产男人的天堂| 亚洲综合一区国产精品| 日韩精品无码不卡无码| 久久久久久国产精品mv| 免费毛片视频| 久久伊人操| yjizz国产在线视频网| 亚洲天堂色色人体| 日韩人妻精品一区| 亚洲成综合人影院在院播放| 色偷偷综合网| 国产精品亚洲一区二区三区z| 91精品视频在线播放| 美女无遮挡免费视频网站| 欧美日韩亚洲国产| 波多野结衣中文字幕一区二区| 国产精品手机视频一区二区| 亚洲av综合网| 日韩一级毛一欧美一国产| 欧美亚洲日韩不卡在线在线观看| 国产成人综合久久精品尤物| 五月婷婷综合色| 亚洲欧美不卡中文字幕| 亚洲区视频在线观看| 成人永久免费A∨一级在线播放| 久综合日韩|