到目前为止,我已经尝试了两周半的时间来获取在服务器上运行的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
我已经阅读了我能找到的每篇博文,论坛帖子和教程。任何帮助,将不胜感激。我怀疑我要么错过了什么,要么我做了些蠢事。
答案 0 :(得分:4)
NIK,
我可以理解这里可能遇到的困难,你已经尝试了很多东西。你没有说出你遇到的确切问题,所以我猜这是你的问题:
如果这是问题,那么您可能需要做的是确保在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