複製鏈接
請複製以下鏈接發送給好友

MapServer

鎖定
MapServer是由美國明尼蘇達大學開發的開源WebGis軟件,它具有強大的空間數據的網絡發佈功能。MapServer支持多種數據格式,使得在WebGis中整合空間數據和非空間數據變得更加容易。
中文名
MapServer
支持語言
PHP,PerlPythonjavaTcl
支持平台
Windows、UNIXLinux
開發單位
明尼蘇達大學和美國太空總署
開發時間
20世紀60年代
特    點
源代碼公開等

目錄

MapServer簡介

MapServer是由美國明尼蘇達大學和美國太空總署(NASA)開發的一個開源的WebGIS軟件。MapServer作為WebGIS解決方案,它是面向對象的,基本配置文件MapFile和MapScript模塊的API組織都是基於對象的。MapServer通過支持OGC協會的若干標準,支持分佈和互操作。MapServer是基於胖服務器/瘦客户端模式開發的webgiS平台,讀取地理數據,並利用GD庫繪製好jpg/png/gif格式的圖片後再傳回客户端瀏覽器。MapServer支持在Windows、UNIXLinux等多種平台。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服務器提出要求。 [1] 

MapServer工作流程

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服務器返回給客户端瀏覽器顯示。 [2] 

MapServer

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的內置庫。

MapServer特點

1、先進的地圖輸出發佈功能。包括:圖像比例自動調節;特徵標註(包含標註衝突解決);完全支持定製的模板的輸出,生成個性化界面;支持微軟和APPLE公司共同研製的字型標準TrueType;地圖元素(如比例尺、圖例,參照圖等)自動控制;利用邏輯或正則表達式生成專題地圖。
2、支持當前流行的腳本語言和開發環境:支持:PHP,PerlPythonjavaTclC#等語言;跨系統平台支持:Windows、UNIXLinux等。
3、支持目前流行的絕大多數矢量柵格數據格式:支持的矢量格式:ESRI shapefiles、PostGIS、ESRI的ArcSDE等(通過OGR庫實現);支持的柵格格式:TIFF/GeoTIFF,EPPL7等(通過GDAL庫實現)。對shapefile文件,可以建立四叉樹空間索引。支持分塊的矢量和柵格數據。
4、可以通過URLS動態進行配置;支持動態的投影變換;對OGC若干網絡規範:WMS、WFS、WCS、WMC、SLD、GML和Filter Encoding都有較好的支持。 [3] 
參考資料
  • 1.    胡勝華主編,3S技術研究與應用:廣東RS&GIS學會論文集,廣東省地圖出版社,2007.7
  • 2.    夢華,陳聖波,張棟,劉焱.基於開源MapServer地理信息發佈實現的研究[J].世界地質,2015,(3):848-852
  • 3.    熊靜 張箐. 基於MapServer的遙感影像發佈系統的研究[J].遙感信息,2007(1):54