eigenes Mapnik geht nicht

Hallo!

Ich habe unter Windows 7 64Bit Mapnik so weit zum Laufen bekommen, daß es mir das Demo rendert. Wenn ich jetzt über ‘genererate_image.py’ einen eigenen Bereich aus dem OSM-Daten rendern lasse, bekomme ich allerdings nur die Küstenlinie. Ich habe zunächst nur die schleswig-holstein.osm.bz2 in die Datenbank importiert.

Ich hatte zwischendurch Fehlermeldungen, daß der Zugriff auf die Datenbank nicht klappte. Nachdem ich nochmal den Benutzernamen (case-sensitive!) geändert habe, kam keine Fehlermeldung mehr. Also gehe ich jetzt davon aus daß der Zugang auch klappt.

Die Abfrage aus dem OSM2PGSQL-Readme

select osm_id,astext(way),name from planet_osm_point where amenity='cinema' limit 5;

liefert auch Daten. Die Datenbank sollte also auch OK sein.

Was kann ich noch überprüfen? Warum werden alle Daten beim Rendern ignoriert?

Christian

Hallo!

Nach einer langen Pause, habe ich noch einmal die neueste Veriosn heruntergeladen und probiert. Nun geht es (fast). Jetzt werden nicht nur die Küsten, sondern auch Straßen und Wege gerendert. Allerdings werden die meisten Flächen z.b. landuse=residential oder landuse=forest, sowie POIs werden nicht dargestellt.

Weiß hier jemand Rat? Muß noch irgendwo andere Dateien bzw. Pfade anpassen?

Christian

KLingt danach, als ob entweder die Images fehlen oder die Pfade zu den Images falsch sind. Mapnik erfordert entweder absolute Pfade oder Pfade relativ zur Style-Datei.

Mapnik befindet sich bei mir im Verzeichnis c:\osm\napnik. Darunter gibt es die z.B. inc- und symbols-Verzeichnisse. Ich habe mit generate_xml.py die Datenbankparameter übergeben. Die osm.xml und generate_image.py liegen direkt im Mapnik-Verzeichnis. Die Straßennummern (z.B. A1) werden bei mir auch schon in den entsprechenden Kästchen dargestellt.

Flächen mit natural=* und leisure=* werden übrigens gerendert. Ich weiß nicht ob alle, aber die gerenderten Flächen stechen hervor.

Ich habe das Gefühl, daß manche Renderregeln in den ‘inc’-Dateien stecken, die nicht verarbeitet werden. Wie funktioniert denn der Zugriff auf diese Dateien?

Christian

Keine Ahnung, ich habe meine kompletten Stil in einer Datei, ohne Includes.

Such doch mal nach natural und leisure, in welchen Dateien die Regeln liegen bzw. kopier mal den Inhalt einer inc-Datei von Hand in die Hauptdatei. Wenn sich dann was ändert, hast Du wohl recht.

Halo!

Also ich habe noch einmal nachgesehen; alle Regeln befinden sich direkt in der osm.xml. Umso weniger verstehe nicht, warum nicht alles gerendert wird.

landuse=residential (wird nicht gerendert)
Zeilen 163-170


    <Rule>
      &maxscale_zoom10;
      &minscale_zoom18;    
      <Filter>[landuse] = 'residential'</Filter>
      <PolygonSymbolizer>
        <CssParameter name="fill">#ddd</CssParameter>
      </PolygonSymbolizer>
    </Rule>

landuse=forest (wird nicht gerendert)
Zeilen 279-291


    <Rule>
      <Filter>[landuse] = 'forest'</Filter>
      &maxscale_zoom9;
      &minscale_zoom13;
      <PolygonSymbolizer>
        <CssParameter name="fill">#8dc56c</CssParameter>
     </PolygonSymbolizer>
    </Rule>
    <Rule>
      <Filter>[landuse] = 'forest'</Filter>
      &maxscale_zoom14;
      <PolygonPatternSymbolizer file="&symbols;/forest.png" type="png" width="21" height="24"/>
    </Rule>

leisure=sports_centre (wird gerendert)
Zeilen 478-485


<Style name="sports_grounds">
     
    <Rule>
      &maxscale_zoom10;
      <PolygonSymbolizer>
         <CssParameter name="fill">#33cc99</CssParameter>
      </PolygonSymbolizer>
    </Rule>

Zeilen 6074-6080


<Layer name="sports_grounds" status="on" srs="&osm2pgsql_projection;">
    <StyleName>sports_grounds</StyleName>
    <Datasource>
      <Parameter name="table">(select way,leisure from &prefix;_polygon where leisure in ('sports_centre','stadium') order by z_order,way_area desc) as sports_grounds</Parameter>
      &datasource-settings;
    </Datasource>
</Layer>

Von den eigentlichen Grafikbefehlen unterscheiden sich die gerenderten und nicht gerenderten Bereiche nicht (PolygonSymbolizer, CssParameter name=“fill”). Einzig die Verarbeitung ist unterschiedlich, beim “leisure=sports_centre” wird noch ein StyleName definiert (sofern ich das richtig verstehe). Aber daran kann es doch noch liegen, die Datei ist ja direkt von http://svn.openstreetmap.org/applications/rendering/mapnik/, dann würden die Probleme doch überall auftauchen.

Christian

Ohne einen Style mit einem Namen kann das auch nicht funktionieren - über den Namen wird der Style ja der Layer zugeordnet.