高 杰 陳桂芬 房 超 丁高濤
隨著3G時代的到來,gis迎來了一個嶄新的時代。Webgis已經為人熟知,wap必將是gis的另一個新紀元。本文主要分析wapgis的整體框架、瓦片的概念以及手機用戶端常見操作的基本算法和實現(xiàn)。
1 wapgis原理
Webgis技術已經十分成熟。而wap2.0協(xié)議已經和web2.0協(xié)議相差也不大,做webgis的開發(fā)人員,很容易轉型做wap-gis。
2空間服務器
現(xiàn)在主流的數(shù)據(jù)庫有oracle、db2、sqlserver等,這些數(shù)據(jù)都支持空間數(shù)據(jù)。根據(jù)自己的實際情況可以選擇任何一種空間數(shù)據(jù)庫。這里我們選擇oracle數(shù)據(jù)庫。因為一般gis系統(tǒng)數(shù)據(jù)量非常大,在處理大數(shù)據(jù)量方面oracle比較出色。再建立空間數(shù)據(jù)庫的時候,建議使用分區(qū)表。這樣可以大大提高數(shù)據(jù)訪問速度。空間數(shù)據(jù)服務器建議使用unix操作系統(tǒng),實踐告訴我們,unix操作系統(tǒng)做數(shù)據(jù)服務器在性能方面比較高。
3 gis服務器
Gis平臺有很多種選擇,可以選擇國外的arcgis,也可以選擇國內中地數(shù)碼的mapgis等。Gis服務器負責處理各種空間數(shù)據(jù)。
4web服務器
Web服務器的選擇很寬松,應需要而定。一般的linux+tomcat(java)或者windows+iis(asp.net)等。Web服務器負責處理來自手機端或者pc端的請求和gis服務器數(shù)據(jù)的交換。
5終端
終端類型有很多手機、pda、pc等。這里我重點講解手機終端。
終端的操作類型主要有全圖、放大、縮小、左移、右移、上移、下移、屬性等。下面我們結合實際來談談這幾種操作的實現(xiàn)。這里web服務器使用的瓦片原理。
手機用戶訪問web服務器的時候,web服務器接受行號、列號、層數(shù)等參數(shù)。先在web服務器中尋找相應的圖片,如果web服務器里面有相應的圖片,則直接發(fā)送給手機端。如果web服務器端沒有相應的圖片,則向gis服務器請求。Gis服務器根據(jù)請求條件請求空間數(shù)據(jù)庫。然后,生成瓦片發(fā)送給web服務器。Web服務器再發(fā)送給手機端。
瓦片原理:一張地圖可以按照比例尺大小而展現(xiàn)數(shù)據(jù)精細度不同。比如,一張100100pix的圖片表示100*lOOm的地理范圍,四張100*100p的圖片也來表示100*100m的地理范圍,十六張100*100pix的圖片也來表示100*100m的地理范圍,以此類推。當我們執(zhí)行上面的操作的時候,是不停的請求不同圖片。所以,只有層數(shù)、行號、列號就可以唯一確定圖片。
下面我們來討論一下上面的各種操作:
全圖:手機端使用ajaX技術,把層數(shù)=o,行號=0,列號=0發(fā)送給web服務器,web服務器再把對應的圖片發(fā)送給手機端。手機端再請求期間通過js展現(xiàn)請求界面,這樣給人的視覺效果比較好。當圖片下載完畢后展現(xiàn)出來。用戶基本感覺不到閃爍現(xiàn)象。
放大:手機端使用ajax技術,把當前層數(shù),行號,列號發(fā)送給web服務器,web服務器通過換算得到下一層對應的地圖的大小的圖片。這里我們做一下簡化,每次只顯示四張圖片,下面類同。那么他們的對應關系是:
放大公式:xl=2*x0+l yl=2*yO+l layerl=layer0+l
縮?。菏謾C端使用ajax技術,把當前層數(shù),行號,列號發(fā)送給web服務器,web服務器通過換算得到上一層對應的地圖的大小的圖片。那么他們的對應關系是:
縮小公式:xl=(x0-1)/2 yl=(yO-1)/2 layerl=layer0.1及放大的反函數(shù)
左移:手機端使用ajax技術,把當前層數(shù),行號,列號發(fā)送給web服務器,web服務器通過換算得到同層對應的地圖的大小的圖片。那么他們的對應關系是:
左移公式:xl--xO-1 yl=yO layerl=layero
右移:手機端使用ajax技術,把當前層數(shù),行號,列號發(fā)送給web服務器,web服務器通過換算得到同層對應的地圖的大小的圖片。那么他們的對應關系是:
右移公式:xl--xO+l yl=yO layerl=layer0
上移:手機端使用ajax技術,把當前層數(shù),行號,列號發(fā)送給web服務器,web服務器通過換算得到同層對應的地圖的大小的圖片。那么他們的對應關系是:
上移公式:xl--xO yl=-yO-l layerl=layer0
下移:手機端使用ajax技術,把當前層數(shù),行號,列號發(fā)送給web服務器,web服務器通過換算得到同層對應的地圖的大小的圖片。那么他們的對應關系是:
下移公式:xl---xO yl=yO+l layerl=layerO
屬性:屬性的請求比較復雜,首先要把圖片上面的像數(shù)坐標發(fā)給web服務器,web服務器根據(jù)像數(shù)坐標、層數(shù)、行號、列號等參數(shù),換算成地圖坐標,gis服務器通過地圖坐標換算成地理坐標,請求空間數(shù)據(jù)服務器,空間數(shù)據(jù)服務器把查詢的機構反向返回給手機用戶。
6結束語
對wapgis框架以及手機用戶端的實現(xiàn),我們可以清晰的了解wapgis工作的基本原理和實現(xiàn)方法。當然,基本操作的算法多種多樣,這里只是提供了一個簡化的算法,但基本可以實現(xiàn)常用功能。