国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于J2ME架構(gòu)的移動(dòng)GIS系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

2011-02-01 07:57尹巖雷
科技傳播 2011年12期
關(guān)鍵詞:圖層客戶端界面

尹巖雷

邯鄲銀行信息科技部,河北邯鄲 056002

0 引言

GIS(地理信息系統(tǒng))是收集、存儲(chǔ)、管理和分析數(shù)字地理空間信息的系統(tǒng),它是一種特定的十分重要的空間信息系統(tǒng)。隨著人們生活水平的提高,其應(yīng)用也越來越廣泛。由于類似于手機(jī)的手持設(shè)備已經(jīng)成為了人們生活必不可少的工具,也是伴隨著人們時(shí)間最長(zhǎng)的工具,因此將GIS應(yīng)用與手機(jī)之上將會(huì)給人們的生活與工作帶來更多的方便。

Mobile GIS(移動(dòng)地理信息系統(tǒng))就是以WWW的Web頁面作為GIS軟件的用戶界面,把Internet和GIS技術(shù)結(jié)合在一起,能夠進(jìn)行各種交互操作的GIS,它是一種大眾化的GISoWeb頁面使用超媒體技術(shù)和超文本鏈接語言,使得對(duì)WWW的操作更富有靈活性和趣味性。以Web作為GIS的用戶界面,將一改以往GIS軟件用戶界面呆板生硬的面孔,更利于GIS大眾化。本文首先對(duì)移動(dòng)GIS系統(tǒng)的進(jìn)行分析,然后對(duì)系統(tǒng)的功能模塊進(jìn)行設(shè)計(jì)。

1 移動(dòng)GIS系統(tǒng)分析

系統(tǒng)的執(zhí)行單元即為功能模塊,合理的模塊劃分對(duì)系統(tǒng)針對(duì)不同的應(yīng)用進(jìn)行功能的裁減是非常有幫助的。按照實(shí)際需要,我們把本系統(tǒng)的功能模塊分成了圖層控制模塊、地圖操作模塊、GPS數(shù)據(jù)獲取和現(xiàn)實(shí)模塊、數(shù)據(jù)管理模塊、空間分析模塊。

1.1 地圖操作的模塊

該模塊的基本操作包含了恢復(fù)原始試圖、地圖的平移與縮放。還能控制是不是要顯示比例尺、指南針。

1.2 圖層控制的模塊

該模塊包含了圖層的疊放次序控制與可見性控制,還能控制是否要顯示具體的圖層的標(biāo)注。

1.3 空間分析的模塊

該模塊主要有分析、路徑查詢和按照?qǐng)D形來查屬性的功能。

本模塊將移動(dòng)終端的運(yùn)算能力充分挖掘出來了,通過周邊查詢、按照關(guān)鍵字來查位置,從而實(shí)現(xiàn)通過路徑查詢來找到各個(gè)空間。由于路徑查詢的算法十分復(fù)雜,所以把它放在服務(wù)器端來運(yùn)算,而客戶端則完成了本地顯示和解析返回的結(jié)果。本系統(tǒng)尚未涉及到一些更高級(jí)的GIS的空間分析模塊,像是三維分析、面或線狀地物分析、疊置分析等。

1.4 數(shù)據(jù)管理的模塊

該模塊在有效組織與存儲(chǔ)地圖數(shù)據(jù)的基礎(chǔ)之上,有效的管理了地圖的數(shù)據(jù),包含了地圖信息元數(shù)據(jù)的查看、地圖數(shù)據(jù)的刪除、增加。增加地圖數(shù)據(jù)的時(shí)候要向服務(wù)器端發(fā)出數(shù)據(jù)請(qǐng)求,將返回的數(shù)據(jù)解析以后再存儲(chǔ)至相應(yīng)的文件系統(tǒng)或者是RMS當(dāng)中。

1.5 GPS數(shù)據(jù)的顯示和獲取模塊

該模塊的主要功能就是使得支持藍(lán)牙的移動(dòng)設(shè)備使用藍(lán)牙來對(duì)附近的GPS數(shù)據(jù)進(jìn)行讀取。在獲取GPS數(shù)據(jù)之后,要對(duì)坐標(biāo)進(jìn)行變換,不但能在手機(jī)的地圖上顯示出當(dāng)前所在位置,還能進(jìn)行導(dǎo)航和路徑顯示。

按照上述對(duì)功能模塊的設(shè)計(jì),該手機(jī)具有的具體功能包括地圖操作、圖層控制、地圖的打開和瀏覽、數(shù)據(jù)請(qǐng)求、地圖數(shù)據(jù)的管理、圖形屬性的互查、路徑查詢和顯示等。依據(jù)各操作的關(guān)聯(lián)性與邏輯聯(lián)系,主界面將會(huì)提供四項(xiàng)功能,它們分別是打開地圖、關(guān)于本系統(tǒng)、新地圖請(qǐng)求和本地?cái)?shù)據(jù)管理。主界面不會(huì)涉及到低級(jí)的用戶界面當(dāng)中的圖形繪制,使用MIDP高級(jí)界面來實(shí)現(xiàn)的。其中,新地圖請(qǐng)求界面的功能是讓用戶能便捷、直觀地對(duì)新數(shù)據(jù)請(qǐng)求所需參數(shù)進(jìn)行組合,向服務(wù)器提交所生成的規(guī)范的URIJ。它的作用是和服務(wù)器進(jìn)行數(shù)據(jù)的交互,將本地?cái)?shù)據(jù)的更新完成。本地?cái)?shù)據(jù)管理則是提供本地的地圖數(shù)據(jù)的元數(shù)據(jù)查看、刪除、打開等功能。在打開地圖中提供了兩種地圖打開的方法,分別為打開RMS列表和文件系統(tǒng)當(dāng)中的瀏覽svg格式的文件。在打開地圖的基礎(chǔ)之上,再提供各項(xiàng)對(duì)地圖的操作,例如圖形查找、路徑的查詢和顯示、圖層控制、屬性查找等。為了方便用戶的操作,將會(huì)在每一個(gè)界面上提供幫助窗口,用來提供說明或操作方面的信息。

2 移動(dòng)GIS系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

2.1 系統(tǒng)框架的設(shè)計(jì)

移動(dòng)GIS系統(tǒng)的結(jié)構(gòu)主要是由三部分組成的:數(shù)據(jù)源、服務(wù)器部分、客戶端部分,分別承載于數(shù)據(jù)層、中間層和表現(xiàn)層。數(shù)據(jù)層包含了存有屬性數(shù)據(jù)和空間數(shù)據(jù)的大型對(duì)象關(guān)系的數(shù)據(jù)庫,不但提供數(shù)據(jù),還提供了一個(gè)空間數(shù)據(jù)的引擎。中間層包含了互聯(lián)網(wǎng)、MaPServer、移動(dòng)互聯(lián)網(wǎng)、webserver等部分,一方面提供了和移動(dòng)終端的相互操作,另一方又提供了各種GIS的應(yīng)用,同時(shí)還進(jìn)行對(duì)空間數(shù)據(jù)的轉(zhuǎn)換與處理。表現(xiàn)層則是客戶端的載體,包含了各種不同的移動(dòng)終端,能夠?yàn)橐苿?dòng)GIS系統(tǒng)離線服務(wù)的模式提供新的支持,也能和移動(dòng)終端進(jìn)行同步互聯(lián)。

2.2 系統(tǒng)功能實(shí)現(xiàn)

本移動(dòng)GIS系統(tǒng)的客戶端開發(fā)采用了NetBeans IDE5.5的開發(fā)環(huán)境,用NetBeans mobility5.5來配合,用最新的WTK2.5作為Java開發(fā)包。

2.2.1 地圖數(shù)據(jù)的加載

所謂地圖加載就是在移動(dòng)終端顯示出SVG文檔的過程。在引入(import)必要的API包之后,可以在MIDlet當(dāng)中用ScalableGrephics類來直接地繪制出一個(gè)Scalablelmage到Grephics對(duì)象上面,還能夠通過參數(shù)來對(duì)屏幕上的繪制起點(diǎn)進(jìn)行控制。SVGImage為ScalableImage的子類之一,提供了底層DOM文檔訪問和事件處理的直接聯(lián)系。在繪制之前,一定要用bindTarget方法吧傳遞至繪制方法當(dāng)中的Grephics對(duì)象與ScalabeGraphics實(shí)例綁定起來,并且在完成繪制之后調(diào)用releaseTargct()的方法。

2.2.2 地圖基本的操作

盡管通過對(duì)SVG文檔當(dāng)中的坐標(biāo)來運(yùn)行transform的方法進(jìn)行平移與變換也能夠?qū)崿F(xiàn)漫游于對(duì)地圖的縮放,但是因?yàn)槠渲兴婕暗淖鴺?biāo)的變換需要數(shù)學(xué)運(yùn)算,對(duì)某個(gè)元素進(jìn)行特殊變換的時(shí)候可以使用這種方法,但是在進(jìn)行整體運(yùn)算的時(shí)候就會(huì)顯得效率太低。

在SVG文檔當(dāng)中,標(biāo)簽有個(gè)viewBox屬性,它提供了一個(gè)視口的概念,能對(duì)用戶所見到的圖形范圍進(jìn)行控制。viewBox有四個(gè)參數(shù),它們的含義分別為視口的縱坐標(biāo)、橫坐標(biāo)、高度與寬度。通過調(diào)整這四個(gè)參數(shù)能實(shí)現(xiàn)漫游和視覺上地圖縮放的功能。在對(duì)地圖進(jìn)行縮放的時(shí)候,改變視口的寬度與高度,并且為了保證在縮放前后的中心點(diǎn)位置是一致的,就需要適當(dāng)改變視口的左上角的位置。而對(duì)于地圖漫游,只要將視口寬度與高度保持不變、對(duì)左上角的兩個(gè)坐標(biāo)的值進(jìn)行改變就行了。而對(duì)于地圖的復(fù)位(即全圖顯示),只要把viewBox的參數(shù)恢復(fù)為初始值就行了。地圖在放大前后的對(duì)比圖如圖1所示。

圖1 地圖放大前后的對(duì)比圖

2.2.3 根據(jù)關(guān)鍵字來查位置

圖2 查詢的結(jié)果

所謂屬性查詢是指依據(jù)用戶所輸入的關(guān)鍵字來搜索相關(guān)地理要素,并且把它突出顯示出來。在搜索的時(shí)候首先要將制定的圖層當(dāng)中的每個(gè)要素遍歷,然后把符合條件的要素都添加進(jìn)一個(gè)列表當(dāng)中去。要是搜索的結(jié)果為空,要提醒用戶重新搜索;要是結(jié)果僅有一個(gè),就直接顯示出來;要是結(jié)果有多條記錄,就生成一個(gè)結(jié)果列表,讓用戶從中進(jìn)行第二次選擇再顯示出來。

在高亮顯示搜索的結(jié)果的時(shí)候,要把它放在當(dāng)前屏幕中央的位置??梢圆扇~@取結(jié)果實(shí)體中心的邊界坐標(biāo)或是中心坐標(biāo),然后再對(duì)viewBox屬性進(jìn)行調(diào)整的方法來實(shí)現(xiàn)。然而,獲得用路徑、矩形或者圓等表示的地理要素的位置坐標(biāo)的方法是不一樣的,并且在對(duì)線要素和多邊形要素進(jìn)行高亮度顯示的時(shí)候要ui要素最小的邊界矩形(MBR)進(jìn)行計(jì)算,按照屏幕大小和圖形大小的關(guān)系來確定viewBox的大小。搜索的結(jié)果如圖2所示。

2.2.4 路徑的查詢

所謂路徑查詢是指顯示兩點(diǎn)間的路徑信息,要實(shí)現(xiàn)此功能要借助于服務(wù)器??蛻舳讼蚍?wù)器提交起訖點(diǎn)的路徑方式(最省時(shí)、最短等)和點(diǎn)位信息,服務(wù)器端在計(jì)算了路徑之后,向客戶端返回查詢結(jié)果,移動(dòng)終端解析了數(shù)據(jù)之后,利用程序來生成元素的對(duì)象,將它添加入< g id=“temp”>圖層要素當(dāng)中,就完成了路徑在當(dāng)前的地圖上的顯示??梢詫⒙窂綌?shù)據(jù)保存于RMS當(dāng)中,以供下次路徑的顯示。按照路徑所經(jīng)過的點(diǎn),還能動(dòng)態(tài)的演示路徑。路徑查詢的界面如圖3所示。

圖3 路徑的查詢界面和查詢結(jié)果的界面

3 結(jié)論

本文設(shè)計(jì)與實(shí)現(xiàn)的移動(dòng)GIS系統(tǒng),是真正意義上的MVC架構(gòu),與通常以JS技術(shù)實(shí)現(xiàn)的靜態(tài)方式有根本區(qū)別。

[1]陳靜,龔健雅,朱欣焰,李清泉.基于J2EE的分布式WebGIS[J].測(cè)繪通報(bào),2004(2):27-30.

[2]戚銘堯,池天河,霍亮.Web-GIS的企業(yè)級(jí)解決方案探討[J].計(jì)算機(jī)科學(xué),2003,30(2).

[3]周穎.基于WebGIS的移動(dòng)信息發(fā)布系統(tǒng)研究[D].北京.北京移動(dòng)大學(xué)碩士論文,2004,3:19-22.

猜你喜歡
圖層客戶端界面
國(guó)企黨委前置研究的“四個(gè)界面”
縣級(jí)臺(tái)在突發(fā)事件報(bào)道中如何應(yīng)用手機(jī)客戶端
孵化垂直頻道:新聞客戶端新策略
基于Vanconnect的智能家居瘦客戶端的設(shè)計(jì)與實(shí)現(xiàn)
基于FANUC PICTURE的虛擬軸坐標(biāo)顯示界面開發(fā)方法研究
巧用混合圖層 制作抽象動(dòng)感森林
人機(jī)交互界面發(fā)展趨勢(shì)研究
圖層法在地理區(qū)域圖讀圖中的應(yīng)用
跟我學(xué)添加真實(shí)的光照效果
手機(jī)界面中圖形符號(hào)的發(fā)展趨向
工布江达县| 荣成市| 灌云县| 湖北省| 安顺市| 布拖县| 柳州市| 昆山市| 博乐市| 安福县| 宣城市| 沂源县| 涪陵区| 左贡县| 葵青区| 丹凤县| 洛南县| 海淀区| 河津市| 莱阳市| 全椒县| 同江市| 霞浦县| 南京市| 闸北区| 河北省| 阿拉善盟| 历史| 屯昌县| 临安市| 石嘴山市| 南召县| 杂多县| 泸溪县| 昌都县| 新民市| 巫山县| 城步| 抚远县| 浦江县| 天镇县|