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

          國(guó)際上有兩個(gè)比較流行的開源地圖瓦片緩存服務(wù)器:geowebcache和tilecache。
          geowebcache基于J2EE架構(gòu),具有完整的Web圖形管理界面,支持多進(jìn)程并發(fā)切圖,可以隨時(shí)查看切圖進(jìn)度和剩余時(shí)間,搭配geoserver非常合適。
          titlecache采用python編寫,CGI工作模式,非常小巧,2.11版本只有令人驚訝的68K!(這一點(diǎn)很像MapServer)。
          titlecache采用SHELL或DOS命令行方式運(yùn)行切圖程序,實(shí)時(shí)輸出切圖進(jìn)度信息。
          mapserver選擇titlecache作為地圖切片緩存服務(wù)器,在ms4w_3.0beta10中包含了tilecache插件,由于beta版本存在問題,
          我們?cè)趍s4w_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目錄,新建一個(gè)名為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
          添加一個(gè)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、重新啟動(dòng)Apache
          7、打開tilecache下的index.html文件,根據(jù)實(shí)際情況修改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頁(yè)面上將顯示經(jīng)過tilecache處理的地圖,客戶端瀏覽過的地圖切片文件被保存在tilecache.cfg文件指定的臨時(shí)目錄下,這里是F:/tmp/tilecache目錄,如果其中包含客戶端正在請(qǐng)求的地圖,這些地圖將不再通過MapServer動(dòng)態(tài)生成,而是直接從緩存目錄讀取靜態(tài)圖片文件。對(duì)于大用戶量、高并發(fā)的地圖訪問,瓦片緩存機(jī)制可以非常有效的提高客戶端讀取、顯示地圖的速度。

          通過執(zhí)行tilecache_seed.py腳本,可以手動(dòng)生成地圖切片,下面的命令給road圖層發(fā)布0到6級(jí)的地圖切片文件。
          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) 評(píng)論(5)  編輯  收藏

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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 涟水县| 德兴市| 光山县| 米林县| 视频| 太康县| 天祝| 同江市| 肥城市| 墨玉县| 赞皇县| 广灵县| 上栗县| 宜宾县| 大理市| 龙州县| 伊川县| 江西省| 额济纳旗| 卢湾区| 红安县| 石棉县| 荥阳市| 绍兴县| 玉屏| 平武县| 巨鹿县| 孟州市| 五寨县| 汉阴县| 东乌珠穆沁旗| 郴州市| 同江市| 邓州市| 英吉沙县| 东至县| 黄平县| 子洲县| 奇台县| 石家庄市| 本溪市|