1

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=マップニク

mapfile=/somedit/map24.xml

bbox=-2.0,50.0,2.0,54.0

レベル=20

srs=EPSG:4326

投影=+proj=緯度経度+データム=WGS84

-- ありがとう、A

4

2 に答える 2

3

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-27T04:54:51.540 に答える
1

あなたのコードを見ると、東経 50 度と 54 度、北緯 2 度と南緯 2 度で囲まれた地域を求めていると思います。これは正しいです?

もしそうなら、あなたの境界は間違っていると思います。-2 度 (南) が下、2 度 (北) が上になります。したがって、bbox は である必要があります2.0,50.0,-2.0,54.0

また、OpenStreetMapでその地域を見るとあまりないように見えますが、それは本当に意図したことですか?

于 2009-11-27T04:28:37.067 に答える