MapServer

MapServer

MapServer是由美國明尼蘇達大學開發的開源WebGis軟體,它具有強大的空間數據的網路發布功能。MapServer支持多種數據格式,使得在WebGis中整合空間數據和非空間數據變得更加容易。

基本介紹

簡介,工作流程,庫,特點,

簡介

MapServer是由美國明尼蘇達大學美國太空總署(NASA)開發的一個開源的WebGIS軟體。MapServer作為WebGIS解決方案,它是面向對象的,基本配置檔案MapFile和MapScript模組的API組織都是基於對象的。MapServer通過支持OGC協會的若干標準,支持分布和互操作。MapServer是基於胖伺服器/瘦客戶端模式開發的webgiS平台,讀取地理數據,並利用GD庫繪製好jpg/png/gif格式的圖片後再傳回客戶端瀏覽器。MapServer支持在WindowsUNIXLinux等多種平台。MapServer支持OGC的WMS/WFS服務規範。MapsServer本身是由C語言編寫的程式,提供了兩種開發模式,一種是基於CGI的,另一種是MapScript方式。MapScript支持的語言:PHP,PerlPythonjavaTclC#等。MapServer可以看作是兩個獨立模組的統稱:MapServer CGI模組和MapScript模組。在伺服器端可以使用任一模組,編寫WebGIS程式。
MapFile檔案將各種地圖要素組織成具有層次關係的對象系統。數據來源,使用的數據格式,用戶互動和對OGC協定的支持也在MapFile中定義。MapFile的語法很簡單。MapFile的關鍵字包括對象名、對象屬性(keyword),對象結束標記“END”。
Maplab是基於web的Map檔案編輯工具和腳本調試工具,是構建在MapServer上的界面。MapLab有三個主要的模組,MapEdit、MapBrowser及GMapFactory。PHP/MapScript是一個可以讓PHP動態地載入的模組,使MapServer可以在PHP環境中使用MapScript的功能,如此使用者可以在PHP的環境中控制MapServer。
MapServer已實現兩個OGC界面規範分別為WMS(Web Map Service)和WFS(Web FeatureService)。Opengis網路地圖服務規範(WMS)的原始設計理念是希望從網路上多重分布的資料庫中提取地理圖形及部分屬性資料以產生客制化的地理圖形,這類圖形一般以JPEG、GIF或PNG圖形格式存儲。此外,還支持SVG及WebCGM(web computer graphics metafile)。OpengiS網路特徵服務(WFS)主要描述展現OGC特徵資料的運作方式,讓伺服器和使用者能夠在圖層上溝通,獲得圖層底下各特徵的信息,核心協定是GML。WFS的使用者可以使用一般OGC網路服務提出請求的方法,即透過URL傳送CGI參數和WFS伺服器進行互動。此外使用者還可以透過XML對WFS伺服器提出要求。

工作流程

MapServer的主要工作流程:
(1)由Web伺服器將用戶的訪問參數及要求的CGI參數傳給MapServer。
(2)MapServer接收到Web伺服器傳送的參數後,再由參數中所定義的Mapfile路徑讀取Mapfile檔案。根據Mapfile中指定的數據路徑讀取相關地理數據,並將讀取的數據根據Mapfile檔案中的設定進行製圖。
(3)第(2)步所傳送的信息被PostGIS接受後,對PostGIS下達請求。
(4)空間資料庫將空間與屬性數據傳送到MapServer進行處理。
(5)MapServer通過一系列處理,由GD Library將空間數據轉成PNG或IPG。
(6)MapServer根據Mapfile中的設定,讀取特定的Template file進行製圖工作。通過編輯Template file可以設計MapServer Applications在瀏覽器中顯示的界面。
(7)在地圖製圖工作完成後,將保存至客戶端參數中指定的位置。並由Web伺服器返回給客戶端瀏覽器顯示。

MapServer是使用C語言編寫的開源軟體,它本身又依賴一些開源的或免費的庫,如Shapelib、FreeType、Proj.4、GDAL/OGR。
(一)必須的庫
1)GD Library:MapServer通過使用GD graphics library來表現GIFPNG和JPEG 格式的圖像。這些圖像通過MapServer CGI在瀏覽器上瀏覽。
2)Regex:Regex是一個正則表達式庫。
(二)可選的庫
1)JPEG library:由GD調用生成JPEG圖像。
2)PNG library:由GD調用生成PNG圖像。
3)Zlib:由libpng用來提供圖形壓縮功能。
4)FreeType 2:由GD.調用提供TrueType支持。
5)PROJ.4:Proj.4用於動態的投影變換。WMS、WFS或WCS Services也需要它的支持。
6)GDAL/OGR:MapServer使用GDAL/OGR庫來讀入raster(GDAL)andvector(OGR)格式的數據
7)ArcSDE:ArcSDE是ESRI公司的空間資料庫引擎(它不是免費的)用於支持MapServer進入SDE資料庫。
8)EPPL7:用來讀取EPPL7資料庫和舊版本的Erdas LAN/GIS檔案。它是作為MapServer的內置庫。

特點

1、先進的地圖輸出發布功能。包括:圖像比例自動調節;特徵標註(包含標註衝突解決);完全支持定製的模板的輸出,生成個性化界面;支持微軟和APPLE公司共同研製的字型標準TrueType;地圖元素(如比例尺、圖例,參照圖等)自動控制;利用邏輯或正則表達式生成專題地圖。
2、支持當前流行的腳本語言和開發環境:支持:PHP,PerlPythonjavaTclC#等語言;跨系統平台支持:WindowsUNIXLinux等。
3、支持目前流行的絕大多數矢量柵格數據格式:支持的矢量格式:ESRI shapefiles、PostGIS、ESRI的ArcSDE等(通過OGR庫實現);支持的柵格格式:TIFF/GeoTIFF,EPPL7等(通過GDAL庫實現)。對shapefile檔案,可以建立四叉樹空間索引。支持分塊的矢量和柵格數據。
4、可以通過URLS動態進行配置;支持動態的投影變換;對OGC若干網路規範:WMS、WFS、WCS、WMC、SLD、GML和Filter Encoding都有較好的支持。

相關詞條

熱門詞條

聯絡我們