Openlayers + Mapnik + проблема конфигурации Tilecache

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

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

СГД =EPSG:4326

проекция =+proj= латлонг + датум = WGS84

-- Спасибо

2 ответа

Параметры конструктора 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 напрямую, чтобы увидеть, генерируется ли плитка?

Глядя на ваш код, я думаю, что вы запрашиваете регион, ограниченный 50 и 54 градусами на восток и 2 градусами на север и юг. Это правильно?

Если это так, то я думаю, что ваши границы неправильные. -2 градуса (юг) должны быть внизу, а 2 градуса (север) должны быть вверху. Таким образом, Bbox должен быть 2.0,50.0,-2.0,54.0,

Кроме того, глядя на этот регион в OpenStreetMap, кажется, что там не так много, это действительно то, что вы намерены?

Другие вопросы по тегам