0

我正在使用 mapnik 0.7.1 和带有 openlayers 的 tilelite。我想在 shapefile 图层的样式下(在 layers-shapefiles.xml.inc 中)规定两个规则,但是,如果我这样做,liteserv.py 将不会启动。我还为此图层尝试了两种样式(每种样式一个规则),但结果相同。这是样式块:

<Style name="wilderness_boundaries">
    <Rule>
      &maxscale_zoom0;
      &minscale_zoom9;
      <PolygonSymbolizer>
        <CssParameter name="fill">#72B656</CssParameter>
      </PolygonSymbolizer>
      <LineSymbolizer>
        <CssParameter name="stroke">grey</CssParameter>
        <CssParameter name="stroke-width">1.0</CssParameter>
        <CssParameter name="stroke-dasharray">4,2</CssParameter>
      </LineSymbolizer>
    </Rule>

    <Rule>
      &maxscale_zoom10;
      &minscale_zoom20; 
      <PolygonSymbolizer>
        <CssParameter name="fill">#72B656</CssParameter>
      </PolygonSymbolizer>
      <LineSymbolizer>
        <CssParameter name="stroke">grey</CssParameter>
        <CssParameter name="stroke-width">1.0</CssParameter>
        <CssParameter name="stroke-dasharray">4,2</CssParameter>
      </LineSymbolizer>
      <TextSymbolizer name="NAME" fontset_name="book-fonts" size="8" dy="2" fill="grey" halo_radius="1" />
    </Rule>

</Style>

以及相应的层定义:

<Layer name="wilderness_boundaries" status="on" srs="&srs4326;">
    <StyleName>wilderness_boundaries</StyleName>
    <Datasource>
      <Parameter name="type">shape</Parameter>
      <Parameter name="file">&world_boundaries;/wilderness_EPSG4326.shp</Parameter>
      <Parameter name="encoding">latin1</Parameter>
    </Datasource>
</Layer>

如果我使用此配置执行 generate_image.py,则会出现分段错误。

如您所见,我试图在所有缩放级别显示荒野区域多边形,但仅在 10 以上的缩放级别上标记它们。osm.xml 中的给定样式允许多个规则,我错过了什么?

谢谢,约翰

4

1 回答 1

0

段错误表明您忘记运行generate_xml.py- 换句话说,样式表在inc/目录中仍然有%(something)s需要填写的文件。 libxml2,库 mapnik 在后台使用,有一个愚蠢的错误,当无法加载实体时会导致段错误。

于 2012-03-02T03:04:30.963 回答