0

私はmapnik0.7.1とopenlayersを備えたtileliteを使用しています。シェープファイルレイヤー(layers-shapefiles.xml.inc内)のスタイルで2つのルールを規定したいのですが、これを行うとliteserv.pyが起動しません。このレイヤーにも2つのスタイル(スタイルごとに1つのルール)を試しましたが、同じ結果になりました。スタイルブロックは次のとおりです。

<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

segfaultは、実行を忘れたことを示します。generate_xml.pyつまり、スタイルシートには、inc/ディレクトリに%(something)sその必要性が入力されたファイルがまだあります。ライブラリmapnikが内部で使用するlibxml2には、エンティティをロードできないときにsegfaultを引き起こす愚かなバグがあります。

于 2012-03-02T03:04:30.963 に答える