專利名稱:建立在網(wǎng)絡(luò)電子地圖上的工程在線選線交互設(shè)計(jì)系統(tǒng)及方法
技術(shù)領(lǐng)域:
本發(fā)明屬于工程領(lǐng)域與GIS領(lǐng)域,尤其是一種建立在網(wǎng)絡(luò)電子地圖上的工程在線選線交互設(shè)計(jì)系統(tǒng)及方法。
背景技術(shù):
當(dāng)今的工程選線依賴兩項(xiàng)基礎(chǔ)支持,第一是底圖數(shù)據(jù),第二是設(shè)計(jì)平臺(tái)。底圖數(shù)據(jù)不論是從地方政府購(gòu)買還是有實(shí)力的單位航飛,成本都非常高,部分采購(gòu)底圖由于年代久遠(yuǎn)無(wú)現(xiàn)勢(shì)性可言,通過(guò)作業(yè)采集周期長(zhǎng)、初期成本大、風(fēng)險(xiǎn)高,在競(jìng)爭(zhēng)日益加劇,等待底圖到位的時(shí)間往往會(huì)貽誤戰(zhàn)機(jī),直接導(dǎo)致工程前期工作開展艱難;如今的工程選線平臺(tái)普遍采用CAD軟件在平面上進(jìn)行紙上定線,大型設(shè)計(jì)院每年需要向Autodesk公司支付巨額的版權(quán)使用費(fèi),而且真實(shí)地球本身就是橢圓的,強(qiáng)制在平面上進(jìn)行表達(dá)與設(shè)計(jì)使得長(zhǎng)大干線的精度很難滿足要求,而且只對(duì)在確定的單一比例尺進(jìn)行工程選線設(shè)計(jì),存在工程坐標(biāo)與大地位置脫節(jié)的弊端。隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,越來(lái)越多的網(wǎng)絡(luò)電子地圖機(jī)構(gòu)傾向于利用互聯(lián)網(wǎng)載體,將地圖數(shù)據(jù)發(fā)布到互聯(lián)網(wǎng)上,供全球用戶免費(fèi)查看與導(dǎo)航,并提供了常用的如查詢、點(diǎn)位的功能API供第三方進(jìn)行拓展開發(fā)。綜上所述,通過(guò)網(wǎng)絡(luò)電子地圖而實(shí)現(xiàn)工程在線選線交互設(shè)計(jì)成為可能。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種在底圖上充分借助Google Maps、百度等電子地圖服務(wù)的支持,辟一種獨(dú)立于CAD平面選線設(shè)計(jì)之外、無(wú)平臺(tái)要求、部署更廉價(jià)、更靈活并且無(wú)需要數(shù)據(jù)準(zhǔn)備的、更適宜于分布式操作的多媒介支持、多尺度表達(dá)的建立在網(wǎng)絡(luò)電子地圖上的工程在線選線交互設(shè)計(jì)系統(tǒng)及方法。為了實(shí)現(xiàn)上述目的,本發(fā)明所采用的技術(shù)方案是一種建立在網(wǎng)絡(luò)電子地圖上的工程在線選線交互設(shè)計(jì)系統(tǒng),包括基于網(wǎng)絡(luò)電子地圖的頁(yè)面程序模塊由獨(dú)立的第三方電子地圖提供支持,通常需要具備地圖定位查詢功能或地圖API支持,其功能就是提供網(wǎng)絡(luò)電子地圖供設(shè)計(jì)作為底圖使用;線位矢量表達(dá)與交互設(shè)計(jì)模塊由JavaScript技術(shù)實(shí)現(xiàn),嵌入到調(diào)用所述網(wǎng)絡(luò)電子地圖的頁(yè)面中,其功能就是將線位方案數(shù)據(jù)模型表達(dá)到頁(yè)面上,并使其能夠接受用戶的交互響應(yīng)進(jìn)行設(shè)計(jì);桌面程序模塊針對(duì)線位方案數(shù)據(jù)庫(kù),建立線位方案數(shù)據(jù)模型,并提供選線方案的參數(shù)化配置與管理界面、及維持線位方案的中央動(dòng)態(tài)平面投影正反算,以提供高精度的線位方案表達(dá)與交互。所述網(wǎng)絡(luò)電子地圖頁(yè)面程序模塊與桌面程序模塊之間實(shí)現(xiàn)通信連接,所述通信連接包括:主動(dòng)通信模式:即桌面模塊程序需要調(diào)用、訪問(wèn)頁(yè)面程序模塊的方法或成員函數(shù)時(shí),由桌面程序模塊通過(guò)控件的方法來(lái)激發(fā)頁(yè)面程序模塊中定義的事件,該通信模式可以傳遞線位的經(jīng)緯度坐標(biāo)系列參數(shù),通過(guò)該參數(shù)傳向桌面程序模塊供頁(yè)面上進(jìn)行繪制;被動(dòng)通信模式:即當(dāng)頁(yè)面程序模塊上的交互需要將線位數(shù)據(jù)模型更新到方案模型或需要得到桌面程序模塊的業(yè)務(wù)響應(yīng)時(shí)進(jìn)行的通信方式,該通信模式在桌面程序模塊中設(shè)置一個(gè)定時(shí)器控件,定時(shí)監(jiān)聽頁(yè)面程序模塊,當(dāng)頁(yè)面程序模塊上指定的事件需要激發(fā)桌面程序模塊時(shí),就會(huì)向桌面程序模塊發(fā)送消息調(diào)用指定的句柄函數(shù),從而實(shí)現(xiàn)頁(yè)面程序模塊上的交互事件在桌面程序模塊 中的響應(yīng)。本發(fā)明還提供了一種建立在網(wǎng)絡(luò)電子地圖上的工程在線選線交互設(shè)計(jì)方法,包括以下步驟:步驟1:通過(guò)線位矢量表達(dá)與交互設(shè)計(jì)模塊打開既有的線位方案數(shù)據(jù)庫(kù),在頁(yè)面程序模塊上進(jìn)行線位方案數(shù)據(jù)的網(wǎng)絡(luò)頁(yè)面表達(dá);步驟2:依據(jù)設(shè)計(jì)要求新建線位方案數(shù)據(jù),在桌面程序模塊上進(jìn)行線位方案數(shù)據(jù)的頁(yè)面表達(dá);步驟3:桌面程序模塊通過(guò)頁(yè)面程序模塊導(dǎo)入KML交點(diǎn)線,將導(dǎo)入KML交點(diǎn)線地理信息數(shù)據(jù)與線位方案數(shù)據(jù)進(jìn)行比較,作出適應(yīng)性調(diào)整配置,然后在桌面程序模塊上進(jìn)行新建的線位方案數(shù)據(jù)的頁(yè)面表達(dá);步驟4:在頁(yè)面程序模塊上將線位方案轉(zhuǎn)換后的線位方案數(shù)據(jù)進(jìn)行網(wǎng)絡(luò)頁(yè)面表達(dá)。所述步驟3中作出適應(yīng)性調(diào)整配置的方法是:調(diào)用桌面程序模塊的控件對(duì)頁(yè)面上的線位進(jìn)行滿足設(shè)計(jì)要求的移動(dòng),并對(duì)整個(gè)線位中的N個(gè)曲線交點(diǎn)的經(jīng)緯度坐標(biāo)系列參數(shù)進(jìn)行存儲(chǔ),所述NS O。對(duì)于N ^ 3個(gè)曲線交點(diǎn),所述桌面程序模塊的控件通過(guò)調(diào)整線位后,會(huì)對(duì)其中變動(dòng)的N個(gè)交點(diǎn)的變動(dòng)前、后坐標(biāo)位置加入七參數(shù)的計(jì)算模型,計(jì)算出布爾沙七參數(shù)后對(duì)方案中的所有交點(diǎn)實(shí)現(xiàn)布爾沙變換,從而達(dá)到對(duì)工程線位的整體變換效果。所述步驟3中桌面程序模塊以線位中央?yún)^(qū)域的經(jīng)線位置為中央投影經(jīng)線,建立動(dòng)態(tài)的投影平面以實(shí)現(xiàn)工程數(shù)據(jù)與地圖經(jīng)緯度數(shù)據(jù)的高精度投影正反算及交互的頁(yè)面表達(dá)。所述步驟I和步驟4頁(yè)面程序模塊中的網(wǎng)絡(luò)頁(yè)面表達(dá)為能夠?qū)崿F(xiàn)各種網(wǎng)絡(luò)電子地圖進(jìn)行切換的網(wǎng)絡(luò)頁(yè)面表達(dá)。本發(fā)明具有以下有益效果:I)脫離底圖依賴:能夠在脫離傳統(tǒng)CAD環(huán)境下依據(jù)網(wǎng)絡(luò)地圖服務(wù)開展選線設(shè)計(jì),支持全球范圍內(nèi)的大區(qū)域無(wú)圖紙線位方案規(guī)劃;2)地圖數(shù)據(jù)豐富:多媒介地圖數(shù)據(jù)支持,能夠方便地在交通圖、衛(wèi)片圖及柵格地形中進(jìn)行切換選線;3)實(shí)時(shí)查看縱斷面:能夠?qū)崟r(shí)地得到線位的地面剖切線供選線參考決策。選線結(jié)果能夠兼容平面工程表達(dá)與球面空間表達(dá);4)無(wú)需專業(yè)軟件支持,設(shè)計(jì)環(huán)境簡(jiǎn)單;5)采用更符合設(shè)計(jì)思維逐級(jí)求精交互設(shè)計(jì)模式;
6)兼容性強(qiáng),選線成果易于向任意工程平面轉(zhuǎn)換及制圖輸出;7)多分辨率多尺度的數(shù)據(jù)支持,能夠綜合1:50000、1 :10000、1:2000等多種比例尺的數(shù)據(jù)于一體進(jìn)行綜合選線;8)平縱一體聯(lián)動(dòng)的交互選線設(shè)計(jì)方式,能夠同時(shí)針對(duì)多個(gè)選線方案進(jìn)行比選及綜合選線設(shè)計(jì)。
圖1為本發(fā)明的系統(tǒng)框圖。圖2為本發(fā)明桌面程序模塊功能結(jié)構(gòu)示意圖。圖3為本發(fā)明運(yùn)用參照點(diǎn)對(duì)比計(jì)算七參數(shù)實(shí)現(xiàn)工程方案整體變換方法示意圖。圖4為本發(fā)明所涉及的工程平面轉(zhuǎn)換與中央動(dòng)態(tài)平面轉(zhuǎn)換示意圖。
具體實(shí)施例方式以下結(jié)合說(shuō)明書附圖及具體實(shí)施進(jìn)一步說(shuō)明本發(fā)明的技術(shù)方案。此處所描述的具體實(shí)施僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。為了更好地說(shuō)明本發(fā)明技術(shù)的實(shí)施,采用先整體后部分的方法介紹本發(fā)明的實(shí)施(I)本發(fā)明整體架構(gòu)如圖1所示基于網(wǎng)絡(luò)電子地圖的頁(yè)面程序模塊S4由獨(dú)立的第三方電子地圖提供支持,通常需要具備地圖定位查詢功能或地圖API支持,如Google Maps或百度地圖都可以,其功能就是提供網(wǎng)絡(luò)電子地圖供設(shè)計(jì)作為底圖使用,無(wú)須額外開發(fā),故不再累述;線位矢量表達(dá)與交互設(shè)計(jì)模塊S5由JavaScript技術(shù)實(shí)現(xiàn),嵌入到調(diào)用電子地圖的頁(yè)面中,與系統(tǒng)平臺(tái)無(wú)關(guān),兼容主流網(wǎng)頁(yè)瀏覽器如IE、Chrome等,其主要功能就是將線位模型表達(dá)到頁(yè)面上,并使其能夠接受用戶的交互響應(yīng)進(jìn)行設(shè)計(jì);桌面程序模塊S3主要針對(duì)線位方案數(shù)據(jù)庫(kù),建立線位方案數(shù)據(jù)模型,并提供選線方案的參數(shù)化配置與管理界面、及維持線位方案的中央動(dòng)態(tài)平面投影正反算以提供高精度的方案表達(dá)與交互,此模塊由.Net程序開發(fā)的桌面模塊。所述整體架構(gòu)中要處理的關(guān)鍵技術(shù)實(shí)現(xiàn)是實(shí)現(xiàn)桌面程序模塊與頁(yè)面程序模塊之間的通信,由于這兩個(gè)模塊的程序采用不同的編程語(yǔ)言開發(fā),編譯與運(yùn)行環(huán)境完全不同,實(shí)現(xiàn)兩者之間的通信是開發(fā)類似應(yīng)用程序的難點(diǎn),為此,本發(fā)明通過(guò)采用如下的方式來(lái)建立它們之間的通信主動(dòng)通信模式即桌面模塊程序需要調(diào)用、訪問(wèn)頁(yè)面程序的方法或成員函數(shù)時(shí),由桌面程序模塊通過(guò)WebBrowser控件的Document.1nvokeScript方法來(lái)激發(fā)頁(yè)面模塊中定義的事件,該方法可以傳遞一個(gè)參數(shù)對(duì)像,如線位的經(jīng)緯度坐標(biāo)系列就可以通過(guò)該參數(shù)傳向頁(yè)面程序供頁(yè)面上進(jìn)行繪制;被動(dòng)通信模式即當(dāng)頁(yè)面上的交互需要將線位數(shù)據(jù)更新到方案模型或需要得到模塊程序的業(yè)務(wù)響應(yīng)時(shí)(如添加、刪除、移動(dòng)曲線交點(diǎn),點(diǎn)擊交點(diǎn)需要配置交點(diǎn)參數(shù))進(jìn)行的通信方式。由于頁(yè)面無(wú)法直接向模塊程序發(fā)送消息,通常此類實(shí)現(xiàn)更為困難。本發(fā)明解決本問(wèn)題的方法,是變被動(dòng)為主動(dòng),在桌面模塊中設(shè)置一個(gè)定時(shí)器控件,定時(shí)監(jiān)聽頁(yè)面,監(jiān)聽的主要目的不是截獲頁(yè)面發(fā)過(guò)來(lái)的消息,而是給頁(yè)面指定的控件要素設(shè)置在桌面模塊上的響應(yīng)函數(shù),如下所示pElem. AttachEventHandler (〃onclick〃, xxsjEventHandler)這樣當(dāng)頁(yè)面上指定的pElem控件onclick事件激發(fā)時(shí),就會(huì)向模塊程序發(fā)送消息調(diào)用xxsjEventHandler指定的句柄函數(shù)。從而實(shí)現(xiàn)頁(yè)面上的交互事件在桌面模塊中的響應(yīng)。這里定時(shí)器并不需要監(jiān)聽消息,之所以還需要定時(shí)器不斷給頁(yè)面控件關(guān)聯(lián)響應(yīng)事件,是因?yàn)轫?yè)面會(huì)經(jīng)常刷新,刷新后各頁(yè)面控件就會(huì)丟掉各自關(guān)聯(lián)的桌面事件,而頁(yè)面程序自己則不可能在刷新時(shí)給自己的控件關(guān)聯(lián)上桌面上的響應(yīng)事件,因而只能寄希望于桌面模塊主動(dòng)的、常態(tài)的不斷的掃描進(jìn)行控制事件關(guān)聯(lián)。(2)桌面程序模塊桌面程序模塊最主要的功能就是管理線位方案模型,線位方案模型是方案數(shù)據(jù)庫(kù)在計(jì)算機(jī)內(nèi)存中的結(jié)構(gòu)化、邏輯化表達(dá)實(shí)體,是桌面程序模塊管理的基本單元。桌面程序模塊的基本結(jié)構(gòu)如圖2所示。從結(jié)構(gòu)圖可以看出,桌面程序模塊可以管理許多個(gè)線位方案模型,負(fù)責(zé)各個(gè)模型的表達(dá)、參數(shù)化配置、線位方案切換及保存等操作實(shí)現(xiàn)。除線位的交互設(shè)計(jì)S35在頁(yè)面上完成外,其它所有針對(duì)方案的管理操作都是在桌面管理模塊上完成的。下面來(lái)分述各種操作的實(shí)現(xiàn),首先從方案模型的來(lái)源來(lái)看有如下幾種操作S31直接導(dǎo)入KML線位交點(diǎn)數(shù)據(jù),是一種運(yùn)用在Google Earth上根據(jù)初步設(shè)計(jì)的交點(diǎn)線位導(dǎo)出KML數(shù)據(jù)的簡(jiǎn)單建立新線位方案的模式,由于KML記錄的交點(diǎn)本身就是大地坐標(biāo)頂點(diǎn),無(wú)需進(jìn)行平面到球面的反投影轉(zhuǎn)換,但由于KML交點(diǎn)數(shù)據(jù)缺乏配置曲線的半徑與緩長(zhǎng)參數(shù),需要針對(duì)各個(gè)交點(diǎn)配置合適的曲線參數(shù)后即可以形成線位方案模型,這里通過(guò)自動(dòng)配置的方式簡(jiǎn)化了導(dǎo)入的流程,也可以通過(guò)交互設(shè)計(jì)靈活地更改這些曲線參數(shù)實(shí)現(xiàn)更優(yōu)化的設(shè)計(jì);S32適合直接打開既有的平面線位方案數(shù)據(jù)庫(kù),包括本發(fā)明生成的數(shù)據(jù)庫(kù)方案以及兼容的CAD線位設(shè)計(jì)方案數(shù)據(jù)庫(kù)。打開平面線位方案數(shù)據(jù)庫(kù)時(shí),由于交點(diǎn)數(shù)據(jù)是平面數(shù)據(jù),需要將其統(tǒng)一轉(zhuǎn)換到球面坐標(biāo)體系上來(lái),這是需要借助數(shù)據(jù)庫(kù)中的轉(zhuǎn)換參數(shù)來(lái)進(jìn)行投影反算,轉(zhuǎn)換參數(shù)記錄的是該方案獨(dú)立工程平面的參數(shù),如果方案中不存在轉(zhuǎn)換參數(shù),則在打開時(shí)會(huì)提示輸入相關(guān)的獨(dú)立工程坐標(biāo)平面參數(shù)。方案打開后轉(zhuǎn)換形成統(tǒng)一經(jīng)緯度的交點(diǎn)數(shù)據(jù)模型供桌面程序表達(dá)與交互;S33支持無(wú)數(shù)據(jù)輸入的新建方案模型,它只需要在輸入簡(jiǎn)單的方案參數(shù)后即自動(dòng)進(jìn)入該方案的頁(yè)面交互狀態(tài),接受用戶在頁(yè)面上直接繪制交點(diǎn)形成模型方案;S34是另一種建立在現(xiàn)在方案模型基礎(chǔ)之上的通過(guò)七參數(shù)模型轉(zhuǎn)換而生成的新的方案模型,該生成模型的實(shí)現(xiàn)如圖3所示,其具體實(shí)現(xiàn)過(guò)程可以分解如下呈現(xiàn)當(dāng)前方案所有交點(diǎn)的交點(diǎn)標(biāo)志圖標(biāo);用戶根據(jù)情況交互移動(dòng)N(N>=3)個(gè)交點(diǎn)標(biāo)志圖標(biāo);從現(xiàn)有方案模型中檢索所有移動(dòng)過(guò)的交點(diǎn)標(biāo)志圖標(biāo),將其交點(diǎn)位置與圖標(biāo)位置(新設(shè)定的位置)形成點(diǎn)對(duì)加入到七參數(shù)轉(zhuǎn)換模型中,計(jì)算出布爾沙轉(zhuǎn)換七參數(shù);運(yùn)用計(jì)算所得到的轉(zhuǎn)換七參數(shù)對(duì)原方案中的所有交點(diǎn)進(jìn)行轉(zhuǎn)換,并將轉(zhuǎn)換后得到的交點(diǎn)及原模型中的交點(diǎn)曲線參數(shù)加入到新模型中;將新的模型加入到桌面程序模塊中,由其統(tǒng)一管理、表達(dá)與交互。
無(wú)論是S31、S32、S33、S34哪一種方式得到的模型,最終都將得到的描述線位的交點(diǎn)數(shù)據(jù)列表,卻所有交點(diǎn)坐標(biāo)都已經(jīng)統(tǒng)一轉(zhuǎn)換為經(jīng)緯度大地坐標(biāo),其結(jié)構(gòu)格式如下:交點(diǎn)1:交點(diǎn)經(jīng)度、交點(diǎn)緯度、前緩長(zhǎng)、曲線半徑、后緩長(zhǎng)交點(diǎn)2:交點(diǎn)經(jīng)度、交點(diǎn)緯度、前緩長(zhǎng)、曲線半徑、后緩長(zhǎng).......
交點(diǎn)η:交點(diǎn)經(jīng)度、交點(diǎn)緯度、前緩長(zhǎng)、曲線半徑、后緩長(zhǎng)要將上述交點(diǎn)數(shù)據(jù)列表表達(dá)為頁(yè)面上的圓滑曲線,則需要構(gòu)建一個(gè)致密的經(jīng)緯度曲線散列點(diǎn)鏈交由桌面程序發(fā)送給頁(yè)面程序表達(dá),這就需要根據(jù)各個(gè)曲線的交點(diǎn)參數(shù)按照工程線位的計(jì)算方法進(jìn)行計(jì)算,由于該計(jì)算方法只能限定在平面上進(jìn)行,故需要重新將經(jīng)緯度表示的交點(diǎn)數(shù)據(jù)換算回平面數(shù)據(jù),針對(duì)非既有方案S32,事先并不存在指定的工程平面參數(shù),而且指定的工程平面參數(shù)隨著交互過(guò)程區(qū)域擴(kuò)展也可能不是最精確的換算平面。故本發(fā)明提出了根據(jù)區(qū)域中央?yún)^(qū)建立自動(dòng)的動(dòng)態(tài)平面供交點(diǎn)高精度投影的方式如圖4所示。將交點(diǎn)數(shù)據(jù)經(jīng)由中央動(dòng)態(tài)平面表達(dá)到頁(yè)面S30過(guò)程的具體實(shí)現(xiàn)步驟如下:根據(jù)交點(diǎn)區(qū)域的經(jīng)向中央(經(jīng)度值,可向上向下取整)建立零水準(zhǔn)面工程平面,它在理論就更有指定工程平面更高的轉(zhuǎn)換精度;將交點(diǎn)的經(jīng)度度數(shù)據(jù)經(jīng)過(guò)高斯地圖投影轉(zhuǎn)換成該中央平面上的數(shù)據(jù);根據(jù)線位工程計(jì)算模型依據(jù)各交點(diǎn)的平面位置、緩長(zhǎng)及半徑配置計(jì)算線位的平面幾何線位;對(duì)平面幾何線位進(jìn)行散列化形成致密的點(diǎn)鏈,保障關(guān)鍵點(diǎn)及曲線部分有足夠精度表達(dá)的分布點(diǎn)數(shù);對(duì)所有平面散列點(diǎn)又按照該中央平面進(jìn)行反投影計(jì)算得到大地經(jīng)緯度表達(dá)的散列點(diǎn)鏈;將經(jīng)緯度點(diǎn)鏈數(shù)據(jù)送交頁(yè)面進(jìn)行表達(dá),從而實(shí)現(xiàn)了由交點(diǎn)線到線位曲線的圓滑表達(dá)。對(duì)于操作S35的頁(yè)面交互過(guò)程,其主要內(nèi)容包括:鼠標(biāo)移動(dòng)到線位時(shí),線位每?jī)山稽c(diǎn)構(gòu)成的線段中央形成一個(gè)偽結(jié)點(diǎn),可以通過(guò)拖動(dòng)偽結(jié)點(diǎn)方便地實(shí)現(xiàn)增加一個(gè)曲線交點(diǎn);可以通過(guò)移動(dòng)交點(diǎn)實(shí)現(xiàn)線位交點(diǎn)數(shù)據(jù)的更新;通過(guò)組合鍵點(diǎn)擊曲線交點(diǎn)時(shí),可以方便地實(shí)現(xiàn)線位交點(diǎn)的刪除;鼠標(biāo)點(diǎn)擊交點(diǎn)時(shí),出現(xiàn)該交點(diǎn)的曲線參數(shù)配置界面,可以方便地實(shí)現(xiàn)該曲線交點(diǎn)的參數(shù)配置;需要說(shuō)明的,由于要實(shí)現(xiàn)交點(diǎn)線的交互操作與線位的實(shí)時(shí)聯(lián)動(dòng),事實(shí)上交點(diǎn)數(shù)據(jù)的任何變化,都會(huì)激發(fā)上述S30操作流程,因而也可以說(shuō)S35與S30形成一個(gè)聯(lián)動(dòng)的流程環(huán),有S35的操作必定就有S30的處理,但反過(guò)來(lái)就不一定。為什么將中央投影平面以稱之為動(dòng)態(tài)中央平面呢?這是因?yàn)殡S著交互的進(jìn)行,選線區(qū)域完全有可能擴(kuò)大或移位,如果固化為初始的中央平面,則可能隨著交互的進(jìn)行逐步喪失模型表達(dá)的精度,因而在每一次S35操作之后,程序都會(huì)根據(jù)需要判斷是否需要重新調(diào)整中央平面,如果需要?jiǎng)t可以進(jìn)行自動(dòng)調(diào)整以保障更高的模型表達(dá)精度。最后一個(gè)主要桌面模塊功能是方案模型的保存S36,其主要目的是將各種方案記錄形成數(shù)據(jù)庫(kù)文件存儲(chǔ)在計(jì)算機(jī)上。由于工程線位方案數(shù)據(jù)庫(kù)通常都是指定的平面交點(diǎn)線位,并且為了照顧、適應(yīng)其它已經(jīng)采集的數(shù)據(jù),通常會(huì)給定確定的獨(dú)立工程坐標(biāo)平面參數(shù),這是兩個(gè)完全可以獨(dú)立的轉(zhuǎn)換體系,因此,對(duì)線位方案模型的保存S36,需要按如下步驟來(lái)實(shí)施如果方案參數(shù)表中存在工程獨(dú)立平面參數(shù),將方案模型中的經(jīng)緯度交點(diǎn)坐標(biāo)按照給定的平面進(jìn)行投影正算得到交點(diǎn)的平面坐標(biāo),保存到線位方案數(shù)據(jù)庫(kù)中的交點(diǎn)表中,同時(shí)保存方案模型的其它配置參數(shù);如果是新建方案S31/S33/S34,或是打開方案中并沒(méi)有給定工程獨(dú)立平面參數(shù),以當(dāng)前確立的動(dòng)態(tài)平面參數(shù)作為默認(rèn)參數(shù)提示給用戶進(jìn)行修改,并按照最終確立的平面參數(shù)進(jìn)行投影正算得到交點(diǎn)的平面坐標(biāo),保存到線位方案數(shù)據(jù)庫(kù)中的交點(diǎn)表中,同時(shí)保存方案模型的所有參數(shù)到參數(shù)表中。(3)頁(yè)面線位表達(dá)與交互設(shè)計(jì)模塊頁(yè)面線位表達(dá)與交互設(shè)計(jì)模塊由完全的JavaSrcipt代碼庫(kù)組成,由加載電子地圖的主頁(yè)面嵌入調(diào)用,根據(jù)頁(yè)面的部署位置不同,可以將其連同桌面模塊一樣部署在用戶的本地機(jī)上,也可以將其發(fā)布到企業(yè)私有或公共的網(wǎng)絡(luò)服務(wù)器上,因而可以形成多種布署形式的技術(shù)應(yīng)用擴(kuò)展,需要說(shuō)明的是,無(wú)能哪一種部署模式,只有所使用的客戶機(jī)器連接到互聯(lián)網(wǎng),才能正常訪問(wèn)第三方的電子地網(wǎng)資源,本發(fā)明才能正常得以應(yīng)用。從總體上來(lái)講,頁(yè)面線位表達(dá)與交互設(shè)計(jì)模塊的功能就是兩個(gè)1、將桌面程序模塊發(fā)送過(guò)來(lái)的線位以矢量形式繪制到頁(yè)面上;2、提供S53給定的針對(duì)線位交點(diǎn)的各種交互操作功能。由于JavaScript的結(jié)構(gòu)性不強(qiáng),而且本發(fā)明的主體界面得接口、線位模塊管理及模型生成與轉(zhuǎn)換全都安排在了桌面程序模塊實(shí)現(xiàn),為了描述簡(jiǎn)單,頁(yè)面模塊可以簡(jiǎn)單地認(rèn)為只需要提供上述兩個(gè)功能的應(yīng)用程序接口 API即可,下面以Google Maps電子地圖為例,針對(duì)這兩種功能的實(shí)現(xiàn)描述如下線位的矢量繪制表達(dá)要將矢量線位表達(dá)到Google Maps上,可以為Google Maps電子地圖對(duì)象GMap添加一個(gè)層Overlay,往這個(gè)層中加入一個(gè)GPolyline對(duì)像,并將從桌面程序傳入的線位經(jīng)諱度散列點(diǎn)鏈傳給GPolyline對(duì)像,即可以實(shí)現(xiàn)一個(gè)矢量線位在電子地圖上的正確表達(dá);頁(yè)面線位的交點(diǎn)交互設(shè)計(jì)技術(shù)矢量線位以GPolyline表達(dá)到頁(yè)面上,如果不針對(duì)該GPolyline對(duì)象設(shè)立事件監(jiān)聽,將只會(huì)是一個(gè)靜態(tài)的、不能交互的線位,因而需要為GPolyline對(duì)象設(shè)置一系列的監(jiān)聽事件,如MouseOver (鼠標(biāo)移過(guò))、Click、LineUpdate (線位更新)等事件,通過(guò)對(duì)這些事件的處理響應(yīng),接受交點(diǎn)線的交互修改、向桌面程序發(fā)送調(diào)用消息并接受反饋回來(lái)的曲線線位點(diǎn)鏈進(jìn)行更新表達(dá),是交互設(shè)計(jì)技術(shù)的基本機(jī)制。以圖5為例,下面針對(duì)各種交互方式的實(shí)現(xiàn)描述如下交點(diǎn)線的呈現(xiàn)與隱藏,交點(diǎn)線不是總呈線上在圖上,只有需要編輯該線位時(shí),根據(jù)鼠標(biāo)經(jīng)過(guò)線位曲線的MouseOver事件對(duì)交點(diǎn)線進(jìn)行Visible屬性進(jìn)行設(shè)置,或在業(yè)務(wù)需要時(shí)(如交點(diǎn)圖標(biāo)呈現(xiàn)出來(lái)供用戶移動(dòng)進(jìn)行方案轉(zhuǎn)換時(shí))進(jìn)行該屬性的狀態(tài)設(shè)置;交點(diǎn)線呈現(xiàn)出來(lái),該方案進(jìn)入編輯狀態(tài),事實(shí)上所有的交互設(shè)計(jì)都是針對(duì)交點(diǎn)線及交點(diǎn)線上的交點(diǎn)的,線位曲線只是被動(dòng)的聯(lián)動(dòng)曲線,交點(diǎn)線變,它就可以自動(dòng)自桌面模塊獲取到聯(lián)動(dòng)的更新線位;
偽結(jié)點(diǎn)呈現(xiàn)與隱藏,對(duì)交點(diǎn)線設(shè)置enableEditing({onEvent:〃mouseover〃});disableEditing({onEvent:〃mouseout〃});偽結(jié)點(diǎn)或交點(diǎn)的拖動(dòng)將激發(fā)交點(diǎn)線的LineUpdate事件,通過(guò)LineUpdate事件響應(yīng)可以反饋交互的交點(diǎn)線結(jié)點(diǎn)個(gè)數(shù)與坐標(biāo),交由桌面模塊程序判斷是添加了新的交點(diǎn)還是只是移動(dòng)的現(xiàn)有的交點(diǎn),同時(shí)針對(duì)新的交點(diǎn)線更線線位曲線;交點(diǎn)上的鼠標(biāo)點(diǎn)擊將激發(fā)交點(diǎn)線的Click事件,通過(guò)Click響應(yīng)可以通知桌面程序作如下兩種不同方式的處理沒(méi)有功能組合鍵按下時(shí),桌面程序會(huì)檢索該交點(diǎn)的序號(hào),并呈現(xiàn)出該交點(diǎn)所配置的曲線半徑及緩長(zhǎng)設(shè)置屬性欄,用戶可以通過(guò)在屬性欄中修改曲線參數(shù)實(shí)現(xiàn)方案的調(diào)整;當(dāng)有功能組合鍵按下時(shí)(如Shift),桌面程序會(huì)刪除該交點(diǎn)并實(shí)現(xiàn)線位的更新繪制;上述描述詳細(xì)地給出了單個(gè)線位在頁(yè)面上的交互實(shí)現(xiàn),事實(shí)上頁(yè)面上因?yàn)樯婕暗巾?yè)面的更新、多方案的切換、定位查詢等,提供了更豐富的API接口供桌面應(yīng)用程序調(diào)用,這里不再一一累述。針對(duì)Google Maps網(wǎng)絡(luò)電子地圖,頁(yè)面描述模塊還提供了一個(gè)重要的數(shù)據(jù)獲取服務(wù)功能,即線位的地形高程數(shù)據(jù)獲取,可以針對(duì)線位散列點(diǎn)調(diào)用Google Maps API函數(shù)從Google Maps的服務(wù)器上獲取高程數(shù)據(jù)供工程選線設(shè)計(jì)進(jìn)行縱斷面設(shè)計(jì),雖然目前只有Google Maps API提供了相應(yīng)的API功能函數(shù),但不影響本功能的專業(yè)結(jié)合創(chuàng)新應(yīng)用。為了實(shí)現(xiàn)線位方案與CAD平面工程的兼容設(shè)計(jì),本發(fā)明充分考慮到了平面工程線位的與球面工程交互的兼容性表達(dá)與統(tǒng)一的存儲(chǔ)結(jié)構(gòu),實(shí)現(xiàn)了方案的既可以在CAD中查看修改,也可以在電子地圖上查看修改的兼容。
權(quán)利要求
1.一種建立在網(wǎng)絡(luò)電子地圖上的工程在線選線交互設(shè)計(jì)系統(tǒng),包括: 基于網(wǎng)絡(luò)電子地圖的頁(yè)面程序模塊:由獨(dú)立的第三方電子地圖提供支持,通常需要具備地圖定位查詢功能或地圖API支持,其功能就是提供網(wǎng)絡(luò)電子地圖供設(shè)計(jì)作為底圖使用; 線位矢量表達(dá)與交互設(shè)計(jì)模塊:由JavaScript技術(shù)實(shí)現(xiàn),嵌入到調(diào)用所述網(wǎng)絡(luò)電子地圖的頁(yè)面中,其功能就是將線位方案數(shù)據(jù)模型表達(dá)到頁(yè)面上,并使其能夠接受用戶的交互響應(yīng)進(jìn)行設(shè)計(jì); 桌面程序模塊:針對(duì)線位方案數(shù)據(jù)庫(kù),建立線位方案數(shù)據(jù)模型,并提供選線方案的參數(shù)化配置與管理界面、及維持線位方案的中央動(dòng)態(tài)平面投影正反算,以提供高精度的線位方案表達(dá)與交互。
2.如權(quán)利要求1所述的建立在網(wǎng)絡(luò)電子地圖上的工程在線選線交互設(shè)計(jì)系統(tǒng),其特征在于:所述網(wǎng)絡(luò)電子地圖頁(yè)面程序模塊與桌面程序模塊之間實(shí)現(xiàn)通信連接,所述通信連接包括: 主動(dòng)通信模式:即桌面模塊程序需要調(diào)用、訪問(wèn)頁(yè)面程序模塊的方法或成員函數(shù)時(shí),由桌面程序模塊通過(guò)控件的方法來(lái)激發(fā)頁(yè)面程序模塊中定義的事件,該通信模式可以傳遞線位的經(jīng)緯度坐標(biāo)系列參數(shù),通過(guò)該參數(shù)傳向桌面程序模塊供頁(yè)面上進(jìn)行繪制; 被動(dòng)通信模式:即當(dāng)頁(yè)面程序模塊上的交互需要將線位數(shù)據(jù)模型更新到方案模型或需要得到桌面程序模塊的業(yè)務(wù)響應(yīng)時(shí)進(jìn)行的通信方式,該通信模式在桌面程序模塊中設(shè)置一個(gè)定時(shí)器控件,定時(shí)監(jiān)聽頁(yè)面程序模塊,當(dāng)頁(yè)面程序模塊上指定的事件需要激發(fā)桌面程序模塊時(shí),就會(huì)向桌面程序模塊發(fā)送消息調(diào)用指定的句柄函數(shù),從而實(shí)現(xiàn)頁(yè)面程序模塊上的交互事件在桌面程序模塊中的響應(yīng)。
3.如權(quán)利要求1所述的建立在網(wǎng)絡(luò)電子地圖上的工程在線選線交互設(shè)計(jì)系統(tǒng),其設(shè)計(jì)方法包括以下步驟: 步驟1:通過(guò)線位矢量表達(dá)與交互設(shè)計(jì)模塊打開既有的線位方案數(shù)據(jù)庫(kù),在頁(yè)面程序模塊上進(jìn)行線位方案數(shù)據(jù)的網(wǎng)絡(luò)頁(yè)面表達(dá); 步驟2:依據(jù)設(shè)計(jì)要求新建線位方案數(shù)據(jù),在桌面程序模塊上進(jìn)行線位方案數(shù)據(jù)的頁(yè)面表達(dá); 步驟3:桌面程序模塊通過(guò)頁(yè)面程序模塊導(dǎo)入KML交點(diǎn)線,將導(dǎo)入KML交點(diǎn)線地理信息數(shù)據(jù)與線位方案數(shù)據(jù)進(jìn)行比較,作出適應(yīng)性調(diào)整配置,然后在桌面程序模塊上進(jìn)行新建的線位方案數(shù)據(jù)的頁(yè)面表達(dá); 步驟4:在頁(yè)面程序模塊上將線位方案轉(zhuǎn)換后的線位方案數(shù)據(jù)進(jìn)行網(wǎng)絡(luò)頁(yè)面表達(dá)。
4.如權(quán)利要求3所述的建立在網(wǎng)絡(luò)電子地圖上的工程在線選線交互設(shè)計(jì)方法,其特征在于:所述步驟3中作出適應(yīng)性調(diào)整配置的方法是:調(diào)用桌面程序模塊的控件對(duì)頁(yè)面上的線位進(jìn)行滿足設(shè)計(jì)要求的移動(dòng),并對(duì)整個(gè)線位中的N個(gè)曲線交點(diǎn)的經(jīng)緯度坐標(biāo)系列參數(shù)進(jìn)行存儲(chǔ),所述NS O。
5.如權(quán)利要求4所述的建立在網(wǎng)絡(luò)電子地圖上的工程在線選線交互設(shè)計(jì)方法,其特征在于:對(duì)于N ^ 3個(gè)曲線交點(diǎn),所述桌面程序模塊的控件通過(guò)移動(dòng)線位調(diào)整線位后,會(huì)對(duì)其中變動(dòng)的N個(gè)交點(diǎn)的變動(dòng)前、后坐標(biāo)位置加入七參數(shù)的計(jì)算模型,計(jì)算出布爾沙七參數(shù)后對(duì)方案中的所有交點(diǎn)實(shí)現(xiàn)布爾沙變換,從而達(dá)到對(duì)工程線位的整體變換效果。
6.如權(quán)利要求3所述的建立在網(wǎng)絡(luò)電子地圖上的工程在線選線交互設(shè)計(jì)方法,其特征在于:所述步驟3中桌面程序模塊以線位中央?yún)^(qū)域的經(jīng)線位置為中央投影經(jīng)線,建立動(dòng)態(tài)的投影平面以實(shí)現(xiàn)工程數(shù)據(jù)與地圖經(jīng)緯度數(shù)據(jù)的高精度投影正反算及交互的頁(yè)面表達(dá)。
7.如權(quán)利要求3所述的建立在網(wǎng)絡(luò)電子地圖上的工程在線選線交互設(shè)計(jì)方法,其特征在于:所述步驟I和步驟4頁(yè)面程序模塊中的網(wǎng)絡(luò)頁(yè)面表達(dá)為能夠?qū)崿F(xiàn)各種網(wǎng)絡(luò)電子地圖進(jìn)行切換的網(wǎng)絡(luò)頁(yè)面表達(dá)。
8.如權(quán)利要求4或5所述的建立在網(wǎng)絡(luò)電子地圖上的工程在線選線交互設(shè)計(jì)方法,其特征在于:所述桌面程序 模塊的控件為鼠標(biāo),所述鼠標(biāo)對(duì)頁(yè)面上的線位進(jìn)行滿足設(shè)計(jì)要求的移動(dòng)。
全文摘要
本發(fā)明涉及一種建立在網(wǎng)絡(luò)電子地圖上的工程在線選線交互設(shè)計(jì)系統(tǒng)及方法,所述系統(tǒng)包括頁(yè)面程序模塊提供網(wǎng)絡(luò)電子地圖供設(shè)計(jì)作為底圖使用;線位矢量表達(dá)與交互設(shè)計(jì)模塊將線位方案數(shù)據(jù)模型表達(dá)到頁(yè)面上;桌面程序模塊建立線位方案數(shù)據(jù)模型,并提供選線方案的參數(shù)化配置與管理界面、及維持線位方案的中央動(dòng)態(tài)平面投影正反算及交互。本發(fā)明具有以下有益效果脫離底圖依賴、地圖數(shù)據(jù)豐富、實(shí)時(shí)查看縱斷面、無(wú)需專業(yè)軟件支持以及平縱一體聯(lián)動(dòng)的交互選線設(shè)計(jì)方式,能夠同時(shí)針對(duì)多個(gè)選線方案進(jìn)行比選及綜合選線設(shè)計(jì)。
文檔編號(hào)G06F9/44GK103077273SQ20121059466
公開日2013年5月1日 申請(qǐng)日期2012年12月31日 優(yōu)先權(quán)日2012年12月31日
發(fā)明者韓元利, 劉一平, 劉云東, 陳小全, 彭利輝 申請(qǐng)人:中鐵第四勘察設(shè)計(jì)院集團(tuán)有限公司