Mapnik rendert falsch

hallo all

habe leider ein kleines problem und weiß nicht woran es liegt.
vielleicht weiß ja der eine oder andere einen rat
beim rendern der tiles über die generate_tiles.py erhalte ich folgendes ergebnis

aussehen sollte es doch aber eigentlich so

was habe ich vergessen oder was ist hier falsch eingestellt?

vielen dank schonmal für eure antworten

gruß blasco

Dir ist aber bewusst das Mapnik und das python-Skirpt zwei verschiedene paar Stiefel sind?

Gruß

aber den renderprozess steuer ich doch über das python_script oder?

Hoppla, stimmt.

Ich war an der falschen Ecke. Sorry.

Ja du bist richtig.

  • Liegen alle Daten in der Datenbank wo Mapnik zugreift?
  • Ist das XML-File wo die Settings drinstehen auch so wie das orginal?

Gruß

also meine db ist gut gefüllt

planet_osm_line _point _polygon und _roads haben jeweils mehrere 100k datensätze

die osm.xml wurde mit meinen daten generiert

soweit ich sehen konnte passen dort auch die pfade und angaben zur db

keiner eine idee?

wenn die bilder von mapnik gerendert werden, werden die gleich komplett mit allen informationen gerendert oder
sind das mehrere durchläufe und die kacheln werden pro durchlauf erweitert?

Mapnik liest alle in deiner Datenbank vorhandenen Daten innerhalb der von Dir im Python-Skript angegebenen Zoomstufen und Grenzen aus.
(Ist der Import erfolgreich verlaufen? Versuch mal eine Aktualisierung der Daten.)

Das Python-Skript enthält auch eine Verknüpfung zur XML-Datei mit den Renderregeln.
(Stimmt der Pfad zur XML-Datei?)

Mapnik rendert die Grafik(en) entsprechend der Regeln in der osm.xml.
(hast du die Datei verändert? Versuch mal die Originaldatei.)

Mapnik rendert bereits vorhandene tiles nicht neu. Das bedeutet dass alte Tiles unverändert bleiben.
(verschiebe deine bereits vorhandenen tiles in ein anderes Verzeichnis und rendere alles nochmal neu)

In den Regeln in der osm.xml sind zahlreiche Layer definiert, die nacheinander gerendert werden.

Deine Grafik sieht so aus, als ob nur zwei oder drei von diesen Layers gerendert werden, alle anderen scheinen einen Fehler zu enthalten. Das liegt meistens daran, daß ein Fehler im SQL-Statement für die Layer ist oder daß eine falsche Datenbanktabelle angegeben wurde. Oder, falls Du Deine osm.xml per Konvertierungsscript aus dem default erstellt hast, könnte dabei etwas grundlegend falsch eingestellt worden sein.

Was für Objekte sind das, die da sichtbar sind?

bye
Nop

hi bike

danke sehr für deine antwort

also der import ist erfolgreich durchgelaufen und es wurden alle tiles erzeugt

mit der XML-Datei meinst du die osm.xml? der pfad stimmt, habe ich eben nochmal überprüft

die datei hatte ich verändert und anhand meiner variablen generiert … symbolpfad, datenbankconnection
wie greift die originaldatei auf die o.g. inhalte zu?

gibt es eine windows gui, wo man mal einen connect zur db herstellen kann, die einen die karte aus der db mal darstellt?
also ich hatte mittels osm2pgsql alle bundesländer einzeln importiert

hi nop
also die osm.xml hatte ich per konvertierungsscript erzeugt.
sollte ich die template mal nehmen und manuell verändern?

viel wird nicht angezeigt, weiss leider nicht, welche objekte das sind

zumindest sind die grundlinien der straßen enthalten. und hier und da nen waldgebiet

Du kannst so vorgehen

  • die Objekte identifizieren, die zu sehen sind
  • nachsehen welche Tags für diese Objekte verantwortlich sind
  • über die Tags findest Du die Renderregln und die Layers in der osm.xml
  • Unterschiede suchen zwischen den Layers die angezeigt werden und denen die es nicht tun

Nebenbei noch gefragt: Welche Version von mapnik verwendest Du? Mapnik ab 0.7 sollte eigentlich in so einem Fall deutliche Fehlermeldungen für jede kaputte Layer auf der Console ausgeben.

bye
Nop

ich habe derzeit ein debian lenny im einsatz und über die installation von python-mapnik wird scheinbar nur ein mapnik 0.5 installiert, obwohl die sources-list aktuell ist.

Dann müssten wir die Fehlerursache auch gefunden haben, die osm.xml enthält gleich am Anfang folgenden Hinweis:

This stylesheet uses features only available in mapnik builds with
     libxml2 as the XML parser. Furthermore, there are other features
     that necessitate an upgrade to at least mapnik 0.6.1

nun taucht schon das neue problem auf

habe mir von mapnik.org die aktuelle version besorgt und installiert.
hat soweit auch gut geklappt.

nun erhalte ich beim renderversuch mit der generate_tiles.py gleich am anfang einen fehler, dass er eine spalte in einer tabelle nicht finden kann.
richtig, die gibt es auch gar nicht. habe die osmfiles mit osm2pgsql importiert


render_tiles( (-180.0, -90.0, 180.0, 90.0) /opt/mapnik/osm.xml /opt/tiles/ 0 5 World )
Traceback (most recent call last):
  File "./generate_tiles.py", line 202, in <module>
    render_tiles(bbox, "/opt/mapnik/osm.xml", tile_dir, 0, 5, "World")
  File "./generate_tiles.py", line 130, in render_tiles
    renderer = RenderThread(tile_dir, mapfile, queue, printLock, maxZoom)
  File "./generate_tiles.py", line 59, in __init__
    mapnik.load_map(self.m, mapfile, True)
RuntimeError: PSQL error:
FEHLER:  Spalte »disused« existiert nicht
LINE 1: select * from (select way,waterway,disused,name,case when tu...
                                           ^
Full sql was: 'select * from (select way,waterway,disused,name,case when tunnel in ('yes','true','1') then 'yes'::text else tunnel end as tunnel from planet_osm_line where waterway IS NOT NULL order by z_order) as water_lines limit 0'
 (encountered during parsing of layer 'water_lines')

scheint als fehlt dir die Spalte “disused” in deiner Datenbank.
Weiter kann ich aber auch nicht helfen.
Sorry

ich habe den fehler scheinbar gefunden, kann ihn aber dennoch nicht lösen

debian (lenny) liefert ein altes osm2pgsl paket … hier muss es eine default.style geben, die die db-tabellen erzeugt.

leider habe ich keine möglichkeit ein neues osm2pgsl zu kompilieren (das geht irgendwie nicht) noch habe ich die möglichkeit die default.style im system auszutauschen. (die datei ist nirgends vorhanden im system)

somit nutzt er eine alte osm2pgsl und die db wird fehlerhaft.

kennt jemand eine alternative, wie ich die aktuelle source nutzen bzw. die default.style ins system integrieren kann?

laut osm2pgssql wiki soll man folgende befehle ausführen

./autogen.sh
./configure

die autogen.sh schlägt schon fehl

Unter http://trac.openstreetmap.org/browser/applications/utils/export/osm2pgsql/default.style?format=raw gibt es den aktuellen Style. Versuche doch einfach mal diese Datei zu ersetzen.

Christian

hi all

so habe eine lösung und natürlich ein problem meinerseits endeckt

man sollte natürlich autoconf installieren, bevor man osm2pgsql kompilieren will.

das aktuelle osm2pgsl paket funktioniert nun und ist weit überholt gegenüber dem mitgelieferten paket von debian.

nach dem import der geodaten ist die db wesentlich größer und scheint nun alle tabellen und verknüpfungen zu haben.

das rendern mit mapnik funktioniert nun problemlos und die karten sind sauber gerendert.

ich danke allen, die versucht haben mir zu helfen