2009-11-23 6 views
1

Я пытаюсь установить Mapnik + tilecache, но не вижу никаких плит в браузере, когда я устанавливаю параметры bbox как в Tilecache.cfg, так и в Openlayers, но когда я не укажу bbox все отлично работает, и я вижу фактические карты.Проблемы с Openlayers + Mapnik + Tilecache

Мне было интересно, может ли кто-нибудь указать проблему в коде. Я думаю, что я пробовал все (в моих ограниченных возможностях) и не совсем понимаю, почему это не сработает. Кстати, все слои карт (для моделирования картника) получены из базы данных 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

СГД = EPSG: 4326

проекция = + проектируемый = LatLong + датум 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 непосредственно увидеть, если плитка генерируется?