3

これまで 2 週間半、サーバー上で実行されている OpenStreetMap のローカル コピーを取得しようと試みてきました。惑星ファイルをダウンロードし、'osm' という PostGIS データベースにインポートしました。OSM Mapnik ツールを使用して、Mapnik で使用する XML スタイルシートを生成しました。Mapnik がデータベースから OSM タイルをレンダリングできることを証明するために TileLite を使用しました。タイルは、私が望むように見えます。

私の問題は、TileCache を Mapnik で動作させることができないことです。シェープファイルを提供するために使用している MapServer インスタンスがインストールされています。これは TileCache で動作します。TileCache 構成ファイルのデフォルトの「basic」レイヤーも同様に機能します。私のOSMレイヤーを手伝ってください:

[osm]
type=Mapnik
mapfile=/var/maps/bin/mapnik/osm.xml
spherical_mercator=true
bbox=-16697000,8610000,-16667000,8640000
maxResolution=156543.0339/4
levels=18
srs=EPSG:900913

見つけた最後のブログ投稿、フォーラム投稿、およびチュートリアルをすべて読みました。どんな助けでも大歓迎です。私は何かを見逃したか、何か愚かなことをしていると思います。

4

1 に答える 1

4

ニック、

ここで潜在的な問題が発生する可能性があること、およびあなたが多くのことを試したことは理解できます。ただし、遭遇した正確な問題については言及していないので、これがあなたの問題であると推測します。

  • OpenLayers を使用して、タイルが正しく生成されていることをテストしていますが、TileCache によって生成されたタイルに接続すると、うまくいきません。

そのこと?そうでない場合は、もう少し詳細を提供してください。

それが問題である場合は、OpenLayers で「TMS」レイヤー タイプを使用し、それを TileCache.cfg レイヤー パラメータと一致させる必要があります。「TMS」は、y 値が反転することを除いて、OSM タイル スキームに非常に似ています。

とにかく、このようなものはうまくいくはずです:

tilecache.cfg

[オスム]
type=マップニク
mapfile=/full/path/to/osm.xml
球面メルカトル = true

OpenLayers レイヤー

var tms = new OpenLayers.Layer.TMS("TileCache TMS レイヤー","http://localhost:8000/",
                { serviceVersion: "1.0.0", layername: "osm", type: "png" });
map.addLayers([tms]);

これを初めて機能させたときから、私の古い例からこれを引き出しました:http://mapnik-utils.googlecode.com/svn/example_code/tilecache/openlayers_osm.html

于 2011-05-24T15:34:53.223 に答える