• MapServer使用笔记(二)


    转自:http://blog.csdn.net/iwillsw/article/details/6037643

    为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
    等待执行完毕,进入缓存目录可以找到刚才发布的地图切片文件。

  • 相关阅读:
    review01
    在win+r中常用的命令
    shutdown命令
    XML解析,出现ClassCastException 原因
    XML解析,出现ClassCastException 原因
    韩顺平循序渐进学JAVA从入门到精通 视频全套,需要的联系我
    韩顺平循序渐进学JAVA从入门到精通 视频全套,需要的联系我
    线程池,以后有时间看
    线程池,以后有时间看
    利用线程分离发送和接受,这样每个客服端都可以分离
  • 原文地址:https://www.cnblogs.com/LCGIS/p/3110195.html
Copyright © 2020-2023  润新知