1. 程式人生 > >GIS平臺結構設計

GIS平臺結構設計

    WebGIS由於技術發展和功能定位的原因,一般在進行架構設計的時候更多地考慮是否容易實現、使用者互動、資料傳輸方便、渲染效果等方面,對強GIS的應用考慮得少,所以架構上與桌面的GIS平臺很不一樣。使用HTML5開發的GIS平臺,由於效能的提高、海量向量資料的支援,很多桌面上的GIS功能都能轉移到WebGIS上,這時候常見的WebGIS架構就難滿足要求了。本文介紹了桌面GIS的主體架構設計(主要參考開源GIS平臺 DotSpatial),希望能對大家有點幫助。 1.    平臺主要模組   地圖模組:負責地圖的顯示控制、圖層管理、地圖文件管理、螢幕座標轉換等。資料模組:負責空間資料、屬性資料、影像資料等資料格式的存取以及相關的操作。投影模組

:負責投影資訊的定義和不同投影直接的座標轉換。地圖繪製:包括地圖圖層風格的設定、影像圖層介面、向量圖層介面和標註圖層介面等。拓撲模組:包括空間拓撲關係計算、空間索引、幾何物件的操作方法等。基本繪製:基本圖形的繪製,不同平臺分別實現。 2.    地圖模組   地圖顯示:MapView控制元件包括地圖重新整理、圖層管理、螢幕座標轉換等功能。地圖文件:地圖文件儲存了顯示圖層資訊、圖層風格、資料來源、地圖投影等資訊。MapDocument物件負責地圖文件的載入和儲存。 3.    資料模組

資料集:資料集介面(IDataset)平臺中各種資料格式的公共介面,它包括投影資訊、資料集資訊和資料集複製等基本操作。網路資料

:用於導航的一種資料格式,其儲存內容包括空間資料、拓撲關係和相關的屬性。影像資料:負責影像資料的載入和顯示,本平臺中暫時支援瓦片影像格式,可使用線上瓦片影像或本地瓦片影像。向量資料集:向量資料集介面(IFeatureSet)用於對空間和屬性資料進行描述、管理和操作。包括基本的資料讀取、資料儲存、資料查詢、資料編輯等方法。空間資料:向量資料集的空間資料部分,負責空間資料檔案的讀寫操作、空間索引的維護。本平臺中包括底圖資料(EPJ)格式和可編輯資料格式兩種。屬性儲存:向量資料集中屬性部分的存取,一般使用Sqlite儲存屬性資料。記錄集:資料查詢結果集合,用於列舉查詢結果。   幾何物件:Geometry,幾何物件的基類,包括基本的物件屬性和操作方法。子類包括:簡單點(Point)、簡單折線(Polyline)、簡單多邊形(Polygon)、多點(MultiPoint)、多線(MultiPolyline)、複合多邊形(MultiPolygon)。 4.    地圖繪製
圖層介面:圖層介面(ILayer)是地圖顯示的單元,它定義了基本的圖層顯示屬性:最大最小顯示比例、是否顯示。圖層中包括一個數據集物件,用於獲取顯示的空間資料或影像資料。影像圖層:繼承於ILayer,實現影像圖層的繪製。向量圖層:繼承於ILayer,實現向量圖層的繪製。它包含向量風格物件和標註圖層物件。標註圖層:繼承於ILayer,實現標註文字的繪製。風格方案:圖層風格管理。風格方案:IFeatureScheme,表示向量圖層的顯示。顯示類別集合:顯示類別IFeatureCategory的集合,負責類別的插入和刪除。顯示類別:IFeatureCagetory,一個顯示類別表示一組相同的顯示方法,它包含有過濾條件屬性(FilterExpression)用於過濾符合條件的地物。IFeatureCagetory中包括常態的顯示風格Symbolizer和選中風格SelectionSymbolizer。顯示風格介面:IFeatureSymbolizer,點、線、面風格的公共介面。點風格:IPointSymbolizer,點要素的顯示介面,包含有Symbols屬性(ISymbol的陣列)。符號介面:ISymbol,簡單點符號的繪製介面,由它的子類完成點要素的繪製。子類包括簡單符號、圖示、字型等符號 型別。線風格:ILineSymbolizer,線要素的顯示介面,包含有Strokes屬性(IStroke的陣列)。筆畫介面:IStroke,筆畫的介面,包含線性、線寬、顏色和偏移量等屬性,由它的子類完成線要素的繪製。面風格:IPolygonSymbolizer,面要素的顯示介面,包含有Patterns(IPattern的陣列)圖案介面:IPattern,圖案的介面,包括邊框風格、填充顏色、填充透明度等屬性。子類有簡單圖案、漸變填充、圖片填充等。 5.    地圖控制元件 6.    幾何物件 7.    資料訪問