首页 文章

Openlayers Mapnik Tilecache配置问题

提问于
浏览
1

我正在尝试设置Mapnik tilecache但是当我在Tilecache.cfg和Openlayers中设置bbox参数时无法在浏览器中看到任何图块但是当我没有指定bbox时一切正常并且我可以看到实际的 Map 图块 .

我想知道是否有人可以在代码中指出问题 . 我想我已经尝试了所有东西(以我有限的能力)而不是真正理解为什么它不起作用 . 顺便说一下,所有 Map 图层(用于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

projection = proj = latlong datum = WGS84

  • 谢谢

2 回答

  • 3

    OpenLayers.Bounds构造函数参数的顺序为left,bottom,right top . 采用您正在使用的界限将您的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的参数以查看是否生成了磁贴?

  • 1

    看看你的代码,我想你要的是东边50和54度,北纬2度的区域 . 它是否正确?

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

    另外,看看OpenStreetMap中的那个区域,看起来那里并不多,那真的是你想要的吗?

相关问题