您的位置:首页 > 其它

也谈 TileCache 的安装、配置和使用

2009-01-05 12:00 465 查看
为什么叫做也谈呢?无非是因为我也是看过各位牛牛们的分享,然后自己动手实践了一把,在其中体验了很多的“快乐”与“悲伤”,最后决定把这些内心的变化都记录下来,与大家一起分享。

关于TileCache,前人讲了很多了。它是基于Python的WMS-C,通俗的讲就是为WMS做瓦片地图缓存,从而提高后台服务器的响应速度,而WMS作为OGC着力推广的GIS数据共享接口,因此为WMS接口所做的这些“外围”工作我们也需要认真关注。

TileCache的官方网站是http://tilecache.org/,在这里可以下载到最新版本的TileCache。

关于配置,可以参考Fiyingis的博文/article/4743998.html,当然如果你还是个新手,那么看了Flyingis的文章可能也还是配置不成功,ok,我参考了这篇博文,以及TileCache官方的http://tilecache.org/readme.html后做了些配置上的修改,希望以下的配置能够让大家成功部署TileCache。

目标:基于Apache Mod_Python部署和使用TileCache。

1、Windows平台,使用Apache HTTP Server 2.2做Web服务器,同样也要安装Python,这里我用了Python2.5,安装在D:\Program\Python25;

2、由于要使用Apache HTTP Server来启用Python,因此需要为Apache增加一个Module——mod_python,下载地址http://www.modpython.org/,安装后在Apache2\modules目录下生成mod_python.so文件;

3、打开Apache的conf\ httpd.conf文件,在#LoadModule后添加

LoadModule python_module modules/mod_python.so;

4、还是在conf\ httpd.conf文件中,为TileCache添加虚拟路径

Alias /tilecache/ "D:/Program/OpenSource/tilecache/tilecache-2.04/"

<Directory "D:/Program/OpenSource/tilecache/tilecache-2.04/">

AddHandler python-program .py

PythonHandler TileCache.Service

PythonOption TileCacheConfig D:/Program/OpenSource/tilecache/tilecache-2.04/tilecache.cfg

PythonDebug On

Allow from all

</Directory>

这里需要注意的是要有Allow from all,否则没有权限访问;

5、修改TileCache目录下的tilecache.cgi文件为tilecache.py——为了在Apache Mod_Python下应用,然后修改tilecache.cfg中的

[cache]

type=Disk

base=D:/Program/OpenSource/tilecache/tilecache-2.04/tmp

这里的base指向了以后瓦片地图缓存存放的位置;

6、由于在TileCache的源码中还是默认调用了cgi的接口,这里为了彻底摆脱cgi,可以将TileCache目录下的tilecache.py修改为

import urllib2

from TileCache import Service, cgiHandler, cfgfiles, handler

if __name__ == '__main__':

# svc = Service.load(*cfgfiles)

# cgiHandler(svc)

handler(urllib2.Request)

同样service.py也修改为

if __name__ == '__main__':

# svc = Service.load(*cfgfiles)

# cgiHandler(svc)

handler(urllib2.Request)

7、千万别忘了在Python的sys.path中加入TileCache的路径,否则在访问时会报“找不到Module”的错误,切记切记;

8、启动Apache HTTP Server,访问http://localhost:8090/tilecache/tilecache.py?LAYERS=basic&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&SRS=EPSG:4326&BBOX=-180,-90,0,90&WIDTH=256&HEIGHT=256

,如果出图,那么就成功了。同样也可以访问http://localhost:8090/tilecache/index.html来进行验证。这里我的Apache使用的端口号是8090,默认一般为80。

既然部署好了,那么就不妨应用一下。可以使用GeoServer,ArcGIS,SuperMap等做个尝试,这里我用SuperMap的WMS做了一个简单的应用。

1、如果安装了SuperMap IS .NET,就是使用默认的WMS服务来尝试一下,使用的handler为http://localhost/IS/WebServices/wms_world.ashx,启动SuperMap服务先;

2、在TileCache目录下的tilecache.cfg中加入图层缓存的配置

[world]

type=WMS

layers=World

srs=EPSG:4326

url=http://localhost/IS/WebServices/wms_world.ashx

extension=png

3、在TileCache目录下的index.html的脚本内容中做如下修改

layer = new OpenLayers.Layer.WMS("world", "tilecache.py?", {layers: 'world', format: 'image/png'});

//layer = new OpenLayers.Layer.WMS( "VMap0",

// "tilecache.py?", {layers: 'basic', format: 'image/png' } );

4、那么访问http://localhost:8090/tilecache/index.html吧,效果如图



最后想说的是,TileCache有Java版——GeoWebCache,如果更喜欢Java,可以参考它。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: