【问题标题】:OSM - Mapnik - areas rendered as background colorOSM - Mapnik - 呈现为背景颜色的区域
【发布时间】:2026-01-22 12:55:02
【问题描述】:

我正在使用 Mapnik 和 OSM 数据(postgres 和 shapefile)生成地图。我的问题是相当多的区域,我认为其中大部分被认为是“地被覆盖”,正在渲染为背景颜色。无论缩放级别如何,这些区域都呈现为背景颜色。

例如,在街道之间,一切都是蓝色的。有一些森林呈现出预期的效果,但大多数住宅区只是蓝色的。

我正在使用带有样式表的 Mapnik 3。这是在 Ubuntu 16.04 上运行的。

下面的图片显示了我正在生成的内容以及我希望看到的内容(基于 Openstreetmaps 上的内容)。

任何关于我应该在哪里解决这个问题的建议将不胜感激。

谢谢。

What I'm getting

OSM

【问题讨论】:

    标签: openstreetmap postgis mapnik


    【解决方案1】:

    问题是由一些无效的缩放级别和/或 MinScaleDenominator、MaxScaleDenominator 值引起的。我还没有完全缩小范围,但是通过删除这些属性,我又看到了这片土地。

    感谢您的帮助。

    【讨论】:

    • 通过两件事解决了这个问题: 1. 用 world_boundaries_m.shp 替换 builtup_areas.shp 文件 2. 删除 Min 和 Max ScaleDenominator 属性。我可能会调整最小和最大比例分母属性,但删除它们可以解决问题。感谢您将我指向样式表!
    【解决方案2】:

    这是您的样式表的问题,如果它是自定义样式表,我建议将其加载到 TileMill 中并在 LandCover 和 Area 颜色之间进行调整,直到您满意为止。

    如果您想要相关的参考点,请查看样式表配置以获取您自己的 OSMBright 副本,以便比较呈现样式。

    更新 OSM 风格外观的链接:https://github.com/gravitystorm/openstreetmap-carto

    【讨论】:

    • 嗨,我很欣赏快速响应,但我想我可能忽略了一些东西。我下载了carto 文件,使用carto 生成了样式表,并替换了我当前的样式表,但我仍然只看到背景颜色。我错过了一步吗?
    • 您是否重新启动了磁贴服务器以使其使用新样式表?
    • 我遇到的另一个问题(不相关但值得花时间):确保您拥有样式表引用的所有依赖字体。
    • 我正在将 tilecache 与 openlayers 一起使用(我可能应该提到这一点)。我删除了切片缓存并重新生成了切片。起初我收到错误,因为我没有复制符号,所以它似乎使用了新的样式表。