OSM,TileCache和Mapnik

时间:2011-05-24 14:54:45

标签: mapping openstreetmap mapnik

到目前为止,我已经尝试了两周半的时间来获取在服务器上运行的OpenStreetMap的本地副本。我已经下载了行星文件并将其导入到名为“osm”的PostGIS数据库中。我使用OSM Mapnik工具生成Mapnik使用的XML样式表。我使用TileLite来证明Mapnik可以从数据库中渲染OSM图块。瓷砖甚至看起来像我希望它们看起来的方式。

我现在的问题是我无法让TileCache与Mapnik一起工作。我安装了一个MapServer实例,用于提供Shapefile。这适用于TileCache。 TileCache配置文件中的默认“基本”图层也可以使用。请帮助我的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

我已经阅读了我能找到的每篇博文,论坛帖子和教程。任何帮助,将不胜感激。我怀疑我要么错过了什么,要么我做了些蠢事。

1 个答案:

答案 0 :(得分:4)

NIK,

我可以理解这里可能遇到的困难,你已经尝试了很多东西。你没有说出你遇到的确切问题,所以我猜这是你的问题:

  • 您正在使用OpenLayers来测试正确生成切片,但是当您连接到TileCache生成的切片时,事情不会排成一行。
那是吗?如果没有,请提供更多细节。

如果这是问题,那么您可能需要做的是确保在OpenLayers中使用“TMS”图层类型并将其与您的TileCache.cfg图层参数匹配。 “TMS”与OSM瓦片方案非常相似,只是翻转了y值。

无论如何,这样的事情应该有效:

tilecache.cfg

[osm]
type=Mapnik
mapfile=/full/path/to/osm.xml
spherical_mercator=true

OpenLayers Layer

var tms = new OpenLayers.Layer.TMS("TileCache TMS Layer","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