




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

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