最近开发了一套基于地图预生成技术的系统,现在把所用到的框架介绍下,算是个工作总结。
MapEasy用来做web表现,响应用户的操作;tilecache是一个地图预生成的工具,里面自带切图的小工具;ArcIms作为WMS(Web Mapping Server)服务端。下面分别介绍。
一、MapEasy
这里对MapEasy的体系结构和用法不做过多的介绍。其虽然是国内的开源工具,但实际上其只是openLayers的一个简化版本。其瓦片的增长方式为 列:this.tileCols = FirstZoomTileCols*Math.pow(2,(this.level - 1));行:this.tileRows = FirstZoomTileRows*Math.pow(2,(this.level - 1));所以我们切图生成的图片必须按照此方式组成。虽然也可以改源代码,但是很麻烦,所以找到一个适合的切图工具最好。ArcgisServer切图的方式不符合要求,起码9.2的很难满足要求。网上其他流传的工具也存在这样那样的问题,最后找到了tilecache,给予他很大的希望,最终其也不负所望。
二、TileCache
很好很强大。其相关介绍这里就不多说了,网上很多
1、ITileCache安装
安装办法。有apache http server和IIS两种安装方式,推荐用IIS的,方便快捷,一看就明白。
http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=33843&highlight=tilecache
这篇文章介绍的很详细,图文并茂,安装绝对没问题,但是切图的时候不要看他的,不太适合自己的要求。
2、IIS安装
在安装IIS的时候SP3可能会由些小问题,如果没有在添加删除组件中没有安装项,去网上查,很多介绍的办法
来解决。安装的时候会弹出些报错的框,不用管,继续按,到最后的时候系统问你有些文件会破坏系统之类的恐吓问题,不要管他,选择保存刚才按装的IIS。然后测试下,看按装好没有。
3、使用tilecache切图
这里的前提是你的WMS服务已经安装好了。下面会介绍。
先来个例子,这个例子是我自己的服务,按照我的要求写的。
[bj]
type=WMSLayer
url=http://songcheng/wmsconnector/com.esri.wms.Esrimap?SERVICENAME=bj
extension=png
size=256,256
layers=0,1,2
bbox=116.007009962,39.692288012,116.734530151,40.0560481065
srs=EPSG:4326
levels=5
#metaTile=yes
#maxResolution=180/256
resolutions=0.001420937869140625,0.0007104689345703125,0.00035523446728515625,0.000177617233642578125,0.0000888086168212890625
关于切图,需要在tilecache.cfg中进行设置。注意以下几点。
(1)、每次在tilecache.cfg中只能保存一个配置可用,否则会报错
(2)、url是你的WMS的服务地址,如果由多个服务在运行,需要指定服务名称。
(3)、bbox很重要的一个设置,关乎到是否能切图成功。他代表你要切图的范围,并且代表你的切图瓦片的增长方式是怎样的。因为我要符合mapeasy的要求,所以,Xmax-Xmin的值应该是Ymax-Ymin的值的两倍,这样就可以基本上保证切出来的图符合要求了。原因是第一级是1行2列,按照像素值来算就是宽是256,长是512。所以你的BBOX范围也应该符合这个框的长宽比例。
(4)、resolutions 其值为Xmax-Xmin/2的n次幂(n为级数)/256。算出来的是在当前级别下每个像素所占的度数。
(5)、切图命令 C:/Inetpub/AdminScripts>python C:/Inetpub/wwwroot/tilecache-2.10/tilecache_seed.py bj 0 5
tilecache_seed。py就是切图工具所在的文件,让python调用这个文件来执行里面的命令
中间会有指定.cfg文件的命令,我在这里没有加,不知道为什么,加上就报错。
bj就是在配置文件中配置好的部分的命令名称,注意,在配置文件中只能有这个一个配置,否则报错
0 5代表要切的级数。
在tilecache的doc文件夹下由相关帮助和例子,英文的,可以去看看。网上也由相关的注释,可以搜下,但是是安装作者本人的理解写的,好好读读,自己动手试试就理解了。
(6)切图后的处理
切完图后,并不是说就马上可以用了,还要经过处理。在指定的文件夹下会生成很多文件夹。按照我这个方式切会多出一级,多出的这一级没有用。
图片命名时也有方式方法
三、wms服务
ArcIms怎么安装就不说了,http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=22097这个是介绍怎么发布WMS服务的,很详细。这里注意,安装ARCIMS的时候选择全部安装,这样就不会缺失文件了。
这里介绍的是我利用一个星期研究出来的一个框架的搭建过程以及需要注意的一些小问题,欢迎讨论。至于利用这个框架怎么开发,以后介绍。