我正在使用 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 中的给定样式允许多个规则,我错过了什么?
谢谢,约翰