摘要: TileCache是基于Python的WMS-C,通俗的讲就是为WMS做瓦片地图缓存,从而提高后台服务器的响应速度,而WMS作为OGC着力推广的GIS数据共享接口,因此为WMS接口所做的这些“外围”工作我们也需要认真关注。 目标:基于Apache Mod_Py...
TileCache是基于Python的WMS-C,通俗的讲就是为WMS做瓦片地图缓存,从而提高后台服务器的响应速度,而WMS作为OGC着力推广的GIS数据共享接口,因此为WMS接口所做的这些“外围”工作我们也需要认真关注。
目标:基于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/"AddHandler python-program .py PythonHandler TileCache.Service PythonOption TileCacheConfig D:/Program/OpenSource/tilecache/tilecache-2.04/tilecache.cfg PythonDebug On Allow from all
这里需要注意的是要有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
如果出图,那么就成功了。这里我的Apache使用的端口号是8090,默认一般为80。