我正在尝试设置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]
型= Mapnik的
映射文件= / somedit / map24.xml
BBOX = -2.0,50.0,2.0,54.0
水平= 20
SRS = EPSG:4326
投影= + proj = latlong + datum = WGS84
- 谢谢, 甲
答案 0 :(得分: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 :(得分:1)
看看你的代码,我想你要的是东边50和54度,北纬2度的区域。这是对的吗?
如果是,那么我认为你的界限是错误的。 -2度(南)应位于底部,2度(北)应位于顶部。所以bbox应该是2.0,50.0,-2.0,54.0
。
另外,在OpenStreetMap中查看该区域,看起来那里并不多,那真的是你想要的吗?