<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簡(jiǎn)介
        在開(kāi)源WebGIS領(lǐng)域,MapServer的歷史和名氣都超過(guò)GeoServer(20世紀(jì)90年代中期,由明尼蘇達(dá)大學(xué)研制),很早就被列入OSGeo項(xiàng)目組。
    與GeoServer不同,MapServer用C語(yǔ)言編寫(xiě),采用傳統(tǒng)的CGI架構(gòu),融合了Pro4j、GDAL等開(kāi)源項(xiàng)目。對(duì)比J2EE架構(gòu)的GeoServer,MapServer顯得非常精巧,5.6版本的核心部分只有33KB,源代碼只有2.2M,包括Apache、Php、Pro4j、GDAL、MapScript在內(nèi)的完整安裝包也只有35M。

    安裝過(guò)程
        和Java一樣,C具有良好的跨平臺(tái)特性,MapServer支持Windows、Linux、Mac OS X等操作系統(tǒng)。

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

    看到如下信息,說(shuō)明安裝成功。
    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.

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

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

        Mapfile有三種編寫(xiě)方式:
        1、參考官方文檔Mapfile章節(jié),手工編寫(xiě)
        這種方式要求開(kāi)發(fā)人員對(duì)Mapfile的編寫(xiě)規(guī)則非常熟悉,否則很容易出錯(cuò)。
        2、類似Arcgis Server和GeoServer提供的Web圖形化配置界面,MapServer有一個(gè)對(duì)應(yīng)的開(kāi)源項(xiàng)目MapLab,提供基于Web的圖形化配置界面
        不過(guò)個(gè)人感覺(jué),MapLab的易用性遠(yuǎn)遜于Arcgis Server和GeoServer。
        3、使用開(kāi)源桌面平臺(tái)QGIS,自動(dòng)生成Mapfile文件
        對(duì)于新手,推薦使用第三種方式。

    以下是測(cè)試用的Mapfile文件,MapServer對(duì)Mapfile文件的存放位置沒(méi)有特殊要求,可以存放在不同的計(jì)算機(jī)上。

    # Mapfile文件必須以MAP開(kāi)頭
    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的坐標(biāo)系
    PROJECTION "init=epsg:4326"
    END

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

    客戶端測(cè)試
        接下來(lái)測(cè)試剛才建立的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秒后(初次加載),瀏覽器顯示出中國(guó)1:400萬(wàn)道路網(wǎng),地圖發(fā)布成功! 熟悉OGC標(biāo)準(zhǔn)的朋友可能已經(jīng)發(fā)現(xiàn),上面的URL是WMS地圖請(qǐng)求。

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

    滾動(dòng)鼠標(biāo)滾輪,地圖的刷新速度保持在0.5秒以內(nèi)。MapServer繼承了C語(yǔ)言的特點(diǎn),地圖渲染效率很高。

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

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

    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 国语成本人片免费av无码| 精品无码专区亚洲| 中文字幕免费观看全部电影| 国内精品免费视频精选在线观看| 国产精品久久香蕉免费播放| 卡一卡二卡三在线入口免费| 国产成人免费爽爽爽视频| 亚洲国产日韩在线人成下载| 亚洲人成在线精品| 免费观看无遮挡www的小视频| 亚洲色图国产精品| 97在线视频免费| 国产三级电影免费观看| 亚洲Av永久无码精品黑人| 国产免费变态视频网址网站 | 亚洲欧洲自拍拍偷精品 美利坚 | 无码AV片在线观看免费| 久久亚洲精品成人av无码网站| 中国china体内裑精亚洲日本| 人人鲁免费播放视频人人香蕉| 亚洲国产成人久久笫一页| 亚洲字幕在线观看| 午夜免费福利网站| 免费在线观看亚洲| a毛片基地免费全部视频| 在线观看亚洲AV日韩AV| 久久精品乱子伦免费| 亚洲一区二区三区偷拍女厕| 亚洲精品无码一区二区| 麻豆一区二区免费播放网站| 久久精品国产亚洲AV| 亚洲精品卡2卡3卡4卡5卡区| 国产成人精品免费视频网页大全| 亚洲丶国产丶欧美一区二区三区 | 亚洲国产成人精品激情| 国产成人免费a在线视频app| 三年片免费观看大全国语| 亚洲国产人成在线观看| 亚洲国产成人VA在线观看| 麻豆视频免费播放| 一级毛片免费一级直接观看|