TileCache配置小结

这周的主要任务就是配置Tilecache,还好在网上查了一下,中文的配置文档还不少,总算可以放宽心了,不像上个月配的ArcGIS系列的那些个东东(公司用的是9.3版的,好多都没有相应的配置文档,整整让我郁闷了半个月,还好最后差不多搞定),头儿上周已经跟我说过我现在配的这个TileCache还是相对来说容易配的。而且公司其它部门好像也见到过有人在用这个东西,就算网上查不到所需要的东西也可以问问他们啊,最省事不过了。

最开始我还是先在网上查,找了不少相关的配置文档,不过天下文章一大抄这话确实不假,这些文档大都大同小异,下面我把我这一周配置TileCache所收集的资料做一总结,以便日后查询。

geoserver提到的缓存工具共有两个:tilecachegeowebcachegeowebcachejava写的,整合进geoserer中。tilecache则是python写的一个小程序。

tilecache是由MetaCarta Labs开发的用来缓存地图,配合openlayers使地图显示更快。可以把tilecache想成一个中间件,WMS服务器不用自己缓存地图,tilecache可以帮他完成。tilecache支持多种服务器和多种OGC服务标准,以及支持多种请求方式和格式。

TileCache源自FOSS4G 2006大会上的一个决议,即后来OGC的一个推荐标准WMS Tiling Client Recommendation。所谓TileCache就是由于普通的WMS服务器在接收请求后要读取数据、生成图片,效率过低。那么对于那些一成不变的 地图服务,可以在WMS前端封装一个TMSTiled Map Service)。TileCache首先缓存一些WMS地图图片,提供一个伪WMS,仅在适当的时候和后台的WMS服务器交互。这个标准的实现是由OpenLayers的后台MetaCarta提供的,名字就叫做TileCacheTileCache以今年最流行的Python实现,可以通过cgi方式部署和运行在ApacheIIS以及PythonWSGI上。

我所选用的是Apache Http Server 2.2来作为Web服务器,用ArcGIS Server来发布WMS服务,用OpenLayers来作客户端的地图显示。

首先,Apache Http Server 2.2的安装就不用再赘逑了。

由于tilecachePython写的一个小程序,所以首先需要安装Python解释器,然后什么是Python,它为什么要叫做Python呢?

Python的创始人为Guido van Rossum1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,做为ABC语言的一种继承。之所以选中Python(大蟒蛇的意思)作为程序的名字,是因为他是一个Monty 大蟒蛇飞行马戏团的爱好者。

Perl 一样, Python 也是一种解释语言,它完全采用面向对象的方式,语言结构介于 C 语言和 Perl 语言之间。虽然它被视作一种高极语言,但它的内置解释器的功能却非常基本,仅有几种功能、操作符和关键词便构成了整个程序语言。它的优势可不仅如此,它还 能通过一系列的模块进行扩充。它既比 Perl VB 语句更快更好,又比 C C++ 语言更有扩充性。

在安装ARCGISDesktop时,会自动安装Python ,如果没有安装,可以在ARCGISDesktop 安装盘的Desktop/Python目录下找到一个2.4的版本。或者去http://www.python.org/下载一个新版本的。我用的是2.4的。

安装完毕后,要在环境变量的“系统变量中的“Path”,在变量值中添加Python的安装目录。

<?xml:namespace prefix = o ns = “urn:schemas-microsoft-com:office:office” />

 

安装mod_python-3.3.1.win32-py2.4-Apache2.2.exe,安装完成后会在Apache2/modules目录下生成mod_python.so文件。

mod_python的一个最主要优点就是在性能上超越传统CGImod_python起源于Httpdapy项目(1997)。很久以后Httpdapy才被叫做mod_python,因为Httpdapy并不是特定用于apache服务器的。Httpdapy设计成跨平台的,而实际上主要从Netscape服务器开始(追溯到1997年的Nsapy)。这个HttpdapyREADME文件的摘要,很好的阐述了在HTTP server中嵌入Python所带来的挑战和解决方案。

最后,配置TileCache,只需将tilecache解压至Apache2/htdocs目录下即可,然后修改titlecache.cgi文件,将第一行修改为 #!C:/Python24/python.exe –u,其中的C:/Python24/python.exe。再将这个文件更名为itlecache.py

 

软件的安装基本上已经完成了,剩下的就是配置文件的修改与设置了:

配置apache

httpd.conf中加入启动mod_python的句子: LoadModule python_module modules/mod_python.so

       tilecache 目录设置:

       httpd.conf中添加

<Directory “D:/ms4w/Apache/htdocs/tilecache”>
AddHandler python-program .py
PythonHandler TileCache.Service
PythonOption TileCacheConfig “D:/ms4w/Apache/htdocs/tilecache/tilecache.cfg”
PythonPath “[‘D:/ms4w/Apache/htdocs/tilecache’] + sys.path”
PythonDebug On


Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all

</Directory>

AddHandler cgi-script .cgi .pl
AddHandler mod_python .py

 

       修改TileCache目录下的tilecache.cfg文件,这是个配置文件,当有用户请求时,tilecache会载入这个文件,现将部分内容修改为:

[cache]
type=GoogleDisk
#默认是Diskgoogledisk是以z/x/y.extension的方式存储

base=D:/Program Files/Apache2.2/htdocs/tilecache/cache/
#缓存的路径

[basic] #图层的名称
type=WMSLayer

url=http://127.0.0.1:8399/arcgis/services/mywmsmap/MapServer/WMSServer?
wmsurl
layers=topp:states
wms所拥有的图层
extension=png
resolutions=156543.033900000,78271.516950000,39135.758475000,19567.879237500,9783.939618750,4891.969809375,2445.984904688,1222.992452344,611.496226172,305.748113086,152.874056543,76.437028271,38.218514136,19.109257068,9.554628534,4.777314267,2.388657133,1.194328567,0.59716428337097171575,0.298582142
#划分比例尺
srs=EPSG:4326
#投影模式
bbox=-420103.879475, 252938.165464, 597869.960825, 432529.265417
#显示的范围
size=256,256

level=20

 

如果不使用resolutions,也可以用maxResolution设定最大的比例尺,系统会根据level自动声称resolutions,但如果同 时设置,resolutions会覆盖levelbboxresolutions要根据不同的投影来计算。

 

 

接下来就用openlayers来显示,创建一个map,在optionresolutionsbbox都要和配置文件中的相同。OpenLayers里有现在样例,这里就不再列出代码了。

也可以用以下链接进行测试访问:http://localhost/tilecache/tilecache.cgi?LAYERS=basic&FORMAT=image%2Fpng&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&STYLES=&EXCEPTIONS=application%2Fvnd.ogc.se_inimage&SRS=EPSG%3A4326&BBOX=90,0,180,90&WIDTH=256&HEIGHT=256

注意这里的basic要和tilecache.cfg文件中所设置的图层名称[basic]一致。

转载自:https://blog.csdn.net/yinianshen/article/details/3300674

You may also like...