2

我下载了澳大利亚 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)

当我尝试使用以下命令生成图块时: export MAPNIK_MAP_FILE="osm.xml" && export MAPNIK_TILE_DIR="/tmp/tilecache/" && ./z0generate_tiles.py

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

在 /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

它生成没有任何错误。

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

4

1 回答 1

1

一条评论:

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

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

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

    从planet_osm_line 中选择计数(*);

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

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

于 2011-01-25T16:46:28.937 回答