檀昊,張貞貞,詹毅帆
(武漢市特種設(shè)備監(jiān)督檢驗(yàn)所,湖北 武漢 4 3 0 0 4 0)
基于A r c G I S A P I f o r J a v a S c r i p t的電梯標(biāo)注展示與性能優(yōu)化探討
檀昊,張貞貞,詹毅帆
(武漢市特種設(shè)備監(jiān)督檢驗(yàn)所,湖北 武漢 4 3 0 0 4 0)
電梯地理信息系統(tǒng)開發(fā)核心內(nèi)容是電梯位置的標(biāo)注和信息的展示,其需求一般是精確定位,展示較全面的設(shè)備信息,同時(shí)兼顧系統(tǒng)運(yùn)行效率,有較高的靈活性和可擴(kuò)展性。作為武漢市“智慧電梯”項(xiàng)目的重要組成部分,武漢市電梯地理信息系統(tǒng)的開發(fā)在電梯展示方案的選擇、系統(tǒng)性能優(yōu)化等方面做了較多探究,建立了具有特色的電梯地理信息系統(tǒng),為電梯的信息查詢、檢驗(yàn)調(diào)度、安全監(jiān)管、應(yīng)急救援等提供了地理信息基礎(chǔ)平臺(tái)。
電梯;地理信息系統(tǒng);標(biāo)注展示
開發(fā)電梯地理信息系統(tǒng)(G I S)是當(dāng)前特種設(shè)備信息化發(fā)展的一大熱點(diǎn)。該系統(tǒng)是基于電梯數(shù)據(jù)庫(kù)系統(tǒng)和信息網(wǎng)絡(luò),以數(shù)字地圖為背景,以電梯設(shè)備數(shù)據(jù)和地理環(huán)境數(shù)據(jù)為運(yùn)行對(duì)象的計(jì)算機(jī)集成系統(tǒng)。它可將電梯各類參數(shù)信息和空間位置在數(shù)字地圖背景下進(jìn)行統(tǒng)一管理,以直觀的形式在數(shù)字地圖上展現(xiàn),同時(shí)輔以安全監(jiān)控和風(fēng)險(xiǎn)評(píng)估數(shù)據(jù),服務(wù)于電梯的使用管理、維護(hù)保養(yǎng)、檢驗(yàn)檢測(cè)、安全監(jiān)察情況與事故救援等。
作為系統(tǒng)性解決方案,We b G I S是當(dāng)前地理信息系統(tǒng)實(shí)現(xiàn)的最佳選擇。在眾多的We b G I S平臺(tái)中,E S RI公司的A r c G I S S e r v e r是首選的We b G I S開發(fā)平臺(tái)。A r c G I S S e r v e r使地圖服務(wù)管理更人性化,提供了基于RE S T(Re p r e s e n t a t i o n a l S t a t e T r a n s f e r,轉(zhuǎn)移表述性狀況)的服務(wù)器端和大量的分析組件。A r c G I S S e r v e r開發(fā)平臺(tái)的主要開發(fā)模式之一是A r c G I S A P I,這是基于RE S T服務(wù)器端接口開發(fā)模式,其最流行的開發(fā)技術(shù)毫無(wú)疑問(wèn)是A r c G I S A P I f o r J a v a S c r i p t。隨著RE S T服務(wù)應(yīng)用的快速發(fā)展,A r c G I S A P I f o r J a v a S c r i p t將會(huì)被更廣泛地應(yīng)用。作為We b G I S客戶端典型的開發(fā)技術(shù),A r c G I S A P I f o r J a v a S c r i p t使得很多工作可以在客戶端完成,不需要通過(guò)服務(wù)器支持,因此減輕了服務(wù)器的數(shù)據(jù)處理和網(wǎng)路傳輸負(fù)擔(dān),系統(tǒng)響應(yīng)更快、界面更美觀、功能更人性化,大大提高了用戶體驗(yàn)。
J a v a S c r i p t的運(yùn)行環(huán)境主要依靠瀏覽器的支持,而不是本機(jī)的開發(fā)環(huán)境,只要本機(jī)的瀏覽器支持J a v a S c r i p t,A r c G I S A P I f o r J a v a S c r i p便能發(fā)揮效用,因此其部署門檻極低,易于普及。A r c G I S A P I f o r J a v a S c r i p t 是基于D o j o框架,通過(guò)J a v a S c r i p t腳本語(yǔ)言調(diào)用 A r c G I S S e r v e r RE S T A P I 中RE S T接口的開發(fā)技術(shù)。可以快速高效的創(chuàng)建交互式的地圖應(yīng)用程序。通過(guò)調(diào)用A r c G I S S e r v e r的RE S T 接口并當(dāng)其操作符合RE S T風(fēng)格時(shí),它能實(shí)現(xiàn)空間數(shù)據(jù)發(fā)布平臺(tái)對(duì)空間數(shù)據(jù)分析處理的各種功能,以及將A r c G I S S e r v e r的空間地理數(shù)據(jù)和 G e o p r o c e s s i n g服務(wù)嵌入We b 應(yīng)用中,獲得專業(yè)的空間信息分析結(jié)果,同時(shí)它還能調(diào)用多個(gè)A r c G I S S e r v e r的服務(wù),實(shí)現(xiàn)多個(gè)A r c G I S S e r v e r 服務(wù)相互融合交互應(yīng)用。
武漢市電梯地理信息系統(tǒng)選用武漢市政務(wù)地圖作為基礎(chǔ)地圖,此地圖測(cè)繪精準(zhǔn),基礎(chǔ)地理信息全面。特別是該地圖支持街道級(jí)行政區(qū)劃單獨(dú)展示和統(tǒng)計(jì)分析,有助于網(wǎng)格化精準(zhǔn)監(jiān)管。以此為基礎(chǔ),需要將電梯位置信息展示在地圖之上,有兩種解決方案。一種是直接采用數(shù)字地圖的開發(fā)服務(wù),將電梯圖層加入到地圖上直接顯示,第二種是將服務(wù)器中的電梯經(jīng)緯度和屬性等數(shù)據(jù)提取到本地?cái)?shù)據(jù)庫(kù)中,在加載電梯展示頁(yè)面時(shí),從本地?cái)?shù)據(jù)庫(kù)中讀取電梯相關(guān)數(shù)據(jù),利用A r c G I S繪制到數(shù)字地圖上。下面對(duì)這兩種方案進(jìn)行詳細(xì)的分析比較:
第一種方案采用已有服務(wù),能夠減少數(shù)據(jù)庫(kù)的數(shù)據(jù)存儲(chǔ)量,但靈活性和擴(kuò)展性都很差。首先只能采用單一的一次性加載方式,一次將所有電梯標(biāo)注都繪制在地圖之上,對(duì)網(wǎng)絡(luò)速度要求高,在網(wǎng)絡(luò)狀況差的情況下,容易產(chǎn)生標(biāo)注無(wú)法展示的情況。標(biāo)注本身的自定義方式有限,無(wú)法隨需求改變位置、標(biāo)記圖片等標(biāo)注屬性。電梯數(shù)量逐年增加,若地圖未更新,則無(wú)法顯示新增設(shè)備,擴(kuò)展性差。
第二種方案則有著很高的靈活性和擴(kuò)展性。首先將已有的電梯數(shù)據(jù)存入數(shù)據(jù)庫(kù)中,可采用異步分頁(yè)的加載方式將電梯繪制到底圖上;同時(shí)標(biāo)注的定制性強(qiáng),能夠自定義圖標(biāo),不同狀態(tài)、不同種類的電梯采用不同的圖標(biāo),用戶能夠清晰分辨;從本地?cái)?shù)據(jù)庫(kù)讀取電梯信息能夠輕松加入不同的查詢條件,可實(shí)現(xiàn)靈活展示。
第二種方案的實(shí)施分為數(shù)據(jù)存儲(chǔ)和數(shù)據(jù)展示兩大部分。在數(shù)據(jù)存儲(chǔ)中,需要用到a r c g i s f o r j a v a s c r i p t中的特征圖層(f e a t u r e L a y e r)的相關(guān)功能,即首先將電梯的地圖服務(wù)以特征圖層的形式進(jìn)行加載,調(diào)用其中的查詢A P I(Qu e r y),將所有電梯數(shù)據(jù)查詢出來(lái)并傳入服務(wù)器,在服務(wù)器將電梯數(shù)據(jù)插入服務(wù)器中,完成電梯數(shù)據(jù)從服務(wù)到數(shù)據(jù)庫(kù)的存儲(chǔ)。在數(shù)據(jù)展示中則主要運(yùn)用了客戶端圖層(G r a p h i c s L a y e r),運(yùn)用該圖層能夠?qū)?shù)據(jù)庫(kù)中的電梯數(shù)據(jù)以符號(hào)標(biāo)注的形式展現(xiàn)在客戶端(即瀏覽器)上,與服務(wù)相分離;應(yīng)用G r a p h i c符號(hào)對(duì)電梯進(jìn)行標(biāo)注,根據(jù)電梯的經(jīng)緯度對(duì)G r a p h i c進(jìn)行定位,通過(guò)電梯的狀態(tài)對(duì)G r a p h i c進(jìn)行色彩渲染,如用綠色表示正常狀態(tài),紅色代表超期狀態(tài)等;將電梯的基本信息通過(guò)i n f o T e mp l a t e展示在標(biāo)注的信息面板上,方便即時(shí)查看電梯信息。流程如圖1所示。
圖1 電梯標(biāo)注展示的工作流程
由此可見,第二種方案優(yōu)勢(shì)明顯,是當(dāng)前首選的電梯展示方案。
由于電梯數(shù)量龐大,如果一次性顯示在頁(yè)面上,不僅耗時(shí)過(guò)長(zhǎng),易造成瀏覽器卡頓,同時(shí)電梯標(biāo)注會(huì)產(chǎn)生重疊、擁擠的現(xiàn)象。不僅顯示不直觀,同時(shí)給用戶的點(diǎn)選操作造成困難。因此考慮減少一次性加載的電梯標(biāo)注數(shù)量,一方面減少數(shù)據(jù)庫(kù)的讀取壓力和瀏覽器的繪制壓力,另一方面加強(qiáng)了標(biāo)注展示的可讀性。這里采用分級(jí)別聚類的思想,當(dāng)?shù)貓D縮放到特定級(jí)別時(shí),對(duì)電梯進(jìn)行聚類,具體方案為:將電梯展示分為三級(jí)(街道級(jí),使用單位級(jí)和單個(gè)電梯級(jí))。運(yùn)用A r c G I S中的ma p對(duì)象讀取地圖當(dāng)時(shí)的縮放等級(jí),將此等級(jí)與規(guī)定好的電梯級(jí)別相比較,確定當(dāng)前縮放等級(jí)屬于街道、使用單位還是單個(gè)電梯中的某一級(jí)別,并將標(biāo)識(shí)傳入服務(wù)器,服務(wù)器通過(guò)標(biāo)識(shí)從數(shù)據(jù)庫(kù)中分別讀取不同的位置信息,如傳入的級(jí)別為使用單位級(jí)別,則讀取單位的經(jīng)緯度及該單位下的電梯數(shù)量傳到頁(yè)面,在瀏覽器中展示出單位標(biāo)注。在縮放地圖時(shí),監(jiān)聽地圖的縮放事件,當(dāng)縮放結(jié)束時(shí),獲取當(dāng)時(shí)地圖的縮放等級(jí),判斷該縮放等級(jí)是否在當(dāng)前標(biāo)注級(jí)別的縮放等級(jí)范圍內(nèi),若不屬于當(dāng)前標(biāo)注級(jí)別,則清空地圖標(biāo)注,應(yīng)用A J A X技術(shù)從服務(wù)器請(qǐng)求相應(yīng)數(shù)據(jù),對(duì)地圖重新標(biāo)注??s放到不同標(biāo)注級(jí)別的電梯標(biāo)注展示效果如圖2~圖4所示。
在單個(gè)電梯級(jí)別,由于電梯數(shù)量接近于十萬(wàn),因此一次性讀取耗時(shí)在一分鐘左右,用戶體驗(yàn)極差,因此采用分批加載的方式,在加載完地圖底圖后,用A J A X向后臺(tái)異步請(qǐng)求電梯數(shù)據(jù),并傳入當(dāng)前分頁(yè)編號(hào),當(dāng)服務(wù)器讀取數(shù)據(jù)時(shí),首先比較當(dāng)前頁(yè)號(hào)與總頁(yè)數(shù),若當(dāng)前頁(yè)小于總頁(yè)數(shù),則繼續(xù)讀取下一頁(yè)數(shù)據(jù),而頁(yè)面同時(shí)對(duì)上一頁(yè)數(shù)據(jù)進(jìn)行繪制;若當(dāng)前頁(yè)號(hào)大于總頁(yè)數(shù),則停止讀取數(shù)據(jù),并向頁(yè)面?zhèn)饕粋€(gè)標(biāo)識(shí),頁(yè)面獲取標(biāo)識(shí)后停止向服務(wù)器請(qǐng)求,數(shù)據(jù)加載完畢。部分代碼如下:
$.a j a x({d a t a : {當(dāng)前頁(yè)號(hào)},s u c c e s s : f u n c t i o n(d a t a){//繪制服務(wù)器返回?cái)?shù)據(jù)。i f(數(shù)據(jù)標(biāo)識(shí)!= 最后一頁(yè)){//請(qǐng)求下一頁(yè)數(shù)據(jù)}}});
在電梯詳情的加載上,首先采用的是一次性將電梯所有數(shù)據(jù)讀取的方法,但這樣做數(shù)據(jù)量過(guò)大,在數(shù)據(jù)庫(kù)中讀取時(shí)間很長(zhǎng),影響整體性能。因此將數(shù)據(jù)分為兩部分進(jìn)行讀取,第一次讀取標(biāo)注展示所需的基本數(shù)據(jù),包括標(biāo)注定位所需的經(jīng)緯度,下一步讀取數(shù)據(jù)所需的電梯唯一編號(hào),這樣在讀取第一次數(shù)據(jù)后能夠?qū)㈦娞輼?biāo)注在地圖上,但沒有讀取電梯的詳細(xì)信息數(shù)據(jù)。當(dāng)用戶點(diǎn)擊標(biāo)注時(shí),首先通過(guò)監(jiān)聽標(biāo)注(G r a p h i c)的點(diǎn)擊事件,獲取當(dāng)前標(biāo)注的唯一編號(hào),并將該編號(hào)傳入服務(wù)器讀取標(biāo)注詳細(xì)信息,展現(xiàn)在標(biāo)注面板(i n f o T e mp l a t e)上。部分代碼如下:
d o j o.c o n n e c t(g r a p h i c L a y e r, "o n Cl i c k", f u n c t i o n(e v e n t) {//標(biāo)注點(diǎn)擊事件i f(地圖級(jí)別標(biāo)識(shí) == 單個(gè)電梯級(jí)別標(biāo)識(shí)){$.a j a x({s u c c e s s :f u n c t i o n(d a t a){//讀取電梯基本信息}});}e l s e i f(地圖級(jí)別標(biāo)識(shí) == 單位級(jí)別標(biāo)識(shí)){$.a j a x({s u c c e s s : f u n c t i o n(d a t a){//讀取單位信息和單位下的電梯列表}});}e l s e{$.a j a x({s u c c e s s : f u n c t i o n(d a t a){//讀取街道下的電梯列表}});}});
這樣處理能夠大幅度減少數(shù)據(jù)讀取量,減少服務(wù)器讀取壓力,同時(shí)也減輕了瀏覽器壓力,加快了瀏覽器的響應(yīng)速度。在第一步數(shù)據(jù)讀取時(shí),盡管只讀取了電梯展示所需的基礎(chǔ)數(shù)據(jù),但數(shù)據(jù)量依然很大,這里采用異步分頁(yè)的方式進(jìn)行電梯數(shù)據(jù)的讀取和電梯標(biāo)注的繪制。在頁(yè)面加載后,首先對(duì)底圖進(jìn)行加載,底圖加載完畢后用異步的方法進(jìn)行電梯數(shù)據(jù)的讀取,每次讀取一萬(wàn)條數(shù)據(jù),在數(shù)據(jù)返回頁(yè)面時(shí),加入一個(gè)標(biāo)記位來(lái)傳遞是否是最后一頁(yè)數(shù)據(jù)。前臺(tái)頁(yè)面在讀取數(shù)據(jù)的同時(shí)進(jìn)行標(biāo)注的繪制,繪制完成后對(duì)標(biāo)記位進(jìn)行判斷,如果不是最后一頁(yè)數(shù)據(jù),則繼續(xù)進(jìn)行讀取操作,讀取下一萬(wàn)條數(shù)據(jù)并進(jìn)行繪制;如果是最后一頁(yè)數(shù)據(jù),則終止數(shù)據(jù)讀取,完成標(biāo)注的繪制。這樣能夠以最快的速度進(jìn)行標(biāo)注展示,降低了單次數(shù)據(jù)讀取壓力,提高了程序性能。
圖2 縮放到街道級(jí)別
圖3 縮放到使用單位級(jí)別
圖4 縮放到單個(gè)電梯級(jí)別
電梯地理信息系統(tǒng)開發(fā)的重點(diǎn)和難點(diǎn)就是電梯在數(shù)字地圖上的可視化展示及運(yùn)行性能的優(yōu)化。本文采用A r c G I S A P I f o r J a v a S c r i p t作為主要開發(fā)工具,選用下載服務(wù)數(shù)據(jù)的形式對(duì)電梯數(shù)據(jù)進(jìn)行存儲(chǔ),同時(shí)用分級(jí)、分頁(yè)等多種方式對(duì)電梯數(shù)據(jù)的讀取及繪制進(jìn)行優(yōu)化,最終將電梯快速、準(zhǔn)確的標(biāo)注到數(shù)字地圖上。
[1]杜棟.基于S u p e r Ma p I S J a v a的特種設(shè)備安全監(jiān)察系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D].浙江大學(xué),2 0 0 7.
[2]尹靜秋,邱新法,何永健.基于We b G I S的鋼鐵物流信息系統(tǒng)分析與設(shè)計(jì)[J].物流科技,2 0 1 0(0 9):1 8~2 1.
[3]房體盈.基于J a v a S c r i p t技術(shù)的We b G I S設(shè)計(jì)與實(shí)現(xiàn)[D].大連理工大學(xué),2 0 0 8.
[4]趙沛.A r c G I S A P I F o r J a v a S c r i p t開發(fā)技術(shù)研究[D].遼寧師范大學(xué),2 0 1 5.
[5]A r c G I S A P I f o r J a v a S c r i p t開發(fā)教程[S].E S RI(中國(guó))信息技術(shù)有限公司,2 0 1 3(3).
P 2 0 8
A
1 6 7 1-0 7 1 1(2 0 1 7)0 2(下)-0 0 6 9-0 3