首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Openlayers + Mapnik + Tilecache配置问题

Openlayers + Mapnik + Tilecache配置问题
EN

Stack Overflow用户
提问于 2009-11-23 21:18:11
回答 2查看 2.7K关注 0票数 1

我正在尝试设置Mapnik + tilecache,但当我在Tilecache.cfg和Openlayers中设置bbox参数时,在浏览器中看不到任何瓦片,但当我没有指定bbox时,一切都很好,我可以看到实际的地图瓦片。

我想知道是否有人能指出代码中的问题。我想我已经尝试了所有的方法(在我有限的能力范围内),但并不真正理解为什么它不能工作。顺便说一句,所有的地图层(用于Mapnik样式)都来自PostGIS数据库,具有不同的投影,并由mapnik动态转换。

OpenLayers代码:

代码语言:javascript
复制
     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=/somedit/map24.xml

bbox=-2.0,50.0,2.0,54.0

levels=20

srs=EPSG:4326

projection=+proj=latlong +datum=WGS84

--谢谢A

EN

回答 2

Stack Overflow用户

发布于 2009-11-27 12:54:52

OpenLayers.Bounds构造函数参数的顺序是左、下、右、上。使用您正在使用的边界将您的JavaScript更改为:

代码语言: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的参数以查看是否生成了磁贴?

票数 3
EN

Stack Overflow用户

发布于 2009-11-27 12:28:37

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

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

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1783081

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档