Openlayers + Mapnik + проблема конфигурации Tilecache
Я пытаюсь настроить 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:
[Mapnik24]
тип =Mapnik
= файл проект /somedit/map24.xml
BBOX =-2.0,50.0,2.0,54.0
Уровни =20
СГД =EPSG:4326
проекция =+proj= латлонг + датум = WGS84
-- Спасибо
2 ответа
Параметры конструктора 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 напрямую, чтобы увидеть, генерируется ли плитка?
Глядя на ваш код, я думаю, что вы запрашиваете регион, ограниченный 50 и 54 градусами на восток и 2 градусами на север и юг. Это правильно?
Если это так, то я думаю, что ваши границы неправильные. -2 градуса (юг) должны быть внизу, а 2 градуса (север) должны быть вверху. Таким образом, Bbox должен быть 2.0,50.0,-2.0,54.0
,
Кроме того, глядя на этот регион в OpenStreetMap, кажется, что там не так много, это действительно то, что вы намерены?