3

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

我现在的问题是我无法让 TileCache 与 Mapnik 一起使用。我安装了一个用于服务 Shapefile 的 MapServer 实例。这适用于 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

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

4

1 回答 1

4

尼克,

我可以理解这里的潜在困难,并且您已经尝试了很多事情。你没有说你遇到了什么确切的问题,所以我猜这是你的问题:

  • 您正在使用 OpenLayers 来测试是否正确生成了切片,但是当您连接到 TileCache 生成的切片时,事情并没有对齐。

那个?如果没有,请提供更多细节。

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

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

tilecache.cfg

[osm]
类型=地图尼克
mapfile=/full/path/to/osm.xml
球形墨卡托=真

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 回答