x

myMapnik, oder: Dann habe ich was Eigenes [tm]


  1. myMapnik, oder: Dann habe ich was Eigenes [tm] · ajoessen (Gast) · 18.03.2011 07:55 · [flux]

    Hallo zusammen,

    auf vielfachen Wunsch habe ich jetzt mal zusammengeschrieben, wie ich mit Mapnik neben eigenen Kartentiles auch transparente Overlays für verschiedene Anwenungsfälle erzeuge:

    http://wiki.openstreetmap.org/wiki/User … n/myMapnik

    Alles lauffähig unter Windows XP mit ertwas angestaubter Hardware ;-)

    Vorraussetzung ist eine funktionierende osmpgsql-PostgreSQL-Mapnik-Konfiguration, wie sie hier dokumentiert wird:
    http://wiki.openstreetmap.org/wiki/User … en/Postgis
    http://wiki.openstreetmap.org/wiki/User:Ajoessen/Mapnik

    Die transparenten Overlays sind für meinen OSMviewer geeignet:
    http://wiki.openstreetmap.org/wiki/User … _GPXviewer

    Für den eiligen nutzer gibt es die Styles hier:
    http://bahnradwandern.bplaced.net/myMapnik.zip
    und die zusätzlichen Symbole hier:
    http://bahnradwandern.bplaced.net/symbols.zip

    Viel Spaß beim Nachbauen...

    Gruß,
    ajoessen


    • Re: myMapnik, oder: Dann habe ich was Eigenes [tm] · !i! (Gast) · 18.03.2011 09:17 · [flux]

      Wow sehr schön, muss ich mir mal in Ruhe durchlesen. Danke auf jeden Fall für deine Mühen!


    • Re: myMapnik, oder: Dann habe ich was Eigenes [tm] · Vize11 (Gast) · 26.02.2013 20:24 · [flux]

      Hallo ajossen,

      ich bin noch ganz frisch in der Materie und versuche gerade, mit Mapnik eine Karte nach meinen Wünschen zu erstellen.

      Ich hangele mich dabei an deiner hier genannten Vorgabe entlang, allerdings unter Linux Ubuntu 12.04.

      Leider komm ich - trotz Tante Google - an einer Stelle nicht weiter.

      Wenn ich das script generate_image.py ausführe, wird zwar ein Bild ausgegeben, in der Eingabeaufforderung/Terminal wird jedoch folgende Fehlermeldung ausgegeben:

      andreas@Phenom-2300:~/osm/myMapnik$␣./generate_image.py
      "Mapnik␣LOG>␣2013-02-26␣20:03:35:"␣Unable␣to␣process␣some␣data␣while␣parsing␣'osm-de.xml':
      *␣text␣'r'
      *␣node␣'Filter'␣at␣line␣4164
      output␣image␣to␣image.png!
      

      in Zeile 4164 meiner Datei osm-de.xml steht

      <Filter>[landuse]␣=␣'forest'␣or␣[natural]␣=␣'wood'␣or␣[landuse]␣=␣'wood'</Filter>
      

      Die Datei habe ich vorher per upgrade_map_xml.py auf den aktuellen Stand gebracht.

      Der gleiche Fehler taucht beim Versuch auf, Kacheln über generate_tiles.py zu erzeugen. Das script bricht hier allerdings ab und es werden keine Kacheln erzeugt.

      andreas@Phenom-2300:~/osm/myMapnik$␣./generate_tiles.py
      /usr/lib/pymodules/python2.7/mapnik2/__init__.py:27:␣DeprecationWarning:␣␣mapnik2␣module␣has␣been␣deprecated,
      please␣use␣'import␣mapnik'
      warnings.warn(msg,␣DeprecationWarning)
      render_tiles(␣(7.8,␣51.3,␣9.4,␣52.5)␣osm-de.xml␣tiles/␣12␣14␣"Test")
      Traceback␣(most␣recent␣call␣last):
      File␣"./generate_tiles.py",␣line␣212,␣in␣<module>
      render_tiles(bbox,␣mapfile,␣tile_dir,␣12,␣14,␣"Test")
      File␣"./generate_tiles.py",␣line␣136,␣in␣render_tiles
      renderer␣=␣RenderThread(tile_dir,␣mapfile,␣queue,␣printLock,␣maxZoom)
      File␣"./generate_tiles.py",␣line␣64,␣in␣__init__
      mapnik.load_map(self.m,␣mapfile,␣True)
      RuntimeError:␣Unable␣to␣process␣some␣data␣while␣parsing␣'osm-de.xml':
      *␣text␣'r'
      *␣node␣'Filter'␣at␣line␣4164
      

      System:
      Ubuntu 12.04 x64
      PostgreSQL 9.1
      Postgis 1.5.x
      aktuelles osm2pgsql aus ppa:kakrueger
      mapnik 2.1.0

      Irgendwelche Lösungsvorschläge, Tipps, Ansätze hierzu?

      Gruß
      Andreas


    • Re: myMapnik, oder: Dann habe ich was Eigenes [tm] · Vize11 (Gast) · 28.02.2013 10:53 · [flux]

      Hallo nochmal,

      hat denn niemand eine Idee oder eventuell eine Vermutung, woran es liegen könnte?

      Gruß
      Andreas


    • Re: myMapnik, oder: Dann habe ich was Eigenes [tm] · tunnelbauer (Gast) · 28.02.2013 11:21 · [flux]

      Schon mal versucht die Leerzeichen wegzulassen?

      also, dass es dann so aussieht:

      <Filter>[landuse]='forest'␣or␣[natural]='wood'␣or␣[landuse]='wood'</Filter>
      

      Nachtrag:

      Eventuell kannst du auch noch die zeile oberhalb und unterhalb posten...


    • Re: myMapnik, oder: Dann habe ich was Eigenes [tm] · Vize11 (Gast) · 28.02.2013 18:20 · [flux]

      Hallo Thomas,

      die Leerzeichen hatten keinen Einfluss...

      hier noch der Auszug Zeilen 4155-4166, mit !!! die Zeile, die bemängelt wird:

      <Rule>
      <Filter>[landuse]␣=␣'forest'␣or␣[natural]␣=␣'wood'␣or␣[landuse]␣=␣'wood'</Filter>
      <MaxScaleDenominator>100000</MaxScaleDenominator>
      <MinScaleDenominator>50000</MinScaleDenominator>
      <PolygonSymbolizer␣fill="#8dc56c"␣fill-opacity="0.9"/>
      </Rule>
      <Rule>
      <Filter>[landuse]␣=␣'forest'</Filter>
      <MaxScaleDenominator>50000</MaxScaleDenominator>
      !!!␣<Filter>[landuse]␣=␣'forest'␣or␣[natural]␣=␣'wood'␣or␣[landuse]␣=␣'wood'</Filter>␣!!!
      <PolygonPatternSymbolizer␣file="symbols/forest.png"/>
      </Rule>
      

      Lösche ich die Zeile komplett raus, ist die Fehlermeldung dazu weg.
      Was aber bleibt, ist der erste Teil der Fehlermeldung

      RuntimeError:␣Unable␣to␣process␣some␣data␣while␣parsing␣'osm-de.xml':
      *␣text␣'r'
      

      Da komm ich einfach nicht weiter...

      Gruß
      Andreas


    • Re: myMapnik, oder: Dann habe ich was Eigenes [tm] · wambacher (Gast) · 28.02.2013 22:29 · [flux]

      Vize11 wrote:

      Hallo Thomas,

      die Leerzeichen hatten keinen Einfluss...

      hier noch der Auszug Zeilen 4155-4166, mit !!! die Zeile, die bemängelt wird:

      <Rule>
      <Filter>[landuse]␣=␣'forest'</Filter>
      <MaxScaleDenominator>50000</MaxScaleDenominator>
      !!!␣<Filter>[landuse]␣=␣'forest'␣or␣[natural]␣=␣'wood'␣or␣[landuse]␣=␣'wood'</Filter>␣!!!
      <PolygonPatternSymbolizer␣file="symbols/forest.png"/>
      </Rule>
      

      Lösche ich die Zeile komplett raus, ist die Fehlermeldung dazu weg.

      Zwei Filter in einer Rule? Kommt mir komisch vor. Und dem Renderer wohl auch.

      also: Erstes Filter raus!

      Gruss
      walter


    • Re: myMapnik, oder: Dann habe ich was Eigenes [tm] · MasiMaster (Gast) · 01.03.2013 01:25 · [flux]

      [gelöscht]
      ups, da war jemand vieeel schneller 🙂


    • Re: myMapnik, oder: Dann habe ich was Eigenes [tm] · Vize11 (Gast) · 01.03.2013 10:06 · [flux]

      wambacher wrote:

      Zwei Filter in einer Rule? Kommt mir komisch vor. Und dem Renderer wohl auch.

      also: Erstes Filter raus!

      Gruss
      walter

      Jo, deswegen hab ich das ja dann auch gelöscht (siehe mein letzter post).

      Aber was ist mit der verbleibenden Fehlermeldung?

      Gruß
      Andreas


    • Re: myMapnik, oder: Dann habe ich was Eigenes [tm] · wambacher (Gast) · 01.03.2013 11:00 · [flux]

      Vize11 wrote:

      Jo, deswegen hab ich das ja dann auch gelöscht (siehe mein letzter post).

      Aber was ist mit der verbleibenden Fehlermeldung?

      Hattu aber sehr unklar formuliert. Egal.

      bitte poste den restlichen Fehler mit der passenden Umgebung.

      Gruss
      walter

      p.s. ach ja, das deprecated-Warning solltest du auch fixen.


    • Re: myMapnik, oder: Dann habe ich was Eigenes [tm] · Vize11 (Gast) · 01.03.2013 11:49 · [flux]

      Hallo Walter,

      bitte hilf mir dazu nochmal weiter, da ich da ja noch ziemlich unbeleckt bin...

      Was meinst du mit "passender" Umgebung?

      Und wie kann man das deprecated-Warning fixen?

      Danke schonmal und Gruß
      Andreas


    • Re: myMapnik, oder: Dann habe ich was Eigenes [tm] · wambacher (Gast) · 01.03.2013 12:05 · [flux]

      Vize11 wrote:

      Was meinst du mit "passender" Umgebung?

      Aktuelle Fehlermeldung (ohne doppeltes Filter) mit den dazu passenden Datenzeilen, was sonst?

      Und wie kann man das deprecated-Warning fixen?

      keine Ahnung, muttu Manual lesen. Hat was mit Wechsel von mapnik auf mapnik2 zu tun und dein Vorlagen könnten noch mit mapnik 1 sein.
      Mapnik ist bei mir derzeit wegen Rechnerwechsel nicht installiert, daher kann ich nicht testen.

      Gruss
      walter

      p.s. mach mal aus "import mapnik2" "import mapnik" - eventuell war es das mit dem warning.


    • Re: myMapnik, oder: Dann habe ich was Eigenes [tm] · Vize11 (Gast) · 01.03.2013 12:31 · [flux]

      wambacher wrote:

      Vize11 wrote:

      Was meinst du mit "passender" Umgebung?

      Aktuelle Fehlermeldung (ohne doppeltes Filter) mit den dazu passenden Datenzeilen, was sonst?

      Hi,

      guckst du meinen allerersten post mit der Meldung zu generate_tiles.py und streiche die letzte Zeile des code-Schnippels, dann hast du die übrig gebliebene Fehlermeldung.
      Leider nix mit Datenzeilen oder so...einfach nur "* text 'r'"

      Gruß
      Andreas


    • Re: myMapnik, oder: Dann habe ich was Eigenes [tm] · Vize11 (Gast) · 01.03.2013 17:45 · [flux]

      So, der Vollständigkeit halber, hier nochmal die aktuelle Fehlermeldung komplett:

      andreas@Phenom-2300:~/osm/myMapnik$␣./generate_tiles.py
      render_tiles(␣(7.8,␣51.3,␣9.4,␣52.5)␣osm-de.xml␣tiles/␣12␣14␣Test␣)
      Traceback␣(most␣recent␣call␣last):
      File␣"./generate_tiles.py",␣line␣212,␣in␣<module>
      render_tiles(bbox,␣mapfile,␣tile_dir,␣12,␣14,␣"Test")
      File␣"./generate_tiles.py",␣line␣136,␣in␣render_tiles
      renderer␣=␣RenderThread(tile_dir,␣mapfile,␣queue,␣printLock,␣maxZoom)
      File␣"./generate_tiles.py",␣line␣64,␣in␣__init__
      mapnik.load_map(self.m,␣mapfile,␣True)
      RuntimeError:␣Unable␣to␣process␣some␣data␣while␣parsing␣'osm-de.xml':
      *␣text␣'r'
      andreas@Phenom-2300:~/osm/myMapnik$
      

      Gruß
      Andreas


    • Re: myMapnik, oder: Dann habe ich was Eigenes [tm] · wambacher (Gast) · 02.03.2013 02:23 · [flux]

      Vize11 wrote:

      So, der Vollständigkeit halber, hier nochmal die aktuelle Fehlermeldung komplett:
      ...

      Sorry, da muß ich passen.

      Eventuell reduzierst du das Datenfile solange bis es funktioniert oder nimmst ein total anderes.
      Vielleicht gibt es auch Debug-Optionen?

      Gruss
      walter


    • Re: myMapnik, oder: Dann habe ich was Eigenes [tm] · HeBri (Gast) · 02.03.2013 18:08 · [flux]

      Hi Andreas,
      schon mal versucht das angemeckerte xml in einem Browser oder einem xml-Editor aufzumachen um zu sehen ob dort auch Fehlermeldungen kommen?
      Evtl. hast Du Dir ein "nicht druckbares Zeichen" eingefangen? Hast Du einen Editor, der solche Zeichen (z.B. als Rechteck) sichtbar macht?
      Nur so als Idee...
      Gruß, Heinz


    • Re: myMapnik, oder: Dann habe ich was Eigenes [tm] · derstefan (Gast) · 02.03.2013 21:33 · [flux]

      Nur ne Idee: Mit welchem Zeilenumbruch ist die Datei gespeichert? \r\n könnte evtl. das "r" erklären. 😐


    • Re: myMapnik, oder: Dann habe ich was Eigenes [tm] · wambacher (Gast) · 02.03.2013 22:59 · [flux]

      Solange er uns nicht verrät, wie er osm-de.xml erzeugt hat und was drin steht (download!), schweig ich wie ein Pfarrer nach der Beichte.

      Gruss
      walter


    • Re: myMapnik, oder: Dann habe ich was Eigenes [tm] · Vize11 (Gast) · 03.03.2013 11:15 · [flux]

      Moin,

      dann also nochmal: Steht doch in meinem ersten post, was ich gemacht habe. Dann kann man sich eigentlich auch denken, wo ich die xml-Datei her habe und was drinsteht, oder?

      Egal.

      xml-Datei (osm-de.xml) steckt in dieser zip-Datei:http://bahnradwandern.bplaced.net/myMapnik.zip

      Danach habe ich dieses script drüber laufen lassen: upgrade_map_xml.py

      Die Datei hat danach über 8000 Zeilen. Soll ich die hier komplett posten, oder kann man auch ne Datei hier hochladen?

      Gruß
      Andreas


    • Re: myMapnik, oder: Dann habe ich was Eigenes [tm] · Vize11 (Gast) · 03.03.2013 12:03 · [flux]

      derstefan wrote:

      Nur ne Idee: Mit welchem Zeilenumbruch ist die Datei gespeichert? \r\n könnte evtl. das "r" erklären. 😐

      Hallo Stefan,

      wie kann man das auf die Schnelle herausfinden?

      Suche ich nach \r\n in osm-de.xml wird nix gefunden. Such ich nach \n findet er was am Ende jeder Zeile, ohne das da was steht...
      Hab die Datei mit gedit geöffnet.

      Gruß
      Andreas


    • Re: myMapnik, oder: Dann habe ich was Eigenes [tm] · wambacher (Gast) · 03.03.2013 14:42 · [flux]

      Vize11 wrote:

      Moin,

      dann also nochmal: Steht doch in meinem ersten post, was ich gemacht habe. Dann kann man sich eigentlich auch denken, wo ich die xml-Datei her habe und was drinsteht, oder?

      Egal.

      nix mit "egal"! Du hast (mindestens) ein Problem und möchtest, dass man dir hilft. Dann ist es quasi deine "Pflicht", so viele Infos zu geben wie es vertretbar ist. Wir haben hier keine Ratestunde oder einen Kursus in "Zwischen den Zeilen lesen" oder "Hellsehen II".

      xml-Datei (osm-de.xml) steckt in dieser zip-Datei:http://bahnradwandern.bplaced.net/myMapnik.zip
      Danach habe ich dieses script drüber laufen lassen: upgrade_map_xml.py
      Die Datei hat danach über 8000 Zeilen. Soll ich die hier komplett posten, oder kann man auch ne Datei hier hochladen?

      Der notwendige Upgrade könnte das Problem sein. Leider kenne ich keinen File-Hoster, da ich bei pic-upload.de nur Bilder hochladen kann und mir das reicht. Eventuell hat ein Kollege nen Tip - beim osm-wiki kann man Files hochladen aber ob das hierfür gedacht ist, wag ich zu bezweifeln.

      Gruß
      Walter

      p.s. ab hier muß ich eh passen, auch wenn ich dir weiterhelfen möchte, da mapnik2 bei mir immer noch nicht installiert ist und das auch noch 2-3 Wochen dauern wird (lokaler Serverupgrade). Es müsste doch eigentlich einen Debug-Möglichkeit geben, sodaß mapnik etwas gesprächiger wird?


    • Re: myMapnik, oder: Dann habe ich was Eigenes [tm] · Vize11 (Gast) · 03.03.2013 15:08 · [flux]

      wambacher wrote:

      Der notwendige Upgrade könnte das Problem sein.

      Hallo Walter,

      das glaube ich eigentlich nicht, da der gleiche Fehler mit der nicht "upgegradeten" (was für ein Wort) Datei auftaucht plus noch ein paar Meldungen in dieser Form:

      *␣node␣'CssParameter'␣at␣line␣7
      

      Diese Meldungen sind aber nach dem upgrade weg...

      Zum Thema debuggen hab ich bisher nur was in Englisch gefunden, aber da steig ich nicht durch...

      Gruß
      Andreas


    • Re: myMapnik, oder: Dann habe ich was Eigenes [tm] · mmd (Gast) · 03.03.2013 19:30 · [flux]

      Der Parser beschwert sich über ein Element, das er nicht verarbeiten konnte. Der Fehler kommt von einem überschüssigen r nach einem </Rule>. Such mal nach dem String </Rule>r und ändere das in </Rule> ab.

      Hier ist der Fehler drin:

      <Rule>
      <Filter>[highway] = 'trunk' and [length] = 2</Filter>
      <MaxScaleDenominator>100000</MaxScaleDenominator>
      <ShieldSymbolizer fontset-name="book-fonts" size="10" fill="#000000" placement="line" file="symbols/B2.png" minimum-distance="30" spacing="750">[ref]</ShieldSymbolizer>
      </Rule>r
      <Rule>


    • Re: myMapnik, oder: Dann habe ich was Eigenes [tm] · Vize11 (Gast) · 03.03.2013 20:28 · [flux]

      Hi mmd,

      DAS WARS!!!

      Du bist der beste! Nun läuft's durch...und das wegen einem einzigen Buchstaben.

      Wie in aller Welt hast du das so schnell rausgefunden???

      Gruß
      Andreas


    • Re: myMapnik, oder: Dann habe ich was Eigenes [tm] · mmd (Gast) · 04.03.2013 22:32 · [flux]

      Gar nicht so schwierig:
      gedit
      Strg-H (Suchen / Ersetzen)
      Nur vollständige Wörter berücksichtigen markieren
      Suchen nach r
      -> erster Treffer

      Gut ok, ich hab auch in den Sources nachgeschaut und dort gesehen, dass alle Elemente im osm.xml angemeckert werden, die am Ende noch unverarbeitet sind. Das können Tippfehler sein, oder eben irgendwelche überschüssigen Elemente, die schlicht vom Parser nicht angefasst wurden. Macht m.E. auch Sinn um "tote" Regeln,Elemente etc. in einem Style erkennen zu können. Nur die Fehlermeldung selbst wäre wohl besser mit Zeilennummer, ein text 'r' ist doch reichlich unverständlich.


    • Re: myMapnik, oder: Dann habe ich was Eigenes [tm] · Vize11 (Gast) · 05.03.2013 12:04 · [flux]

      Ein Durchsuchen der xml-Datei hatte ich auch schon überlegt, aber ich hab gedacht, wenn ich einfach nach r suche, dauert das Tage bis ich das Richtige finde...

      Na ja, besten Dank nochmal, natürlich auch an alle anderen, für die Hilfe!

      Gruß
      Andreas