TileCache的总结

TileCache的总结


发布日期: 2015-07-22 更新日期: 2015-07-22 编辑:bukun 浏览次数: 3900

标签:

摘要: geoserver提到的缓存工具共有两个:tilecache和geowebcache。geowebcache是java写的,整合进geoserer中。tilecache则是python写的一个小程序。 tilecache是由MetaCarta Labs开发的用...

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

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

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

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

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

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

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

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

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

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

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

mod_python的一个最主要优点就是在性能上超越传统CGI。mod_python起源于Httpdapy项目(1997)。很久以后Httpdapy才被叫做mod_python,因为Httpdapy并不是特定用于apache服务器的。Httpdapy设计成跨平台的,而实际上主要从Netscape服务器开始(追溯到1997年的Nsapy)。这个Httpdapy的README文件的摘要,很好的阐述了在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中添加


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



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

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

[cache]
type=GoogleDisk #默认是Disk,googledisk是以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? #wms的url
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会覆盖level。bbox和resolutions要根据不同的投影来计算。

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

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

关注公众号
获取免费资源

随机推荐


Copyright © Since 2014. 开源地理空间基金会中文分会 吉ICP备05002032号

Powered by TorCMS

OSGeo 中国中心 邮件列表

问题讨论 : 要订阅或者退订列表,请点击 订阅

发言 : 请写信给: osgeo-china@lists.osgeo.org