为了加快地图的显示速度,通过tilecache将瓦片保存为图片,下次直接就可以加载图片。
tilecache的环境搭建:
下载地址:http://tilecache.org/(最新的版本为2.11)。
下载解压完之后,将目录tilecache-2.11copy到之前搭建好的mapserver环境下面(For Example:C:\ms4w\apps)。
Python2.5下载:
下载地址:http://www.python.org/getit/(可下载最新的版本,没有测试),下载完成之后一路安装就ok了。
由于要使用Apache HTTP Server来启用Python,因此需要为Apache增加一个Module——mod_python(example:mod_python-3.3.1.win32-py2.5-Apache2.2)注意pytho和appache的版本和你安装的要一致。
下载地址:http://www.modpython.org/。下载完成之后直接进行安装,安装好之后,打开Apache的conf\ httpd.conf文件,在#LoadModule后添加
LoadModule python_module modules/mod_python.so;
在Apache的httpd.conf文件中增加如下配置:
Alias /tilecache/ "C:/ms4w/apps/tilecache-2.11/" <Directory "C:/ms4w/apps/tilecache-2.11/"> AddHandler mod_python .py AddHandler python-program .py PythonHandler TileCache.Service PythonOption TileCacheConfig C:/ms4w/apps/tilecache-2.11/tilecache.cfg PythonDebug On PythonPath "['C:/ms4w/apps/tilecache-2.11/']+sys.path" Allow from all </Directory>
接下来进行tilecache的配置:
在tilecache目录下面找到tilecache.cgi文件,将第一行修改为:#!C:/Python25/python.exe -u(也就是python的安装路径),修改之后将该文件重命名为tilecache.py。
在tilecache目录下面找到tilecache.cfg文件,找到“[cache] type=Disk base=”(缓存图片保存路径),将base设置为你放置图片的目录。
增加你的图层:
[bound] type=WMS url=http://localhost:8085/cgi-bin/mapserv.exe?MAP=D:/tmp/GisDemo/GisDemo/Content/map/OpenscalesDemo.map layers=bound,road extension=png
至此位置tilecache的配置到此位置。
环境变量和注册表的配置:
在HKEY_LOCAL_MACHINE节点下(PythonPath的节点增加C:\ms4w\apps\tilecache-2.11\),当然如果地图没有问题就不用修改注册表。
经过以上的步骤,重启一下apache。
在浏览器中输入如下地址:
出现如图的效果,说明环境搭建成功(当然也可以测试自己建议的图层,本文例子中的bound):
tilecache环境搭建好之后,我们在openscales中修改一下引用的地址即可,参见如下代码:
<os:WMSC name="bound" url="http://localhost:8085/tilecache/tilecache.py" layers="bound" format="image/jpeg" transparent ="false" resolutions="0.703125, 0.3515625, 0.17578125, 0.087890625, 0.0439453125, 0.02197265625, 0.010986328125, 0.0054931640625, 0.00274658203125, 0.001373291015625, 0.0006866455078125, 0.00034332275390625, 0.000171661376953125, 8.58306884765625e-005, 4.291534423828125e-005, 2.1457672119140625e-005, 1.0728836059570313e-005, 5.3644180297851563e-006, 2.6822090148925781e-006, 1.3411045074462891e-006" />
至此,我们在openscales中可以使用缓存的瓦片数据,提高地图加载的速度。