OSM、TileCache和Mapnik

3
到目前为止,我已经尝试了两个半星期来在服务器上运行OpenStreetMap的本地副本。我已经下载了星球文件并将其导入到名为“osm”的PostGIS数据库中。我已经使用OSM Mapnik工具生成了一个XML样式表供Mapnik使用。我已经使用TileLite证明了Mapnik可以从数据库渲染OSM瓦片。瓷砖甚至看起来像我想要的那样。
我的问题是,我无法让TileCache与Mapnik配合使用。我安装了一个MapServer实例,用它来提供Shapefiles服务。这与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

我已经阅读了所有能找到的博客文章、论坛帖子和教程。如果有帮助,将不胜感激。我怀疑我可能错过了什么或者正在做一些愚蠢的事情。


你好Nik,能否请您查看一下这个链接:https://stackoverflow.com/questions/47076168/osm-mapnik-integration - Kanaiya Katarmal
1个回答

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


这看起来非常有帮助。我现在遇到了PostgreSQL身份验证问题,这肯定是一个进步。 - Nik
我创建了另一个问题:http://stackoverflow.com/questions/6113740/tilecache-with-mapnik-for-openstreetmap。如果您也能帮忙解答,那就太好了。 - Nik

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接