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

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

          1、從tilecache官方網站下載安裝包tilecache-2.11.tar.gz,該安裝包適用于所有操作系統,我們使用Windows XP。
          2、解壓安裝包,將其中的tilecache-2.11目錄整體復制到ms4w的apps目錄下。
          3、進入ms4w的http.d目錄,新建一個名為httpd_tilecache.conf的文本文件,內容如下:
          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、進入ms4w/apps/tilecache-2.11目錄,打開tilecache.cgi文件,修改第一行的python編譯器路徑,例如
          #!E:\Python25\python.exe
          5、打開該目錄下的tilecache.cfg文件,修改cache標簽,指定本地磁盤緩存目錄,例如
          [cache]
          type=Disk
          base=F:/tmp/tilecache
          添加一個road標簽,指定地圖服務類型,服務地址,mapfile文件路徑,圖層名稱,柵格格式,空間參考系統編碼,例如
          [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文件,根據實際情況修改openlayers.js的路徑,例如
          <script src="/openlayers/OpenLayers.js"></script>
          修改layer參數,例如
          layer = new OpenLayers.Layer.WMS( "road", "tilecache.cgi?", {layers: 'road', format: 'image/png' } );

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

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


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

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


          網站導航:
           
          主站蜘蛛池模板: 达拉特旗| 永济市| 和平县| 万山特区| 阿合奇县| 安义县| 宝鸡市| 峨山| 黄平县| 大兴区| 霍林郭勒市| 灵石县| 东源县| 瓮安县| 南川市| 上思县| 万盛区| 青岛市| 高邮市| 峨山| 白玉县| 镇平县| 扎赉特旗| 平山县| 洪雅县| 三明市| 杭锦后旗| 洱源县| 利津县| 深水埗区| 桂东县| 深泽县| 兴国县| 牟定县| 南投县| 湾仔区| 本溪市| 临安市| 高唐县| 南郑县| 秦皇岛市|