<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 41,  comments - 90,  trackbacks - 0
    MapServer簡介
        在開源WebGIS領域,MapServer的歷史和名氣都超過GeoServer(20世紀90年代中期,由明尼蘇達大學研制),很早就被列入OSGeo項目組。
    與GeoServer不同,MapServer用C語言編寫,采用傳統的CGI架構,融合了Pro4j、GDAL等開源項目。對比J2EE架構的GeoServer,MapServer顯得非常精巧,5.6版本的核心部分只有33KB,源代碼只有2.2M,包括Apache、Php、Pro4j、GDAL、MapScript在內的完整安裝包也只有35M。

    安裝過程
        和Java一樣,C具有良好的跨平臺特性,MapServer支持Windows、Linux、Mac OS X等操作系統。

        官方網站對Unix和Windows平臺下的源代碼安裝步驟給出了詳細說明。根據說明下載需要的第三方庫,然后在Shell命令行模式下編譯源代碼,對于缺少Unix Shell或DOS操作經驗的用戶, 這是一件比較頭疼的事情。好在MapServer已經考慮到不習慣命令行操作的Windows用戶,給出了Windows下的已編譯安裝包ms4w,目前最新版本是3.0beta11。
       
        ms4w的安裝過程很簡單,下載ms4w,解壓縮到硬盤任意目錄(目錄名最好不要包含中文字符),打開命令提示符窗口,切換到ms4w所在目錄,鍵入apache-install即可。(提示:如果機器上安裝有Apache或IIS,運行apache-install之前,請將它們關閉。ms4w安裝后不會和原有的Apache沖突。)

    看到如下信息,說明安裝成功。
    Installing the Apache MS4W Web Server service
    The Apache MS4W Web Server service is successfully installed.
    Testing httpd.conf....
    Errors reported here must be corrected before the service
    can be started.
    The Apache MS4W Web Server service is starting.
    The Apache MS4W Web Server service was started successfully.

    安裝完成后,使用瀏覽器訪問 http://127.0.0.1/cgi-bin/mapserv.exe,MapServer返回如下提示信息
    No query information to decode. QUERY_STRING is set, but empty.

    發布地圖數據
        類似于Arcgis Server和GeoServer,MapServer采用零代碼編寫的配置文件方式管理地圖發布,配置文件被稱為Mapfile,后綴名為map。

        Mapfile有三種編寫方式:
        1、參考官方文檔Mapfile章節,手工編寫
        這種方式要求開發人員對Mapfile的編寫規則非常熟悉,否則很容易出錯。
        2、類似Arcgis Server和GeoServer提供的Web圖形化配置界面,MapServer有一個對應的開源項目MapLab,提供基于Web的圖形化配置界面
        不過個人感覺,MapLab的易用性遠遜于Arcgis Server和GeoServer。
        3、使用開源桌面平臺QGIS,自動生成Mapfile文件
        對于新手,推薦使用第三種方式。

    以下是測試用的Mapfile文件,MapServer對Mapfile文件的存放位置沒有特殊要求,可以存放在不同的計算機上。

    # Mapfile文件必須以MAP開頭
    MAP
    # Map的名字 test
    NAME test
    STATUS ON
    # 地圖大小
    SIZE 800 600
    # Projection definition
    # Projections are not currenlty supported. If desired, add your own # projection information based on Mapserver documentation.
    # Map的坐標系
    PROJECTION "init=epsg:4326"
    END

    # Map的全圖范圍
    EXTENT 75 15 140 55
    # Map的坐標單位 DD表示經緯度
    UNITS DD
    # Map的背景顏色 白色
    IMAGECOLOR 255 255 255
    # 生成的圖片類型,常用gif或png
    IMAGETYPE gif
    # shp文件的路徑,請使用絕對路徑
    SHAPEPATH "I://cn_data"
    #
    # Start of web interface definition. Only the TEMPLATE parameter # must be specified to display a map. See Mapserver documentation
    # MapServer內置了地圖客戶端功能,此處是Web客戶端相關設置。
    # 由于我們使用Openlayers作為地圖客戶端,MapServer做為地圖服務器,此處不做設置
    WEB
    # HEADER
    # TEMPLATE
    # FOOTER
    # 最小、最大比例尺等級
    MINSCALE 1
    MAXSCALE 13
    # 設置IMAGEPATH,默認路徑如下,請使用絕對路徑
    IMAGEPATH 'I:/ms4w/Apache/htdocs/tmp'
    # 設置IMAGEURL,默認路徑如下
    IMAGEURL '/tmp/'
    END
    # 設置圖層,一個Map下可以包含多個LAYER
    LAYER NAME polyline  # 圖層名稱,MapServer使用該名稱
    TYPE LINE # 幾何類型
    STATUS ON
    DATA "roa_4m" # shp文件名,不需要帶擴展名,路徑在前面的SHAPEPATH項中指定
    CLASS NAME "roa_4m" # 類名
    # TEMPLATE
    COLOR 112 0 0 # 顏色
    END
    END
    END # Map File

    客戶端測試
        接下來測試剛才建立的Mapfile,在瀏覽器地址欄中輸入 http://127.0.0.1/cgi-bin/mapserv.exe?LAYERS=polyline&MAP=I:/ms4w/Apache/htdocs/my.map&FORMAT=gif&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&STYLES=&EXCEPTIONS=application%2Fvnd.ogc.se_inimage&SRS=EPSG%3A4326&BBOX=75,15,140,55&WIDTH=800&HEIGHT=600
    大約0.5秒后(初次加載),瀏覽器顯示出中國1:400萬道路網,地圖發布成功! 熟悉OGC標準的朋友可能已經發現,上面的URL是WMS地圖請求。

    直接通過CGI請求,得到的是一幅靜態地圖,為了實現地圖的縮放、漫游,我們選用Openlayers地圖客戶端。 通過OpenLayers.Layer.WMS可以直接調用MapServer地圖服務,測試代碼如下:
    var ms_layer = new OpenLayers.Layer.WMS(
       "polyline", //OpenLayers中的圖層名
       "/cgi-bin/mapserv.exe", //MapServer地圖服務器的路徑
       { layers: 'polyline', //Mapfile中定義的圖層名
         map: 'I:/cn_data/my.map', //Mapfile文件的絕對路徑,注意必須使用'/'而不是'\',使用相對路徑無法顯示地圖
         format: 'gif' },
       { reproject: false,
         'numZoomLevels': 20,
         gutter: 15,
         buffer: 0 }
    );

    滾動鼠標滾輪,地圖的刷新速度保持在0.5秒以內。MapServer繼承了C語言的特點,地圖渲染效率很高。

    寫在最后
        MapServer提供兩種工作方式,CGI方式(適用于CGI、AJAX、FLEX開發人員)和MapScript方式(適用于Php、Java、C#、Python開發人員)。以原生CGI方式效率最高,配合TileCache,可以快速生成大范圍的地圖瓦片數據。比較基于.Net和J2EE的商業或開源平臺,MapServer更適合高負荷的大型互聯網地圖應用。

    posted on 2010-11-24 17:39 天狼 閱讀(6706) 評論(5)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 免费在线视频一区| 免费人成在线观看网站品爱网日本| 国产亚洲精品福利在线无卡一| 精品在线观看免费| 亚洲黄黄黄网站在线观看| 黄色一级视频免费观看| 亚洲熟伦熟女新五十路熟妇| 一区二区三区免费在线视频 | 亚洲精品天堂成人片?V在线播放| 亚洲国产精品精华液| 免费观看日本污污ww网站一区| 亚洲AV香蕉一区区二区三区| 国产在线98福利播放视频免费| 无码毛片一区二区三区视频免费播放| 亚洲成a人片在线观看日本麻豆| v片免费在线观看| 亚洲桃色AV无码| 中文字幕天天躁日日躁狠狠躁免费| 99久久精品国产亚洲| 一个人免费高清在线观看| 国产亚洲精品美女| 亚洲色中文字幕无码AV| 222www免费视频| 亚洲AV无码一区二区三区久久精品| 午夜亚洲av永久无码精品| 国产免费一区二区三区在线观看| 99人中文字幕亚洲区| 精品剧情v国产在免费线观看| 一级毛片免费不卡| 亚洲国产人成在线观看| 日本免费一区二区三区最新vr| 一本一道dvd在线观看免费视频| 亚洲一区二区三区高清| 免费看大黄高清网站视频在线| 国产精品高清免费网站| 亚洲国产成人手机在线电影bd| 免费不卡中文字幕在线| 97av免费视频| 国产精品免费看久久久香蕉| 亚洲一区二区影视| 色噜噜亚洲精品中文字幕 |