使TileCache配合OpenLayers,产生地图瓦块的一些资料Postedon2009-03-1116:48lei3389阅读(362)评论(3)编辑收藏网摘所属分类:GIS如果能让tilecache直接访问缓存中的图片,不再需要wms服务,地图加载速度就会很快,这就需要tilecache切图与openlayers缩放级别相互配合,翻译了一些相关资料,都是来自于官方网站,可能不准确,下面都有英文原文链接。网上相关资料太少了,而且大部分都是英文,特将翻译给中国人共享之。pythontilecache_seed.pybasic67配置Openlayers中的缩放级别OpenLayersMap可以在不同的比例尺或解析度下显示他的每一个layermap对象含有缩放级别的引用,即ZoomLevels,而且允许他的每一个layer去自定义他们自己的缩放级别,使之看起来合适可以通过在构造函数中设置options属性来配置openlayerslayer的缩放级别==正常图层==对于基于openlayers.layer的正常layer,和能够在任何解析度下显示的layer,存在多种不同的方式去配置缩放级别和他们各自的比例尺和解析度“解析度数组”:要是转化缩放级别成为解析度,需要一个{{{resolutions}}}数组,他是这个图层所支持的不同解析度的列表,缩放级别就仅仅是一个解析度数组的索引,解析度数组始于0终于缩放级别-1比如:一个图层的解析度为[a,b,c],那么缩放级别的0就是a,1就是b。。。===配置解析度数组的方式===可选项:{{{scales}}}-''Array''--预先设置比例尺值的数组{{{resolutions}}}-''Array''--预先设置解析度值的数组{{{minScale}}}-''float''--layer能够显示的最小比例尺{{{maxScale}}}-''float''--layer能够显示的最大比例尺{{{maxResolution}}}-''float''--layer能够显示的最大解析度{{{minResolution}}}-''float''--layer能够显示的最小解析度{{{minExtent}}}-''!OpenLayers.Bounds''--layer能显示出的最小范围{{{maxExtent}}}-''!OpenLayers.Bounds''--layer能显示出的最大范围{{{numZoomLevels}}}-''int''--缩放级别的总数{{{units}}}-''String''-layer显示的单位,作用于比例尺-解析度换算ExampleDeclarations:{{{varoptions={scales:[50000000,30000000,10000000,5000000],resolutions:[1.40625,0.703125,0.3515625,0.17578125,0.087890625,0.0439453125],minScale:50000000,maxResolution:"auto",maxExtent:newOpenLayers.Bounds(-180,-90,180,90),maxResolution:0.17578125,maxScale:10000000,minResolution:"auto",minExtent:newOpenLayers.Bounds(-1,-1,1,1),minResolution:0.0439453125,numZoomLevels:5,units:"degrees"};map=newOpenLayers.Map($('map'),options);}}}显然所有的配置项不能在一次设置中全都用上,因为他们可能相互冲突,他们会按照下面的优先级起作用:[A]【预设的缩放级别列表】缩放级别由预先设置的比例尺或解析度决定{{{scales}}}-解析度的数组由这些比例尺直接转化而来{{{resolutions}}}-解析度数组直接从初始化函数的option参数中带来Examples:{{{varoptions={scales:[50000000,30000000,10000000,5000000]};map=newOpenLayers.Map($('map'),options);}}}{{{varoptions={resolutions:[1.40625,0.703125,0.3515625,0.17578125,0.087890625,0.0439453125]};map=newOpenLayers.Map($('map'),options);}}}*'''maxResolutionandnumZoomLevels'''-''!ZoomLevelsaredeterminedbasedonamaximumresolutionandthenumberofdesired!ZoomLevels''[B]【最大解析度&缩放级别的总数】缩放级别在最大解析度和缩放级别的总数上被决定B1最大解析度的确定{{{minScale}}}--解析度的值从比例尺由单位{{{units}}}转化来{{{maxExtent}}}AND{{{maxResolution=="auto"}}}--解析度由地图的div尺寸和maxExtent属性计算而来。若maxExtent属性未指定,默认从map继承,即全世界{{{maxResolution}}}--解析度的值直接从layer的options参数中带来,若没指定,则默认为从map的options中带来B2缩放级别的总数确定B2_a基于最大和最小解析度的比值来计算--确定最小解析度:{{{maxScale}}}--解析度的值从比例尺由单位{{{units}}}转化来{{{minExtent}}}AND{{{minResolution=="auto"}}}--解析度的值基于地图div尺寸和minExtent属...