【问题标题】:Tilecache failing to generate tiles using MapnikTilecache 无法使用 Mapnik 生成切片
【发布时间】:2011-01-25 12:44:53
【问题描述】:

我下载了澳大利亚 OSM 提取并使用 osm2pgsql 将其移动到名为 gis 的数据库中。

我已将 generate_tiles.py 更改为只为澳大利亚生成图块:

bbox = (-180.0,-90.0, 180.0,90.0)

render_tiles(bbox, mapfile, tile_dir, 0, 5, "World")

minZoom = 10
maxZoom = 16
bbox = (101.1,-6.9,165.5,-45.9)
render_tiles(bbox, mapfile, tile_dir, minZoom, maxZoom)

当我尝试使用以下方法生成图块时: 导出 MAPNIK_MAP_FILE="osm.xml" && 导出 MAPNIK_TILE_DIR="/tmp/tilecache/" && ./z0generate_tiles.py

在 /tmp/tilecache 中使用 png 切片创建了许多目录。这些瓷砖有州界和国名,似乎确实有高速公路。 但是..当我导航到地址时: http://localhost/osm/tilecache-2.11/index.html 我只看到国家和州,但没有标签,也没有街道。我认为这可能是访问 postgis 数据的权限问题。我已经进入 psql 并发出: 将数据库 gis 上的所有权限授予公共

在 /etc/tilecache.cfg 我有:

[cache]
type=Disk
base=/tmp/tilecache
[osm]
type=Mapnik
mapfile=/home/(my user_name)/bin/mapnik/my_osm.xml
spherical_mercator=true
tms_type=google
metatile=yes
[basic]
type=WMS
url=http://labs.metacarta.com/wms/vmap0
extension=png

mapnik 似乎无法与 postgis 通信。我已登录 postgres 并执行: GRANT ALL PRIVILEGES ON DATABASE gis TO PUBLIC

我使用以下内容生成了 my_osm.xml 文件:

./generate_xml.py osm.xml my_osm.xml --dbname gis --user (uname) --password (pword) --accept-none

它生成时没有任何错误。

这是我所能接受的。通过网络访问时正在创建新文件,它们只是没有任何道路信息。 有什么想法吗?

【问题讨论】:

  • 作为此问题的更新:我最终下载了 tilelite 以查看它是否可以让 mapnik 渲染图块。它做了。目前我对正在发生的事情一无所知,但我看到了一些结果。
  • Ypu 应该在 GIS.stackexchange.com 上问这样的问题。

标签: gis openstreetmap mapnik tilecache


【解决方案1】:

一条评论:

  • generate_tiles.py 和 tilecache 是不同的应用程序,彼此不了解。因此,您的 tilecache 配置只会被 tilecache 应用程序读取。但是,如果 tilecache 与 'tms_type=google' 一起使用,就像您所做的那样,每个使用的缓存方案 程序应该匹配。

检查您丢失的道路的几件事:

  • 旧的 geos 库有时会导致缺少 osm2pgsql 导入的数据,因此请确保 plant_osm_line 表中有很多行:

    从planet_osm_line中选择count(*);

  • 另外,请确保您运行的是最新的 Mapnik 版本,至少 0.7.0,最好是 0.7.1。

  • 尝试使用 nik2img.py 渲染一些地图,并确保 mapnik 现在确实输出任何可能导致此问题的警告 - 一个常见问题可能是缺少 EPSG:900913 的 proj4 epsg 定义

【讨论】:

  • Mapnik 版本为 0.7.1 nik2img.py 使用:nik2img.py my_osm.xml rendering.png 渲染了世界的图像。没有报告错误。