posts - 41,  comments - 90,  trackbacks - 0
          為MapServer添加瓦片緩存服務(wù)

          國際上有兩個比較流行的開源地圖瓦片緩存服務(wù)器:geowebcache和tilecache。
          geowebcache基于J2EE架構(gòu),具有完整的Web圖形管理界面,支持多進(jìn)程并發(fā)切圖,可以隨時查看切圖進(jìn)度和剩余時間,搭配geoserver非常合適。
          titlecache采用python編寫,CGI工作模式,非常小巧,2.11版本只有令人驚訝的68K!(這一點很像MapServer)。
          titlecache采用SHELL或DOS命令行方式運行切圖程序,實時輸出切圖進(jìn)度信息。
          mapserver選擇titlecache作為地圖切片緩存服務(wù)器,在ms4w_3.0beta10中包含了tilecache插件,由于beta版本存在問題,
          我們在ms4w_2.3.1正式版中手工加入tilecache服務(wù)器,具體步驟如下:

          1、從tilecache官方網(wǎng)站下載安裝包tilecache-2.11.tar.gz,該安裝包適用于所有操作系統(tǒng),我們使用Windows XP。
          2、解壓安裝包,將其中的tilecache-2.11目錄整體復(fù)制到ms4w的apps目錄下。
          3、進(jìn)入ms4w的http.d目錄,新建一個名為httpd_tilecache.conf的文本文件,內(nèi)容如下:
          Alias /tilecache/ "/ms4w/apps/tilecache-2.11/"
          <Directory "/ms4w/apps/tilecache-2.11/">
            AllowOverride None
            Options ExecCGI
            Order allow,deny
            Allow from all
          </Directory>
          addHandler cgi-script .cgi .py
          4、進(jìn)入ms4w/apps/tilecache-2.11目錄,打開tilecache.cgi文件,修改第一行的python編譯器路徑,例如
          #!E:\Python25\python.exe
          5、打開該目錄下的tilecache.cfg文件,修改cache標(biāo)簽,指定本地磁盤緩存目錄,例如
          [cache]
          type=Disk
          base=F:/tmp/tilecache
          添加一個road標(biāo)簽,指定地圖服務(wù)類型,服務(wù)地址,mapfile文件路徑,圖層名稱,柵格格式,空間參考系統(tǒng)編碼,例如
          [road]
          type=WMS
          url=http://127.0.0.1/cgi-bin/mapserv.exe?map=I:/cn_data/c2.map&transparent=true&
          layers=road
          extension=png
          srs=EPSG:4326
          6、重新啟動Apache
          7、打開tilecache下的index.html文件,根據(jù)實際情況修改openlayers.js的路徑,例如
          <script src="/openlayers/OpenLayers.js"></script>
          修改layer參數(shù),例如
          layer = new OpenLayers.Layer.WMS( "road", "tilecache.cgi?", {layers: 'road', format: 'image/png' } );

          使用瀏覽器訪問http://127.0.0.1/tilecache,Web頁面上將顯示經(jīng)過tilecache處理的地圖,客戶端瀏覽過的地圖切片文件被保存在tilecache.cfg文件指定的臨時目錄下,這里是F:/tmp/tilecache目錄,如果其中包含客戶端正在請求的地圖,這些地圖將不再通過MapServer動態(tài)生成,而是直接從緩存目錄讀取靜態(tài)圖片文件。對于大用戶量、高并發(fā)的地圖訪問,瓦片緩存機(jī)制可以非常有效的提高客戶端讀取、顯示地圖的速度。

          通過執(zhí)行tilecache_seed.py腳本,可以手動生成地圖切片,下面的命令給road圖層發(fā)布0到6級的地圖切片文件。
          python "F:\ms4w\apps\tilecache-2.11\tilecache_seed.py" road 0 6
          等待執(zhí)行完畢,進(jìn)入緩存目錄可以找到剛才發(fā)布的地圖切片文件。


          posted on 2010-11-26 15:45 天狼 閱讀(3283) 評論(5)  編輯  收藏

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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 合水县| 子洲县| 突泉县| 庆安县| 通化市| 威信县| 磐安县| 昌江| 东阳市| 芜湖县| 清新县| 理塘县| 馆陶县| 富锦市| 滁州市| 闽侯县| 顺昌县| 长丰县| 文登市| 诸城市| 嵊泗县| 新巴尔虎左旗| 巫山县| 隆尧县| 和硕县| 郴州市| 浮山县| 沙雅县| 桑植县| 和林格尔县| 灵寿县| 平利县| 太谷县| 南充市| 博野县| 望江县| 孟津县| 贵州省| 镇坪县| 达拉特旗| 永兴县|