2009-11-23 30 views
1

我试图设置Mapnik + tilecache,但无法在浏览器中看到任何图块,当我在Tilecache.cfg和Openlayers中设置bbox参数,但是当我没有指定bbox时,工作正常,我可以看到实际的地图砖。Openlayers + Mapnik + Tilecache配置问题

我想知道是否有人可以指出代码中的问题。我想我已经尝试了一切(以我有限的能力),而不是真正理解为什么它不起作用。顺便说一下,所有地图图层(用于mapnik造型)都来源于PostGIS数据库,并具有不同的投影并由Mapnik实时转换。

的OpenLayers代码:

 var map, layer; 

    function init(){ 
     var map, layer; 

      var options =  { 
        numZoomLevels:20, 
        maxResolution: 360/512, 
        projection: "EPSG:4326", 
        maxExtent: new OpenLayers.Bounds(-2.0,50.0,2.0,54.0) 
        //not working when uncommented 
       }; 

     map = new OpenLayers.Map('map', options); 
     layer = new OpenLayers.Layer.WMS("Map24","tilecache.py?", 
            { 
             layers:'mapnik24', 
             format: 'image/png', 
             srs: 'EPSG:4326' 
            }); 
     map.addLayer(layer); 
     map.addControl(new OpenLayers.Control.PanZoomBar()); 
     map.addControl(new OpenLayers.Control.MousePosition()); 
     map.addControl(new OpenLayers.Control.LayerSwitcher()); 
     map.addControl(new OpenLayers.Control.Permalink("permalink")); 

     if (!map.getCenter()) map.zoomToMaxExtent(); 
    } 

Tilecache.cfg:

[mapnik24]

类型= Mapnik的

映射文件=/somedit/map24.xml

BBOX = -2.0,50.0,2.0,54.0

水平= 20个

SRS = EPSG:4326

投影= +凸出=经纬度+基准= WGS84

- 谢谢, 一个

回答

1

在你的代码的样子,我想你正在要求东部50和54度以及南北2度范围内的区域。它是否正确?

如果是,那么我认为你的界限是错误的。 -2度(南)应位于底部,2度(北)应位于顶部。所以bbox应该是2.0,50.0,-2.0,54.0

另外,在OpenStreetMap看这个地区看起来没有那么多,这是你真正想要的吗?

3

OpenLayers.Bounds构造函数参数的顺序是左,右,右上方。以您使用的是改变你的JavaScript是界限:

  var options =  { 
       numZoomLevels:20, 
       maxResolution: 360/512, 
       projection: "EPSG:4326", 
       maxExtent: new OpenLayers.Bounds(50.0,-2.0,54.0,2.0) 
       //not working when uncommented 
      }; 

您是否尝试过在tilecache.py直接的参数堵塞,看看是否产生了瓷砖?