2009-11-23 32 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直接的參數堵塞,看看是否產生了瓷磚?