Openlayers+Mapnik+Tilecache配置问题

2024-06-07 18:52:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试设置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公司名称:

[马普尼克24]

类型=Mapnik

mapfile=/somedit/map24.xml

bbox=-2.0,50.0,2.0,54.0

级别=20

安全气囊=爱普生:4326在

投影=+项目=拉特朗+基准=WGS84

在-- 谢谢, A


Tags: 代码layermapnewvar浏览器cfgcontrol
1条回答
网友
1楼 · 发布于 2024-06-07 18:52:04

在开放层。边界构造函数参数按左、下、右上的顺序排列。将您正在使用的边界更改为:

            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直接查看是否生成了平铺?在

网友
2楼 · 发布于 2024-06-07 18:52:04

看看你的代码,我想你要的是东经50度和54度,南北2度的区域。这是对的吗?在

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

另外,看一下OpenStreetMap中的那个区域,看起来没有多少,这真的是你想要的吗?在

相关问题 更多 >

    热门问题