我正在尝试设置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=/somedit/map24.xml
bbox=-2.0,50.0,2.0,54.0
levels=20
srs=EPSG:4326
projection=+proj=latlong +datum=WGS84
--谢谢A
发布于 2009-11-27 12:54:52
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的参数以查看是否生成了磁贴?
发布于 2009-11-27 12:28:37
查看您的代码,我认为您请求的是东经50度和54度,北纬2度和南纬2度的区域。这是正确的吗?
如果是这样,那么我认为你的界限是错误的。-2度(南)应在底部,2度(北)应在顶部。所以bbox应该是2.0,50.0,-2.0,54.0。
另外,看看OpenStreetMap中的那个区域,看起来似乎没有太多东西,这真的是您想要的吗?
https://stackoverflow.com/questions/1783081
复制相似问题