




1 ArcGIS簡介
隨著近期GIS的飛速發(fā)展,國內(nèi)外許多公司和研究機構(gòu)都開始涉足GIS軟件平臺的研發(fā)工作,許多GIS軟件平臺披開發(fā)出來,例如ESRI的ArcGIS,MapInfo公司的MapInfo,中地數(shù)碼的MapGIS等等。
ArcGIS是目前應(yīng)用最為廣泛的GIs軟件之一,由美國環(huán)境系統(tǒng)研究所(Environment System Research Institute,ESRI)開發(fā)完成。個人用戶可以通過桌面、Web應(yīng)用、服務(wù)器等途徑獲得ArcGIS這種地理信息平臺提供的GIS功能。服務(wù)器GIS、桌面GIS、移動GIS三個基礎(chǔ)框架。
2 系統(tǒng)總論及框架
基于瀏覽器的室內(nèi)地圖服務(wù)系統(tǒng)中,多層地圖結(jié)構(gòu)是所有功能模塊的基礎(chǔ),就連交互最少的地圖基本操作功能模塊,也需要多層地圖的支持一地圖切換。所以在實現(xiàn)其他功能模塊之前,多層地圖結(jié)構(gòu)的設(shè)計是最重要的。和單層地圖結(jié)構(gòu)相比,要實現(xiàn)多層地圖結(jié)構(gòu),下面兩個問題是必須被解決的:
2.1如何顯示和使用多張地圖
2.2如何記錄顯示在各地圖上的位置點信息
根據(jù)室內(nèi)建筑的特點,為了獲得更高的精度,系統(tǒng)使用RFID標(biāo)簽來進行定位,系統(tǒng)中選擇ArcGIS平臺為地理信息系統(tǒng)服務(wù)。基于無線網(wǎng)絡(luò)的定位技術(shù)在對室內(nèi)建筑來說精度較低,而基于接受衛(wèi)星信號的智能終端的定位技術(shù)在室內(nèi)信號可能達不到,因此在室內(nèi)地圖服務(wù)系統(tǒng)中,為了滿足精確的要求,我們采用RFID標(biāo)簽進行定位。另外,不同終端用戶要求不同,我們的室內(nèi)地圖服務(wù)系統(tǒng)在使用類型上有許多分類。在結(jié)構(gòu)方面,基于瀏覽器的室內(nèi)地圖服務(wù)系統(tǒng)主要包括前端顯示、邏輯處理以及數(shù)據(jù)存儲三層。通過瀏覽器,前端顯示層將系統(tǒng)的主頁面顯示出來。邏輯處理層對用戶所發(fā)送的地圖服務(wù)請求利用服務(wù)器上的功能模塊進行處理。數(shù)據(jù)存儲層會將包括地圖數(shù)據(jù)(在地圖服務(wù)器上存儲)以及其它數(shù)據(jù)(在普通數(shù)據(jù)庫服務(wù)器上存儲)等各類數(shù)據(jù)支持提供給系統(tǒng)。如圖1所示即系統(tǒng)結(jié)構(gòu)圖。
3 基本功能的設(shè)計和實現(xiàn)
3.1地圖顯示
在ArcGIS Server的開發(fā)中,要實現(xiàn)頁面地圖的顯示,第一步需要將做好的地圖文檔以服務(wù)的方式發(fā)送到ArcGIS Server上。具體方式有以下兩種。
(1)通過ArcGIS Server自帶的管理頁面在線發(fā)布。
(2)是通過桌面工具ArcCatalog來連接ArcGIS Server發(fā)布。
地圖服務(wù)發(fā)送到ArcGIS Server上便可以使用應(yīng)用程序?qū)Φ貓D進行操作。取得地圖服務(wù)之后,下一步可以對系統(tǒng)進行設(shè)置。這里我們先對Map Resource Manager控件進行一下介紹。Map Resource Manager控件作為一個服務(wù)器端控件,由AreGIS提供,旨在對Web應(yīng)用中的地圖資源的使用進行管理。Map Resource Item即該空間里的每個地圖資源,其將Map Resource Item集合編輯器提供給開發(fā)人員,開發(fā)人員可對其直接進行編輯、添加以及刪除操作。Ap-pearance屬性與Information屬性兩個屬性包含于每個M
ap Resource Item中,Appear-ance屬性用來對包括圖片格式,透明度等的顯示進行控制,Information屬性為包括資源來源、類型等其它地圖資源的定義。
3.2地圖的基本操作
(1)地圖移動:Navigation控件可以進行地圖的移動的相關(guān)操作??丶湃腠撁婧?,綁定Map控件,當(dāng)頁面運行時,通過Naviga-tion所示的方向按鈕,就可以對地圖進行方向的操作。

(2)地圖放大與縮?。和ㄟ^Javascript類庫中的zoom函數(shù)可進行縮放操作,zoom函數(shù)定義方式如下。
function zoom(var n)
用此函數(shù)來進行縮放的操作:當(dāng)參數(shù)n>1時,調(diào)用zoom函數(shù)可把地圖放大,當(dāng)參數(shù)1>n>0時,調(diào)用此函數(shù),可使地圖縮小。
(3)地圖還原:通過Javascript類庫中的set extent函數(shù)可把地圖還原,函數(shù)定義如下。
function set_extent(ESRLADRGeometries.Envelope n)。
通過這個函數(shù)可以改變地圖尺寸:如原地圖尺寸為n時,通過調(diào)用set extent函數(shù),可把地圖恢復(fù)到原視圖。
3.3查詢位置點信息
IQueryFunctionality接口由ArcGIS提供,能夠請求訪問地圖資源。利用接口中的Identify函數(shù),可查詢地圖資源中的某個點,以下即該函數(shù)的定義:
DataTable[] Identify(stringmapFunctionalityName,Geometrygeometry,int tolerance,IdentifyOptionoption,String[]layers)。
服務(wù)器在地圖上的某位置點指定之后,能夠獲得一個點對象,并對該函數(shù)進行調(diào)用,從而得到該地圖中此位置點的具體信息。
3.4定位位置與檢索名稱
檢索名稱以及定位位置時的查詢均要圍繞具體圖層的具體字段開展:在檢索名稱時,需要查詢例如商鋪層等指定層的Name字段,在定位位置時,則需要查詢標(biāo)簽層的Tag字段。可以通過接口IQueryFunctionality中的函數(shù)Query查詢地圖資源的圖層,函數(shù)定義方式如下。
DataTable Query(string mapFunctionalityName,string layerID,QueryFilterqueryFilter)
當(dāng)服務(wù)器指定確定要查詢的范圍和條件后,調(diào)用此函數(shù),便可在地圖資源中按條件進行尋找。一般情況下,只能得到一條關(guān)于位置定位的記錄,而對名稱進行檢索會得到多條記錄。
4 結(jié)語
基于瀏覽器的室內(nèi)地圖服務(wù)系統(tǒng)現(xiàn)在已經(jīng)可以訪問,并提供給用戶相應(yīng)的地圖服務(wù),但是系統(tǒng)在功能和性能上仍有可以進一步改進和提高的地方。同時測試工作也有待進一步完善。目前的測試工作還不夠完備,所以在系統(tǒng)后續(xù)的工作中,我們?nèi)沃氐?/p>