專利名稱:基于地理信息系統(tǒng)的可視化標(biāo)繪方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及圖像可視化領(lǐng)域,尤其涉及一種基于地理信息系統(tǒng)(Geographic Information System,簡稱GIS)的可視化標(biāo)繪方法及系統(tǒng)。
背景技術(shù):
隨著中國經(jīng)濟(jì)的快速發(fā)展,經(jīng)濟(jì)發(fā)達(dá)的城市聚集著越來多的人口,要維護(hù)這些大都市的繁榮穩(wěn)定,相關(guān)部門擔(dān)負(fù)著重要的責(zé)任。特別是現(xiàn)代的大城市人口流動性大,社會以及環(huán)境結(jié)構(gòu)非常復(fù)雜,所以各種應(yīng)急問題能否妥善快速的解決更是顯得異常重要。在相關(guān)的系統(tǒng)軟件中,GIS系統(tǒng)以其強(qiáng)大的空間計算能力以及非常直觀的圖形化表現(xiàn)形式而得到越來越廣泛的應(yīng)用,而計算機(jī)硬件綜合性能的提升又能滿足GIS系統(tǒng)對高速處理能力和海量存儲的需求。ArcIMS (Arc Internet Map Server)(Economic & Social Research hstitute,簡稱ESRI)最新推出的第二代互聯(lián)網(wǎng)上地理信息系統(tǒng)平臺,其結(jié)構(gòu)經(jīng)過特別設(shè)計用來滿足在hternet上提供地理數(shù)據(jù)和服務(wù)的需要。以ArcIMS為地理信息系統(tǒng)平臺,通過ajax技術(shù),正則表達(dá)式、JavaScript等技術(shù)將VML標(biāo)簽實現(xiàn)結(jié)構(gòu)化,并通過實時存儲分析該VML內(nèi)容,在地圖前臺進(jìn)行快速的展現(xiàn),使之在地層上實現(xiàn)實時的可視化分析的一系列操作。該地理信息系統(tǒng)平臺除了具備有放大、縮小、平移、全圖、前圖、后圖、 鷹眼、圖層控制等地圖瀏覽功能、點選查詢、框選查詢、圖層屬性查詢等空間查詢外,還必須具有事件定位功能、全球眼,距離量測、緩沖分析、專題圖等高級空間分析和輔助決策功能。在當(dāng)今的地理信息系統(tǒng)平臺中,處理各事件都需動用地圖標(biāo)繪功能,地圖標(biāo)繪指在地圖背景上標(biāo)繪各種具有空間特征的事、物的分布狀態(tài)或行動部署。因此用戶越來越希望可以在網(wǎng)絡(luò)上通過傳輸標(biāo)元素狀態(tài),使得態(tài)勢形式在異地上表現(xiàn)出來,同時支持對已有標(biāo)繪結(jié)果的利用,有友好的人機(jī)接口,能使用戶更有效地使用系統(tǒng)。然而,現(xiàn)有地圖引擎提供的JAVA繪圖功能則存在一定的缺陷。如圖1所示,給出了利用地圖引擎對當(dāng)前地圖進(jìn)行標(biāo)繪之后的效果。但當(dāng)對地圖進(jìn)行放大縮小操作后,如圖 2所示,可發(fā)現(xiàn)即標(biāo)繪圖形并不會隨著地圖的比例變化而相應(yīng)的調(diào)整比例,依然是初始繪圖的大小比例。另外,在當(dāng)對標(biāo)繪過的地圖執(zhí)行漫游操作后,如圖3所示,可發(fā)現(xiàn)標(biāo)繪圖形仍是初始繪圖的大小比例,始終保持在初始繪制時的屏幕位置,并不能隨著地圖的移動而在相應(yīng)位置顯示。因此現(xiàn)有的地圖引擎(例如ArcIMS等)的地圖標(biāo)繪功能具有較大缺陷,只適合于靜態(tài)地圖瀏覽,而無法在地圖縮放平移等操作下動態(tài)展示適當(dāng)?shù)臉?biāo)繪圖形。
發(fā)明內(nèi)容
本發(fā)明的目的是提出一種基于GIS的可視化標(biāo)繪方法及系統(tǒng),能夠在各種地圖操作下動態(tài)展示適當(dāng)?shù)臉?biāo)繪圖形。為實現(xiàn)上述目的,本發(fā)明提供了一種基于GIS的可視化標(biāo)繪方法,包括
4
獲取當(dāng)前標(biāo)繪的所有矢量可標(biāo)記語言VML語句;對所述VML語句進(jìn)行處理,將所述VML語句對應(yīng)的標(biāo)繪圖形的屏幕坐標(biāo)轉(zhuǎn)換為地圖地理坐標(biāo);對所述VML語句進(jìn)行重組,形成地圖化VML語句,并關(guān)聯(lián)存儲所述地圖化VML語句,在重組后的地圖化VML語句中將屏幕坐標(biāo)替換為地圖地理坐標(biāo);在地圖的參考位置和/或屏幕比例尺發(fā)生變化時,提取與被選VML標(biāo)識關(guān)聯(lián)的所有地圖化VML語句;對所述地圖化VML語句進(jìn)行地圖地理坐標(biāo)的提取,并根據(jù)變化的地圖的參考位置和/或屏幕比例尺將所述地圖地理位置轉(zhuǎn)換成新的屏幕坐標(biāo);對所述地圖化VML語句進(jìn)行重組,形成新的VML語句,在新的VML語句中將地圖地理坐標(biāo)替換為屏幕坐標(biāo);執(zhí)行所述新的VML語句,以顯示對應(yīng)的標(biāo)繪圖形。為實現(xiàn)上述目的,本發(fā)明提供了一種基于地理信息系統(tǒng)的可視化標(biāo)繪系統(tǒng),包括VML語句獲取模塊,用于獲取當(dāng)前標(biāo)繪的所有矢量可標(biāo)記語言VML語句;VML語句重組模塊,用于對所述VML語句進(jìn)行處理,將所述VML語句對應(yīng)的標(biāo)繪圖形的屏幕坐標(biāo)轉(zhuǎn)換為地圖地理坐標(biāo),然后對所述VML語句進(jìn)行重組,形成地圖化VML語句, 在重組后的地圖化VML語句中將屏幕坐標(biāo)替換為地圖地理坐標(biāo);地圖化VML語句存儲模塊,用于關(guān)聯(lián)存儲所述地圖化VML語句;地圖化VML語句提取模塊,用于在地圖的參考位置和/或屏幕比例尺發(fā)生變化時, 提取與被選VML標(biāo)識關(guān)聯(lián)的所有地圖化VML語句;新VML語句重組模塊,用于根據(jù)變化的地圖的參考位置和/或屏幕比例尺將所述地圖地理位置轉(zhuǎn)換成新的屏幕坐標(biāo),并對所述地圖化VML語句進(jìn)行重組,形成新的VML語句,在新的VML語句中將地圖地理坐標(biāo)替換為屏幕坐標(biāo);標(biāo)繪圖形顯示模塊,用于執(zhí)行所述新的VML語句,以顯示對應(yīng)的標(biāo)繪圖形?;谏鲜黾夹g(shù)方案,本發(fā)明通過對VML語句的轉(zhuǎn)換和關(guān)聯(lián)存儲,使得在對地圖進(jìn)行各種操作時,可以隨著地圖的變化而動態(tài)展示適當(dāng)?shù)臉?biāo)繪圖形。
此處所說明的附圖用來提供對本發(fā)明的進(jìn)一步理解,構(gòu)成本申請的一部分,本發(fā)明的示意性實施例及其說明用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的不當(dāng)限定。在附圖中圖1為現(xiàn)有技術(shù)中對當(dāng)前地圖標(biāo)繪之后的效果示意圖。圖2為現(xiàn)有技術(shù)中對地圖執(zhí)行放大縮小操作后的效果示意圖。圖3為現(xiàn)有技術(shù)中對地圖執(zhí)行漫游操作后的效果示意圖。圖4為本發(fā)明基于GIS的可視化標(biāo)繪方法的一實施例的流程示意圖。圖5為本發(fā)明實施例對當(dāng)前地圖進(jìn)行標(biāo)繪后的效果示意圖。圖6為本發(fā)明實施例對地圖執(zhí)行放大縮小操作后的效果示意圖。圖7為本發(fā)明實施例對地圖執(zhí)行漫游操作后的效果示意圖。圖8為本發(fā)明基于GIS的可視化標(biāo)繪系統(tǒng)的一實施例的結(jié)構(gòu)示意圖。
5
圖9為本發(fā)明基于GIS的可視化標(biāo)繪系統(tǒng)的另一實施例的結(jié)構(gòu)示意圖。
具體實施例方式下面通過附圖和實施例,對本發(fā)明的技術(shù)方案做進(jìn)一步的詳細(xì)描述。首先介紹一下VML。VML的全稱是Vector Markup Language (矢量可標(biāo)記語言)。 矢量的圖形意味著圖形可以任意放大縮小而不損失圖形的質(zhì)量,這在制作地圖上有很大用途。VML相當(dāng)于IE里面的畫筆,能實現(xiàn)你所想要的圖形,而且結(jié)合腳本,可以讓圖形產(chǎn)生動態(tài)的效果。本發(fā)明中的GIS標(biāo)繪架構(gòu)有三個層,按優(yōu)先級由低到高分別為地圖(MAP)層、框架 (IFRAME)層、以及塊(DIV)層。MAP層是用于展現(xiàn)地圖模塊的最底層的層次架構(gòu),即展現(xiàn)與地圖相關(guān)的展現(xiàn)。IFRAME層是用于暫存VML標(biāo)繪數(shù)據(jù)的次級層次架構(gòu),其在MAP層之上,比 MAP層優(yōu)先級高。DIV層是優(yōu)先級最高的層次架構(gòu),其用于展現(xiàn)標(biāo)繪的前臺頁面效果,即在地圖之上展現(xiàn)標(biāo)繪的層次架構(gòu)。GIS標(biāo)繪是通過觸發(fā)鼠標(biāo)事件(采用手寫板、觸摸屏等的觸發(fā)方式也可以實現(xiàn))進(jìn)行的?;緲?biāo)繪大致可分為三類,即鉛筆、圓形、以及方形。當(dāng)通過鼠標(biāo)(或手寫板、觸摸屏)進(jìn)行標(biāo)繪時,在線繪圖編輯器在地圖上創(chuàng)建新的DIV層,添加各個類型的VML,如鉛筆繪成的不規(guī)則形、圓形、或者方形等。下面通過幾個實施例來說明一下本發(fā)明的基于GIS的可視化標(biāo)繪方法。如圖4所示,為本發(fā)明基于GIS的可視化標(biāo)繪方法的一實施例的流程示意圖。在本實施例中,該可視化標(biāo)繪流程包括步驟101、獲取當(dāng)前標(biāo)繪的所有矢量可標(biāo)記語言VML語句;步驟102、對所述VML語句進(jìn)行處理,將所述VML語句對應(yīng)的標(biāo)繪圖形的屏幕坐標(biāo)轉(zhuǎn)換為地圖地理坐標(biāo);步驟103、對所述VML語句進(jìn)行重組,形成地圖化VML語句,并關(guān)聯(lián)存儲所述地圖化 VML語句,在重組后的地圖化VML語句中將屏幕坐標(biāo)替換為地圖地理坐標(biāo);步驟104、在地圖的參考位置和/或屏幕比例尺發(fā)生變化時,提取與被選VML標(biāo)識關(guān)聯(lián)的所有地圖化VML語句;步驟105、對所述地圖化VML語句進(jìn)行地圖地理坐標(biāo)的提取,并根據(jù)變化的地圖的參考位置和/或屏幕比例尺將所述地圖地理位置轉(zhuǎn)換成新的屏幕坐標(biāo);步驟106、對所述地圖化VML語句進(jìn)行重組,形成新的VML語句,在新的VML語句中將地圖地理坐標(biāo)替換為屏幕坐標(biāo);步驟107、執(zhí)行所述新的VML語句,以顯示對應(yīng)的標(biāo)繪圖形。在本實施例的步驟101中,當(dāng)利用鼠標(biāo)(或手寫板、觸摸屏等)在地圖上畫出圓形 (包括橢圓形)、方形、其它任意的不規(guī)則形(在下文中統(tǒng)稱為VML標(biāo)繪圖形)等時,通過捕捉鼠標(biāo)(或手寫板、觸摸屏等)對當(dāng)前操作的各個屏幕坐標(biāo)和當(dāng)前筆尖設(shè)置的大小和顏色,得到各個VML標(biāo)繪圖形的位置參數(shù),如鉛筆的屏幕繪圖高度、左平面位置、組合點的拓?fù)渲?、圓的半徑、優(yōu)先級、透明度、顏色、中心點等等,由此獲取當(dāng)前繪圖操作的VML語句。當(dāng)然,一次標(biāo)繪可以包括任意數(shù)目的方形、任意數(shù)目的圓形、以及任意數(shù)目的其他不規(guī)則形。方形VML語句形式為
6
<v:rect>style = LEFT ;TOP ;WIDTH ;HEIGHT</v:rect>,例如<v:rectstyle = LEFT:260px ;T0P:230px ;WIDTH: 100 ;HEIGHT:50</v:rect>其中<v:rect> * * * * </v:rect>為標(biāo)識方形的標(biāo)識符;LEFT和TOP描述了通過鼠標(biāo)進(jìn)行標(biāo)繪時的標(biāo)繪起始點距離頁面左邊的位置、距離頁面上邊的位置;WIDTH和 HEIGHT描述了標(biāo)繪的寬度和高度。圓形VML語句形式為<v:oval>style = LEFT ;TOP ;WIDTH ;HEIGHT</v:oval>,例如<v:ovalstyle = LEFT:290px ;T0P:250px ;WIDTH:50 ;HEIGHT 100</v:oval>其中<v oval> * * * * </v oval>為標(biāo)識圓形的標(biāo)識符;LEFT和TOP描述了通過鼠標(biāo)進(jìn)行標(biāo)繪時的標(biāo)繪起始點距離頁面左邊的位置、距離頁面上邊的位置;WIDTH和 HEIGHT描述了標(biāo)繪圓形的長軸和短軸的長度。不規(guī)則形VML語句形式為<v:shape>style = LEFT;WIDTH ;path</v:shape),例如<v:shape>style = LEFT:171 ;TOP:225 ;path = “ m0,0 ; 130,-30,60,0 ;e “ </ ν:shape>其中<v: shape〉女± ± ± </v: shape)為標(biāo)識其它形狀的標(biāo)識符;LEFT和TOP描述了通過鼠標(biāo)進(jìn)行標(biāo)繪時的標(biāo)繪起始點距離頁面左邊的位置、距離頁面上邊的位置。標(biāo)繪路徑I^ath字段則通過下面的示例進(jìn)行簡單地說明。Path的數(shù)據(jù)形式為="ma,b ;lxl,yl...xn,yn ;e〃,其中ma,b中的a表示偏移該 Path所在的VML語句中的LEFT的值大小、b表示偏移TOP的值大小。1中的參數(shù)xn,yn描述了相對于(LEFT+a,T0P+b)而言標(biāo)繪的各個頂點。應(yīng)該注意的是如上所述標(biāo)繪的起始點為(LEFT, TOP)。以三角形為例,例如 path =" m0,0 ;130,-30,60,0,0,0 ;e",m0,0 表示不偏移。30,-30表示相對于(LEFT+0, Τ0Ρ+0)向右30px、向下_30px (即向上30px)的點, 60,0表示相對于(LEFT+0,T0P+0)而言向右60px、向下Opx的點,0,0表示相對于(LEFT+0, Τ0Ρ+0)而言向右Ορχ、向下Opx的點,即就是回到起始點(LEFT,TOP),由此構(gòu)成了三角型。應(yīng)該注意的是方形VML語句、圓形VML語句、其他形狀VML語句并不局限于上述實例,本領(lǐng)域的技術(shù)人員可根據(jù)需要選擇適當(dāng)形式的VML語句。此外,需要說明的是以上種種對應(yīng)數(shù)值均為當(dāng)前地圖比例下的屏幕坐標(biāo)點,沒有唯一性和永久性,不具備存儲意義。因此,需要將這些不同類型的VML語句的不同參數(shù)都一一挖掘出來,有目的的轉(zhuǎn)換,并有規(guī)律的存儲起來,到提取時再將之轉(zhuǎn)換、依次準(zhǔn)確的放回原VML語句。在本實施例中的步驟102中,需要對獲得的VML語句進(jìn)行處理,將VML語句對應(yīng)的標(biāo)繪圖形的屏幕坐標(biāo)轉(zhuǎn)換為地圖地理坐標(biāo)??紤]到計算機(jī)在處理多類標(biāo)繪圖形時頻繁更改解析方式會降低處理效率,因此為了提高處理效率更高,可以在獲得VML語句后,對所有的 VML語句進(jìn)行分類,以便計算機(jī)能夠分別對每類標(biāo)繪圖形進(jìn)行統(tǒng)一化的解析處理,避免頻繁更改解析方式。
7
通過前面的實例可以看出,VML語句實際上是一串字符串,每個VML語句可能包括了方形(以<v:rect> * * * * </v:rect>為標(biāo)識符的字符串)、圓形(以<v:oval> * * * * </v:oval>為標(biāo)識符的字符串)或不規(guī)則形(以<v: shape〉* * * * </v: shape)為標(biāo)識符的字符串)等標(biāo)繪圖形。通過這些標(biāo)識符可以對獲取的VML語句進(jìn)行分類。這些分類后的VML語句中每一類的標(biāo)繪圖形的參數(shù)均不相同,在主要VML標(biāo)繪圖形(不規(guī)則形、圓形、方形)中,不規(guī)則形的PATH值、LEFT值、TOP值決定了繪圖與地圖的比例大小以及高度、寬度、左右比例,PATH值表示其他圖形各個連接轉(zhuǎn)折點的拓?fù)潢P(guān)系,而圓形和方形的LEFT值、TOP值、WIDTH值、HEIGHT值決定了這類規(guī)則圖形的橫軸和縱軸以及中心點、長寬等重要信息。因此,針對各種不同的VML標(biāo)繪圖形提取對應(yīng)的屏幕坐標(biāo),具體來說,即提取不規(guī)則形的VML語句中的PATH值、LEFT值、TOP值并保存,提取圓形和方形的 VML語句的LEFT值、TOP值、WIDTH值、HEIGHT值并保存。在提取出各個VML語句中的標(biāo)繪圖形的屏幕坐標(biāo)后,對這些VML語句逐句將屏幕坐標(biāo)轉(zhuǎn)換為地圖地理坐標(biāo)。前面提到由于經(jīng)過處理的繪圖字符串只在當(dāng)前地圖比例尺下有效,只對應(yīng)于當(dāng)前地圖比例下的屏幕坐標(biāo)點,因此如果希望與地圖實時保持一致,需要將各個VML標(biāo)繪圖形的坐標(biāo)參數(shù)轉(zhuǎn)換為地圖地理坐標(biāo)。這一轉(zhuǎn)換可采用諸如等差等比方法等現(xiàn)有技術(shù)來實現(xiàn)的,因而在此不做詳述。因此,通過上述步驟,可將繪圖參數(shù)與地圖真正的結(jié)合綁定起來,從而達(dá)到保存地圖真實坐標(biāo)的目的??紤]到VML語句中可能存在一些因為不正常鼠標(biāo)操作引起的不規(guī)則坐標(biāo),以及語句中可能產(chǎn)生的一些不規(guī)則符號。舉個例子,分類后存在三句不規(guī)則形的VML語句,分別為<v:shape>style = LEFT:90 ;TOP:80 ;path = “ m0,0 ; 100,30,60,20,20. 0,0,0 ; e“ </v:shape> ;<v:shape>style = LEFT:260 ;TOP:230 ;path = “ m0,1 ; 130,-30,60,0 ;e “ </ ν:shape> ;<v:shape>style = LEFT:290 ;TOP:250 ;path = “ ml, 1 ;130, -30,60,0 ;e “ </ ν: shape>。其中第二句起始點m0,1,第三句起始點ml,1可能是因為用戶在單擊鼠標(biāo)時,因為失誤變成了雙擊,導(dǎo)致該起始點有了偏移,但由于該偏移非常微小,并不會對后續(xù)的操作結(jié)果造成影響,因此可以將這兩句中的起始點均統(tǒng)一成不偏移的m0,0,在解析計算上更為節(jié)省時間,提高處理效率。另外,針對其他圖形的I^ath值不規(guī)范特點,將其他圖形的path值數(shù)組中有些標(biāo)點符號統(tǒng)一,例如將頓號‘、’規(guī)則化為逗號‘,’,并且去除數(shù)組中有時出現(xiàn)的空白字符以防下一步自動轉(zhuǎn)換出錯。在逐句提取屏幕坐標(biāo)的步驟中,將獲得的各句中的LEFT值、TOP值、以及path值保存在對應(yīng)數(shù)組中,然后在轉(zhuǎn)換步驟中按順序逐個將LEFT值和TOP值轉(zhuǎn)化為地圖地理坐標(biāo), 例如在第一句中LEFT為90,TOP為80,這表示此圖形初始點在當(dāng)前屏幕的(90,80)像素點處,而根據(jù)地圖轉(zhuǎn)換,變?yōu)長EFT為4000,TOP為3000,這表示在地圖中此圖形初始點為地圖坐標(biāo)的(4000,3000)。由于不規(guī)則形的特殊性,在還原I^ath值時,要依次分別在橫坐標(biāo)和縱坐標(biāo)值上加上屏幕坐標(biāo)的LEFT值和TOP值,保證其原始性,再按順序逐個將path值轉(zhuǎn)化地圖坐標(biāo),例
8如 path = “ m0,0 ;100,30,60,20. 20. 0,0,0 ;e",去掉頭尾參考點 m0,0 ;1000,0 ;e,取出中間三坐標(biāo)(30,60) (20,20) (0,0),因為這三點并不代表屏幕坐標(biāo)點,只是三組以起始點為參考的點序列,因此必須加上之前的(LEFT,TOP),也就是這三個坐標(biāo)最終變?yōu)?30+90, 60+80) (20+90,20+80) (0+90,0+80),再經(jīng)地圖轉(zhuǎn)換后為(2500,2500) (1500,2800) (0,0) 在本實施例的步驟103中,需要對VML語句進(jìn)行重組,形成地圖化VML語句,并關(guān)聯(lián)存儲地圖化VML語句,在重組后的地圖化VML語句中將屏幕坐標(biāo)替換為地圖地理坐標(biāo)。這里的關(guān)聯(lián)存儲包括兩層含義,一層是轉(zhuǎn)換前的屏幕坐標(biāo)與轉(zhuǎn)化后的地圖地理坐標(biāo)之間的關(guān)聯(lián)存儲,該層關(guān)聯(lián)存儲是為了方便解析標(biāo)繪語句并使之可視化,并供分析和展現(xiàn);另一層是一次標(biāo)繪的存儲結(jié)構(gòu)VML標(biāo)識(VMLID)與該次標(biāo)繪中處理的所有地理化的 VML語句之間的關(guān)聯(lián)存儲,由于一次標(biāo)繪中可以包括任意數(shù)量的方形標(biāo)繪圖形、圓形標(biāo)繪圖形和不規(guī)則形標(biāo)繪圖形,而該VMLID對應(yīng)著該次標(biāo)繪中的所有重組后的地理化VML語句,通過這種關(guān)聯(lián)可以便于用戶在多次標(biāo)繪過程中直接選擇VMLID來選擇和調(diào)用對應(yīng)的VML語句進(jìn)行標(biāo)繪圖形的可視化展現(xiàn)。在關(guān)聯(lián)存儲前,要對本次標(biāo)繪中的每個VML語句進(jìn)行重組,以便得到VML語句,重組過程即是將轉(zhuǎn)換后的標(biāo)繪參數(shù)值重新嵌入各個標(biāo)繪語句中,如有多條類型相同的標(biāo)繪語句,則通過JavMcript方法進(jìn)行循環(huán)嵌入。對于不規(guī)則形的VML語句而言,將轉(zhuǎn)換后的PATH 值、TOP值、LEFT值、不規(guī)則形標(biāo)識符這四者重組。對于方形或圓形VML語句而言,將轉(zhuǎn)換后的TOP值、LEFT值、WIDTH值、HEIGHT值、方形或圓形標(biāo)識符這五者重組,從而形成擁有真實地圖地理坐標(biāo)的VML語句。重組后的VML語句所存儲的參數(shù)都是與地圖關(guān)聯(lián)的真實地理坐標(biāo),因此將此時的VML語句稱為地理化VML語句或地理化標(biāo)繪語句。仍以不規(guī)則形標(biāo)繪圖形為例,將I^ath的X,y值按原順序依次進(jìn)行重組,例如I^ath ="m0,0 ;100,30,60,20,20. 0,0,0 ;e"經(jīng)處理后變?yōu)?path = 〃 2500,2500,1500,2800, 0,0,“,將轉(zhuǎn)換后的LEFT值、TOP值、重組完成的path值、以及不規(guī)則形標(biāo)識符逐句嵌入原其他圖形標(biāo)繪語句中。例如,未轉(zhuǎn)換之前的標(biāo)繪語句為<v:shape>style = LEFT:90 ;TOP:80 ;path = “ m0,0 ; 100,30,60,20,20. 0,0,0 ; e" </v: shape〉,經(jīng)過步驟B、C之后的VML語句為<v:shape>style = LEFT :4000 ;TOP :3000 ;path =〃 m0,0 ; 100,2500,2500,1500, 2800. 0,0,0 ;e" </v:shape〉。在步驟104中、如果在地圖的參考位置和/或屏幕比例尺發(fā)生變化,提取與被選 VML標(biāo)識關(guān)聯(lián)的所有地圖化VML語句。當(dāng)用戶需要對某一次標(biāo)繪進(jìn)行在線展現(xiàn)時,地圖的參考位置和/或屏幕比例尺發(fā)生變化可能會發(fā)生變化,如果仍沿用原來的屏幕坐標(biāo),則難以與地圖保持一致,因此需要提取的是該次標(biāo)繪VMLID相關(guān)聯(lián)的地圖化VML語句,該地圖化 VML語句中包括的是真實的地圖地理坐標(biāo)的標(biāo)繪圖形的字符串。在步驟105中對地圖化VML語句進(jìn)行地圖地理坐標(biāo)的提取,并根據(jù)變化的地圖的參考位置和/或屏幕比例尺將地圖地理位置轉(zhuǎn)換成新的屏幕坐標(biāo)。在提取地圖地理坐標(biāo)之前,由于數(shù)據(jù)庫工具的原因,可能會導(dǎo)致提取出的地圖化VML語句中參雜了不規(guī)范的符號, 為了減少出錯的可能性,可以對地圖化VML語句中的不規(guī)則符號進(jìn)行規(guī)則化。如果提取出的地圖化VML語句未按照分類排序,為了提高處理速度,還可以增加分類的操作,具體分類方法可參考前述對VML語句的分類。
坐標(biāo)的轉(zhuǎn)換過程就是根據(jù)變化的地圖的參考位置和/或屏幕比例尺將地圖地理坐標(biāo)轉(zhuǎn)換為新的屏幕坐標(biāo),而轉(zhuǎn)換方法與前述的屏幕坐標(biāo)轉(zhuǎn)換成地圖地理坐標(biāo)為逆向且近似的,這里就不做詳細(xì)說明了。在步驟106重組得到的新的VML語句中,地圖地理坐標(biāo)被替換為新的屏幕坐標(biāo),這些新的屏幕坐標(biāo)組成了與當(dāng)前地圖匹配的各類標(biāo)繪圖形。在獲得了重組后的新的VML語句后,可以在地圖(MAP)層上創(chuàng)建新的塊(DIV)層, 并在塊層顯示新的VML語句中各個標(biāo)繪標(biāo)簽對應(yīng)的標(biāo)繪圖形。通過上述步驟,可以實現(xiàn)地圖上的標(biāo)繪圖形隨地圖而變,展現(xiàn)真實準(zhǔn)確的地圖標(biāo)
fe ο與圖1-3相比較,圖5示出了利用本發(fā)明進(jìn)行標(biāo)繪后的效果圖。如圖6所示,在進(jìn)行地圖放大縮小操作后,可發(fā)現(xiàn)不但能快速顯示繪圖,而且該繪圖即時隨著地圖的比例變化而進(jìn)行自身的調(diào)整變化,遵從初始繪圖的含義,從而保持在地圖中繪圖顯示的準(zhǔn)確性。如圖7所示,在進(jìn)行地圖漫游操作后,可發(fā)現(xiàn)不但能快速顯示繪圖,而且該繪圖即時隨著地圖的比例變化而進(jìn)行自身的調(diào)整變化,地理的方向性也嚴(yán)格保持與真實情況統(tǒng)一的狀態(tài),遵從初始繪圖的含義,從而保持在地圖中繪圖顯示的準(zhǔn)確性。本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述方法實施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成,硬件可包括網(wǎng)絡(luò)側(cè)的處理單元,其中該單元可以包含了 CPU、 RAM、ROM、以及輸入/輸出控制器,并且所有這些部件可以透過主機(jī)控制器而互連。該單元還可以包括通信接口、存儲設(shè)備、軟盤驅(qū)動器、以及圖形控制器。特別地,軟盤驅(qū)動器可對軟盤進(jìn)行讀寫,圖形控制器則驅(qū)動顯示器。CPU依照存儲在ROM、BIOS、以及RAM中的程序來操作,并且由此控制每一個部分。 各類標(biāo)繪圖形可通過鼠標(biāo)(或手寫板、觸摸屏等輸入設(shè)備)輸入。存儲設(shè)備還存儲供計算機(jī)使用的本發(fā)明的程序、應(yīng)用、OS等等的代碼和數(shù)據(jù)。此后,程序和數(shù)據(jù)將被加載到RAM中以供CPU使用。從上述結(jié)構(gòu)實例中可以看出,任何具有通用計算機(jī)功能的硬件都可以用作本發(fā)明需要的硬件。應(yīng)該指出的是,前面所描述的結(jié)構(gòu)不限于作為實施本發(fā)明實施例的硬件結(jié)構(gòu)。 相應(yīng)地,對其他各種結(jié)構(gòu)來說,只要對其可以應(yīng)用本發(fā)明實施例,那么這些結(jié)構(gòu)都是可行的。此外,每一個上述例示組件未必是本發(fā)明的必要組件。另外,本發(fā)明還可以使用硬件、 軟件、或者軟硬件組合來實現(xiàn)。至此,已對本發(fā)明進(jìn)行了描述。通過上述可知,本發(fā)明實現(xiàn)了在webgis以及業(yè)務(wù)平臺的操作互動中,根據(jù)實時情況在線對地圖進(jìn)行有效的標(biāo)繪工作,并及時保存,隨時調(diào)用展現(xiàn),便于分析,達(dá)到了通過實時可靠的現(xiàn)場信息對地圖進(jìn)行準(zhǔn)確有效的人工標(biāo)繪、實時保存、展現(xiàn)分析一系列操作?;贕IS的可視化標(biāo)繪實時存儲與展現(xiàn)這一方法,使基于現(xiàn)有地圖引擎的地圖標(biāo)繪功能用于實際,特別是路線的可視化分析和即時繪制,大大方便了在處理事件中,面對各突發(fā)狀況的決策靈活性和科學(xué)性。如圖8所示,為本發(fā)明基于GIS的可視化標(biāo)繪系統(tǒng)的一實施例的結(jié)構(gòu)示意圖。在本實施例中,可視化標(biāo)繪系統(tǒng)包括VML語句獲取模塊1、VML語句重組模塊2、地圖化VML語句存儲模塊3、地圖化VML語句提取模塊4、新VML語句重組模塊5和標(biāo)繪圖形顯示模塊6。VML語句獲取模塊1負(fù)責(zé)獲取當(dāng)前標(biāo)繪的所有矢量可標(biāo)記語言VML語句。VML語句重組模塊2負(fù)責(zé)對VML語句進(jìn)行處理,將所述VML語句對應(yīng)的標(biāo)繪圖形的屏幕坐標(biāo)轉(zhuǎn)換為地圖地理坐標(biāo),然后對所述VML語句進(jìn)行重組,形成地圖化VML語句,在重組后的地圖化 VML語句中將屏幕坐標(biāo)替換為地圖地理坐標(biāo)。地圖化VML語句存儲模塊3負(fù)責(zé)關(guān)聯(lián)存儲所述地圖化VML語句。地圖化VML語句提取模塊4負(fù)責(zé)在地圖的參考位置和/或屏幕比例尺發(fā)生變化時,提取與被選VML標(biāo)識關(guān)聯(lián)的所有地圖化VML語句。新VML語句重組模塊5負(fù)責(zé)根據(jù)變化的地圖的參考位置和/或屏幕比例尺將所述地圖地理位置轉(zhuǎn)換成新的屏幕坐標(biāo), 并對所述地圖化VML語句進(jìn)行重組,形成新的VML語句,在新的VML語句中將地圖地理坐標(biāo)替換為屏幕坐標(biāo)。標(biāo)繪圖形顯示模塊6負(fù)責(zé)執(zhí)行所述新的VML語句,以顯示對應(yīng)的標(biāo)繪圖形。如圖9所示,為本發(fā)明基于GIS的可視化標(biāo)繪系統(tǒng)的另一實施例的結(jié)構(gòu)示意圖。與上一實施例相比,本實施例還可以包括VML語句分類模塊7,該模塊用于按照所述VML語句中的形狀標(biāo)識符對所述VML語句進(jìn)行分類。分類后的VML語句在解析處理上效率更高,也更方便。VML語句中的標(biāo)繪圖形的類型可以包括方形、圓形和不規(guī)則形,所述方形包括標(biāo)繪起始點距離頁面左邊的距離、距離頁面上邊的距離、標(biāo)繪方形的寬度和高度,所述圓形包括標(biāo)繪起始點距離頁面左邊的距離、距離頁面上邊的距離、標(biāo)繪方形的寬度和高度,所述不規(guī)則形包括標(biāo)繪起始點距離頁面左邊的距離、距離頁面上邊的距離和標(biāo)繪路徑??紤]到VML語句中可能存在一些因輸入設(shè)備操作導(dǎo)致的不規(guī)則坐標(biāo)、數(shù)據(jù)庫操作中出現(xiàn)的不規(guī)則符號,這些不規(guī)則坐標(biāo)和不規(guī)則符號可能會造成坐標(biāo)提取轉(zhuǎn)換出現(xiàn)錯誤, 為了避免這種錯誤,可以在系統(tǒng)中加入VML語句規(guī)則化模塊8,該模塊用于將所述VML語句中的不規(guī)則坐標(biāo)及不規(guī)則符號進(jìn)行規(guī)則化。在地圖化VML語句提取過程中也存在著因數(shù)據(jù)庫操作導(dǎo)致出現(xiàn)不規(guī)則符號的可能,因此為了避免這種不規(guī)則符號帶來的錯誤,也可以加入地圖化VML語句規(guī)則化模塊9, 對地圖化VML語句中的不規(guī)則符號進(jìn)行規(guī)則化。在可視化標(biāo)繪系統(tǒng)的另一實施例中,標(biāo)繪圖形顯示模塊還可以具體包括塊層創(chuàng)建單元,用于在地圖層上創(chuàng)建新的塊層;標(biāo)繪圖形顯示單元,用于在所述塊層顯示所述新的 VML語句中各個標(biāo)繪標(biāo)簽對應(yīng)的標(biāo)繪圖形。最后應(yīng)當(dāng)說明的是以上實施例僅用以說明本發(fā)明的技術(shù)方案而非對其限制;盡管參照較佳實施例對本發(fā)明進(jìn)行了詳細(xì)的說明,所屬領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解依然可以對本發(fā)明的具體實施方式
進(jìn)行修改或者對部分技術(shù)特征進(jìn)行等同替換;而不脫離本發(fā)明技術(shù)方案的精神,其均應(yīng)涵蓋在本發(fā)明請求保護(hù)的技術(shù)方案范圍當(dāng)中。
1權(quán)利要求
1.一種基于地理信息系統(tǒng)的可視化標(biāo)繪方法,包括獲取當(dāng)前標(biāo)繪的所有矢量可標(biāo)記語言VML語句;對所述VML語句進(jìn)行處理,將所述VML語句對應(yīng)的標(biāo)繪圖形的屏幕坐標(biāo)轉(zhuǎn)換為地圖地理坐標(biāo);對所述VML語句進(jìn)行重組,形成地圖化VML語句,并關(guān)聯(lián)存儲所述地圖化VML語句,在重組后的地圖化VML語句中將屏幕坐標(biāo)替換為地圖地理坐標(biāo);在地圖的參考位置和/或屏幕比例尺發(fā)生變化時,提取與被選VML標(biāo)識關(guān)聯(lián)的所有地圖化VML語句;對所述地圖化VML語句進(jìn)行地圖地理坐標(biāo)的提取,并根據(jù)變化的地圖的參考位置和/ 或屏幕比例尺將所述地圖地理位置轉(zhuǎn)換成新的屏幕坐標(biāo);對所述地圖化VML語句進(jìn)行重組,形成新的VML語句,在新的VML語句中將地圖地理坐標(biāo)替換為屏幕坐標(biāo);執(zhí)行所述新的VML語句,以顯示對應(yīng)的標(biāo)繪圖形。
2.根據(jù)權(quán)利要求1所述的可視化標(biāo)繪方法,其中,在獲取當(dāng)前標(biāo)繪的所有矢量可標(biāo)記語言VML語句之后,還包括對所有VML語句進(jìn)行分類的操作,具體為按照所述VML語句中的形狀標(biāo)識符對所述VML語句進(jìn)行分類。
3.根據(jù)權(quán)利要求2所述的可視化標(biāo)繪方法,其中,所述VML語句中的標(biāo)繪圖形的類型包括方形、圓形和不規(guī)則形,所述方形包括標(biāo)繪起始點距離頁面左邊的距離、距離頁面上邊的距離、標(biāo)繪方形的寬度和高度,所述圓形包括標(biāo)繪起始點距離頁面左邊的距離、距離頁面上邊的距離、標(biāo)繪圓形的長軸和短軸的長度,所述不規(guī)則形包括標(biāo)繪起始點距離頁面左邊的距離、距離頁面上邊的距離和標(biāo)繪路徑。
4.根據(jù)權(quán)利要求1所述的可視化標(biāo)繪方法,其中,在將所述VML語句對應(yīng)的標(biāo)繪圖形的屏幕坐標(biāo)轉(zhuǎn)換為地圖地理坐標(biāo)之前,還包括對所述VML語句進(jìn)行規(guī)則化的操作,具體為將所述VML語句中的不規(guī)則坐標(biāo)及不規(guī)則符號進(jìn)行規(guī)則化。
5.根據(jù)權(quán)利要求4所述的可視化標(biāo)繪方法,其中,在根據(jù)變化的地圖的參考位置和/或屏幕比例尺將所述地圖地理位置轉(zhuǎn)換成新的屏幕坐標(biāo)之前,還包括對所述地圖化VML語句進(jìn)行規(guī)則化的操作,具體為對所述地圖化VML語句中的不規(guī)則符號進(jìn)行規(guī)則化。
6.根據(jù)權(quán)利要求1所述的可視化標(biāo)繪方法,其中,所述關(guān)聯(lián)存儲所述地圖化VML語句的操作為將所述地圖化VML語句與VML標(biāo)識關(guān)聯(lián)存儲到數(shù)據(jù)庫中。
7.根據(jù)權(quán)利要求1所述的可視化標(biāo)繪方法,其中,所述顯示對應(yīng)的標(biāo)繪圖形的操作具體為在地圖層上創(chuàng)建新的塊層,并在所述塊層顯示所述新的VML語句中各個標(biāo)繪標(biāo)簽對應(yīng)的標(biāo)繪圖形。
8.一種基于地理信息系統(tǒng)的可視化標(biāo)繪系統(tǒng),包括VML語句獲取模塊,用于獲取當(dāng)前標(biāo)繪的所有矢量可標(biāo)記語言VML語句;VML語句重組模塊,用于對所述VML語句進(jìn)行處理,將所述VML語句對應(yīng)的標(biāo)繪圖形的屏幕坐標(biāo)轉(zhuǎn)換為地圖地理坐標(biāo),然后對所述VML語句進(jìn)行重組,形成地圖化VML語句,在重組后的地圖化VML語句中將屏幕坐標(biāo)替換為地圖地理坐標(biāo);地圖化VML語句存儲模塊,用于關(guān)聯(lián)存儲所述地圖化VML語句; 地圖化VML語句提取模塊,用于在地圖的參考位置和/或屏幕比例尺發(fā)生變化時,提取與被選VML標(biāo)識關(guān)聯(lián)的所有地圖化VML語句;新VML語句重組模塊,用于根據(jù)變化的地圖的參考位置和/或屏幕比例尺將所述地圖地理位置轉(zhuǎn)換成新的屏幕坐標(biāo),并對所述地圖化VML語句進(jìn)行重組,形成新的VML語句,在新的VML語句中將地圖地理坐標(biāo)替換為屏幕坐標(biāo);標(biāo)繪圖形顯示模塊,用于執(zhí)行所述新的VML語句,以顯示對應(yīng)的標(biāo)繪圖形。
9.根據(jù)權(quán)利要求8所述的可視化標(biāo)繪系統(tǒng),其中,還包括VML語句分類模塊,用于按照所述VML語句中的形狀標(biāo)識符對所述VML語句進(jìn)行分類。
10.根據(jù)權(quán)利要求9所述的可視化標(biāo)繪系統(tǒng),其中,所述VML語句中的標(biāo)繪圖形的類型包括方形、圓形和不規(guī)則形,所述方形包括標(biāo)繪起始點距離頁面左邊的距離、距離頁面上邊的距離、標(biāo)繪方形的寬度和高度,所述圓形包括標(biāo)繪起始點距離頁面左邊的距離、距離頁面上邊的距離、標(biāo)繪方形的寬度和高度,所述不規(guī)則形包括標(biāo)繪起始點距離頁面左邊的距離、 距離頁面上邊的距離和標(biāo)繪路徑。
11.根據(jù)權(quán)利要求8所述的可視化標(biāo)繪系統(tǒng),其中,還包括VML語句規(guī)則化模塊,用于將所述VML語句中的不規(guī)則坐標(biāo)及不規(guī)則符號進(jìn)行規(guī)則化。
12.根據(jù)權(quán)利要求11所述的可視化標(biāo)繪系統(tǒng),其中,還包括地圖化VML語句規(guī)則化模塊,用于對所述地圖化VML語句中的不規(guī)則符號進(jìn)行規(guī)則化。
13.根據(jù)權(quán)利要求6所述的可視化標(biāo)繪系統(tǒng),其中,所述標(biāo)繪圖形顯示模塊具體包括 塊層創(chuàng)建單元,用于在地圖層上創(chuàng)建新的塊層;標(biāo)繪圖形顯示單元,用于在所述塊層顯示所述新的VML語句中各個標(biāo)繪標(biāo)簽對應(yīng)的標(biāo)繪圖形。
全文摘要
本發(fā)明涉及一種基于GIS的可視化標(biāo)繪方法,包括獲取當(dāng)前標(biāo)繪的所有VML語句;處理VML語句,將VML語句對應(yīng)的標(biāo)繪圖形的屏幕坐標(biāo)轉(zhuǎn)換為地圖地理坐標(biāo);重組VML語句,形成并關(guān)聯(lián)存儲地圖化VML語句,將屏幕坐標(biāo)替換為地圖地理坐標(biāo);在地圖的參考位置和/或屏幕比例尺發(fā)生變化時,提取與被選VML標(biāo)識關(guān)聯(lián)的所有地圖化VML語句;對地圖化VML語句進(jìn)行地圖地理坐標(biāo)的提取,并將地圖地理位置轉(zhuǎn)換成新的屏幕坐標(biāo);對地圖化VML語句進(jìn)行重組,形成新的VML語句,在新的VML語句中將地圖地理坐標(biāo)替換為屏幕坐標(biāo);執(zhí)行新的VML語句,以顯示對應(yīng)的標(biāo)繪圖形。本發(fā)明通過對VML語句的轉(zhuǎn)換和關(guān)聯(lián)存儲,使得在對地圖進(jìn)行各種操作時,可以隨著地圖的變化而動態(tài)展示適當(dāng)?shù)臉?biāo)繪圖形。
文檔編號G06F17/30GK102467519SQ201010538048
公開日2012年5月23日 申請日期2010年11月4日 優(yōu)先權(quán)日2010年11月4日
發(fā)明者吳汝偉, 張晨, 林靜, 步鳴笛, 阮毅勇 申請人:中國電信股份有限公司