【问题标题】:Openlayers + Mapnik + Tilecache configuration problemOpenlayers + Mapnik + Tilecache 配置问题
【发布时间】:2009-11-23 13:18:11
【问题描述】:

我正在尝试设置 Mapnik + tilecache,但是当我在 Tilecache.cfg 和 Openlayers 中设置 bbox 参数时,在浏览器中看不到任何图块,但是当我没有指定 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]

type=Mapnik

mapfile=/someedit/map24.xml

bbox=-2.0,50.0,2.0,54.0

级别=20

srs=EPSG:4326

projection=+proj=latlong +datum=WGS84

-- 谢谢, 一个

【问题讨论】:

    标签: python maps openlayers proj4js tilecache


    【解决方案1】:

    OpenLayers.Bounds 构造函数参数的顺序是左、下、右上。将您使用的范围更改为:

                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的参数,看看是否生成了一个tile?

    【讨论】:

      【解决方案2】:

      查看您的代码,我认为您要求的是以东 50 度和 54 度以及南北 2 度为界的区域。这是正确的吗?

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

      另外,看看OpenStreetMap 中的那个区域,那里似乎没有太多东西,这真的是你想要的吗?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-09-01
        • 1970-01-01
        • 1970-01-01
        • 2011-01-04
        • 2023-01-19
        • 2012-03-18
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多