Karten zum Ausdrucken

Geforderte Aufgabe: Eine Karte meines Heimatortes soll inklusive Hydranten und Legende (+ Einwand von mir: incl. Lizenzhinweis) ausgedruckt werden.

Mit der obigen Aufgabe kam mein Dad bei mir an. In der kleinen Feuerwehr gibt es keinen Hydrantenplan, jeder kennt alle Hydranten auswendig. Aber wenn neue Leute da sind, oder doch mal eine Nachbarfeuerwehr (hoffentlich nur zum Üben) kommt, wird es schwierig. Daher seine Frage an mich, ob ich was erstellen kann. Das möchte er dann der Feuerwehr vorstellen (Noch ist also nichts offiziell).

Mein Dad hat sich glein ran gemacht die Hydranten zu erfassen

  • Erst schnell per Edding auf einer Karte
  • Dann per Tom-Tom Navigationsgerät

Ich habe mich gleich ran gemacht, die Karte zu erstellen

  • Mapnik-Kacheln in verschiedenen Zoomstufen heruntergeladen
  • OSM-File heruntergeladen
  • Hydranten aus dem OSM-File extrahiert und als Kreise über die Karte gelegt
  • Verschiedene Legendenarten erstellt
  • Maßstab für ein 30 cm hohes Papier errechnet (1 zu 4185) und die Karte auf den nächst-schhöneren Maßstrab gezoomt
  • Maßstabsskala erstellt
  • Die Karte im Mediamarkt ausdrucken lassen

Heute halte ich das Ergebnis in der Hand. Leider nicht sehr berauschend.

  • Zoomfaktor 16 ist viel zu Pixelig
  • Zoomfaktor 18 ist viel zu klein, man kann gar nichts mehr lesen
  • Zoomfaktor 17 ist … naja… Man kann alles lesen, aber alles ist viel zu klein.



Jetzt stellt sich für mich die Frage 1: Wie kann man die OSM-Karte besser 0ausdrucken? Gibt es irgendwo einen Tileserver, der Tiles optimiert zum ausdrucken errechnet? Denn man bräuchte die Auflösung vom Zoomfaktor 18 mit den Details von Zoomfaktor 18, aber Skaliert auf Zoomfaktor 15 oder 16. Mapnik hat also nicht so ganz das optimale dafür.

Frage 2: Ist der Lizenzhinweis so Okay? Ich bin zwar schon lange dabei aber das Wiki ist echt sch… was dieses Thema betrifft.

Grüße
Dennis

Hast Du Dir schon mal http://wiki.openstreetmap.org/wiki/Mapgen.pl angesehen?

Noch nicht, wird aber wohl auch nicht gehen: >> Current Version does not run under Windows. <<

Könnte Mapgen genau so komplexe Karten erstellen wie Mapnik?

@Dennis:

Schau dir auch mal http://wiki.openstreetmap.org/wiki/OSM_on_Paper an, dort sollte es einige Möglichkeiten geben zum Ausdrucken.

Wie wäre es mit www.maposmatic.org ? Das ist ja gerade für Stadtpläne gedacht und den Output gibt es als PNG, SVG und PDF. Da müsstest du dann natürlich noch die Hydranten dazubasteln.

Ich habe mir dazu Ubuntu in einer virtual box installiert, hat etwas gedauert, bis alle benötigten Tools und Bibliotheken installiert waren, aber ab da war alles sehr einfach. Ich finde es sehr angenehm, dass Style-File ganz eifach mit einer Tabellenkalkulation zu editieren. Das Ergebnis kann man sofort begutachten.

@MHohmann: Sei mir nicht böse, aber MapOsMatic ist vollkommen Murks. Und für mein Anliegen erst recht. Der verwendet weder bessere Rohdaten, noch kann der das “Raster” vernünftig über die Karten legen, noch kann der vernünftige Karten speichern, noch kann ich den Ausschnitt sauber wählen, noch kann habe ich die Möglichkeit einen Maßstab anzeigen zu lassen, oder die Möglichkeit Hydranten einzuzeichnen.

@PHerision: Das klingt nach einer sehr guten Lösung. Kannst Du hier mal ein Demo-Screen posten, was alles möglich ist? Die Demoseiten im Wiki sehen alle etwas “langweilig” aus (Wenig Daten und wenig Farben auf den Bildern im Vergleich zu Mapnik).

Da ich mir vor Kurzem auch eine kleine Wanderkarte meines Heimatortes erstellt habe (A1, Maßstab 1:12.000), möchte ich Dir meine verwendete Software nicht vorenthalten:

  • JOSM (gewünschten Kartenbereich herunterladen, bearbeiten und in eine Datei speichern)
  • Maperitive (Karte nach den eigenen Wünschen rendern, hierzu muß man sich allerdings etwas einlesen)
  • Gimp (POI-Logo’s und für Dinge die Maperitive (noch) nicht darstellt, bei mir waren es die Markierungen der Wanderwege)

Am längsten habe ich für die Erstellung des Style-Files (rules) benötigt.

Das ist wohl der am leichtesten zu gehende Weg!

Wie schon geschrieben mit JOSM gewünschten Bereich laden (kann auch ruhig etwas mehr sein (wenn der Server sich nicht grad sperrt).

In Maperative nach den eigenen wünschen Rendern lassen - in deinem Fall müsste auch die Darstellung für “target : gps waypoints” angepasst werden ICON usw…

Nun kann man auch GPX-Dateien einbinden - also die Daten als GPX-Waypoints anlegen.

Den gewünschten Bereich in Maperative als SVG-Datei speichen.

Die SVG-Graphik kann man z.B. mit Inskape noch nachbearbeiten und dann im gewünschten Graphikformnat abspeichern.

Gruß

Ich habe vorhin Mapnik installiert, stehe aber gerade vor dem Schlauch, da ich ein OSM-File habe und in den Mapnik Demos nur Demofiles im Binärformat. Aber das Bett ruft so langsam.

Maperitive klingt genial. Ich habe es gerade Installiert und binnen kürzester Zeit Tiles “Style Urbanight” erstellt, die aussehen wie Mapnik. Jetzt stehe ich auf dem Schlauch, nutzt Mapernative im Hintergrund Mapnik, oder woher kommen die gleichen Tiles?

Kann mir jemand nen Tipp geben, wie ich die Details der Zoomstufen erhöhen kann? Denn wenn ich auf “Create Tiles” klicke, habe ich in den Tiles die gleichen Probleme. Zoomstufe 16 sieht gut aus was die Größen betrifft, ist aber total Pixelig. Zoomstufe 18 hat alle Details die ich mir wünsche, aber viel, viel zu klein alles.

EDIT1: Kann es sein, daß Maperitive auch nur Mapnik-Tiles aus dem Hintergrund lädt? Zumindest zeigt er mir viel mehr an als mein OSM-File beinhaltete.

Edit2: Ich habe die Styles-Datei im Editor bearbeitet und es damit geschafft Icons für Hydranten einzublenden und auch Wege breiter zu zeichnen. Ich glaube, damit sollte eine optimale Karte möglich sein, wenn ich Zoomlevel 18 oder gar 19 nutze und dort alles viel größer anzeigen lasse.

Edit3: Okay, Maperitive lädt im Hintergrund die Mapnik-Tiles und malt selber was drüber. Zoomstufe 19 wird erstellt, indem Zoomstufe 18 von Mapnik gestrecht wird. Eine höhere Auflösung hat also nur das, was selber neu gezeichnet wird.

Da maperative wohl so etwas wie http://beta1234.com.sunflower.arvixe.com/maps/ rendern kann. Kann es auch ganze Karten rendern ohne das es die Mapnik tiles benoetigt.

Da ich maperative aber selbst noch nicht verwendet habe, kann ich leider nicht sagen wie es geht. Sieht aber sehr beeindruckend aus.

Maperative kann andere Karten im Hintergrund darstellen. Die Hintergrundkarte muss aber nicht von OSM sein und kann auch ganz abgeschaltet werden. Das dient mMn vor allem der Orientierung und gegebenfalls auch dem Vergleich. Die Hintergrundkarte (Raster-Tiles) kann natürlich nicht besser aufgelöst sein, als es der entsprechende Server hergibt. Erhöht man den Zoomlevel über das Maß der Hintergrundkarte, müssen die Tiles eben skaliert werden.

@amm: Ein Vorteil von Maperative ist, die Tatsache, dass Höhendaten eingearbeitet werden können. Da muss man allerdings genau auf die Lizenz der Höhendaten achten. Nicht alle sind wie der Original SRTM Daten Public Domain, manche sind Non-Commercial, was sich mit den OSM Bedingungen beißt. Für eine private Anwendung spielt das keine Rolle, aber sobald man die erzeugten Karten veröffentlicht, kann das zum Problem werden.

Edbert (EvanE)

Na gut, so viel hab ich damit noch nicht rumprobiert - vielleicht sind meine Ansprüche etwas bescheidener :wink: Ich hätte da wahrscheinlich die SVG-Datei genommen und bearbeitet (z.B. das Raster rausgenommen und die POIs reingesetzt), wobei ich aber dazu sagen muss, dass ich ohnehin viel mit SVG arbeite.

In deinem Fall wirst du dann wohl um das selbst Rendern der Tiles mit Mapnik o.ä. und einem selbst angepassten Style nicht herum kommen… Alles, was nur fertige Tiles herunterlädt, wird ja wieder zum gleichen Problem führen.

Maperative greift nach dem Start auf die Mapnik-Tiles zu.

Wie schon geschrieben kann man das als Orientierung und Starthilfe für die Erstnutzung sehen.

Um auf die eigen Daten zuzugreifen muß man diese mit z.B : load-source PFAD/MeinOrt.osm
in Maperative laden , dann kann man die Mapnik-Karten abschalten.

Dann ist das auch kein Problem mehr Zoomstufen bis zu 20 ohne Pixelierung anzuzeigen.

Wie kann Maperative Hausnummern anzeigen?

Gibt es eine Preset-Datei für Maperative welche den Mapnik-Style so weit nachahmt, daß man kaum noch Unterschiede erkennt?

Mein Ansatz wäre nun mit QGIS aus der PostGIS die Karte selbst zu erstellen, reduziert auf relevante Informationen mit spezieller Signatur für die Hydranten. Wenns sein soll auch ein Openlayers-Layer als Hintergrund und nur die Hydranten als dicke Punkte. QGIS kann dann alles schön ausdrucken.

Haussnummern anzeigen:
Du mußt den Text vom “name”-tag auf “addr:housenumber” umbiegen. Wie dies zu machen ist, steht hier im Maperitive-Handbuch, z.B.:


features
    areas
        building : building=yes
properties
    ...
rules
    target : building
        define
            line-style : none
            fill-color : #BCA9A9
        draw : fill
        define
            text : @if(addr:housenumber, addr:housenumber)
            text-color : #ae4242
            min-zoom : 13
            font-size : 10
        draw : text

Mapnik-Hintergrund abstellen:
Ich würde Dir empfehlen Deine OSM-Datei z.B. in einen Unterordner von Maperitive zu kopieren, sagen wir die Datei “Hydrantenkarte.osm” befindet sich im Unterordner “MeineKarten”. Nehmen wir außerdem an, dass sich im Unterorder “Rules” Deine eigene Rules-Datei “Hydrantenkarte.mrules” lautet. Dann würde ich mir das folgende kleine Script/Textdatei zusammenschustern:


clear-map
use-ruleset location=Rules/Hydrantenkarte.mrules as-alias=Hydrantenkarte
apply-ruleset
load-source MeineKarten/Hydrantenkarte.osm

Dies z.B. als “Script.txt” direkt ins Maperitive-Verzeichnis abspeichern und nun nur noch damit Maperitive starten. D.h. eine neue Verknüpfung von der “Maperitive.exe” anlegen, diese Verknüpfung um das Script erweitern, so dass dies Maperitive gleich beim Start aufruft, z.B.:


C:\Programme\Maperative\Maperitive.exe Script.txt

Wie schon gesagt, der ganze Spaß ist im Handbuch nachzulesen, dort habe ich auch die meiste Zeit verbracht. Mal abgesehen davon, dass es auch eine Weile dauert bis man sich die eigenen Logo’s mit Gimp gebastelt hat. Anfangs waren die einfach zu klein und sahen dann viel zu verwaschen beim Ausdruck aus. Ich wünsche Dir viel Erfolg und viel Spaß mit dem Projekt.

Die Hydranten sind ja offenbar in OSM schon eingetragen. Also könnte man einfach z.B. in JOSM den Bereich laden und in Maperitive laden.

Dann das Style File ergänzen:


features
[..]    
    points
[..]
        hydrant : emergency=fire_hydrant AND fire_hydrant:type=pillar
        wasserstelle : emergency=fire_hydrant AND fire_hydrant:type=pond
[..]



rules
[..]
    target : hydrant
        define
            shape : circle
            shape-size: 7
            fill-color: yellow
            line-color: red
        draw : shape
    target : wasserstelle
        define
            shape : circle
            shape-size : 7
            fill-color : lightblue
            line-color : red
        draw : shape

Kannst du dann natürlich nach deinen Bedürfnissen anpassen.

Wie man Hausnummern anzeigt wurde ja schon erklärt. Sollte es auch einzelne Hausnummern geben, die nicht an einem building hängen, müsste man noch ein Point-Feature hinzufügen.

@fireball2: Danke für den Tipp mit den Hausnummern und mit der Script-Datei. Das würde alles extrem vereinfachen.

@dt2: Ja, die Hydranten sind schon eingetragen in JOSM. In meinem ersten Posting steht, wie ich das aktuell mache. In die Software dort gebe ich aktuell nur noch die Center-Koordinaten, die Papiergröße und den Maßstab an. Den zu ladenden Bereich, die benötigten Kacheln usw. bestimmt die Software von alleine. Für die Hydranten, die in Mapnik ja fehlen, werden die Kreise über die Karte gemalt. Ich habe heute die Software um eine DPI-Anzeige erweitert. 152 DPI habe ich im Maßstab 1:4200 auf einem 45x30 Papier. Nicht gerade rekordverdächtig die Zahl.

Gibt es denn schon einen Mapnik-Style für Maperitive? Es muss ja nicht jeder das Rad neu erfinden und die ganze Style-Datei selber neu schreiben. Denn ich behaupte mal, daß neben den Hausnummern doch noch so einiges anderes in beiliegenden Style-Dateien fehlt.

Am Ende müsste ich hier “nur” die die Schriftgrößen für alles verdoppeln oder vervierfachen. Verdoppeln hätte bei Zoom 18 den Vorteil, daß Straßen so Pi*Daumen die echte Breite einnehmen. In Kombination mit gezeichneten Häusern passt das ganz gut. Im Maßstab 1:4000 natürlich nur.

Dann wäre der Ablauf relativ einfach:

  • OSM-File runterladen
  • Maperative erstellt die Kacheln
  • Meine Software packt die Kacheln zu einem Bild zusammen und malt die notwendigen legenden drüber (Außer, sowas kann Maperitive auch).

Hast Du schon mal versucht die Karte zu exportieren? Ich bin mir nämlich nicht sicher, ob da auch dieser Mapnik-Hintergrund mit exportiert wird. Also ich hatte mir damals für meine Zwecke eine bereits vorhandene style-Datei umgebaut bzw. mir aus den verschiedenen Beispielen das Beste “zusammenkopiert”.

Zum Maßstab:
Also ich würde mich an Deiner Stelle mit dem Maßstab nicht so festlegen, der ergibt sich automatisch. Außerdem ist der in Maperitive angezeigte Maßstab von der Auflösung Deines Bildschirms (90dbi?) abhängig (siehe hier). Wenn Du’s dann mit 300dbi ausdruckst stimmt der Maßstab schon nicht mehr. Ich würde an Deiner Stelle das Pferd anders herum aufzäunen. Überlege Dir lieber auf welches Papierformat später die Karte ausgedruckt werden soll und welcher Kartenausschnitt (GPS-Koordinaten) von Dir gewünscht wird. Soll die Karte z.B. auf A1 ordentlich ausgedruckt werden, dann wäre ca. folgende Bildgröße erforderlich damit’s nicht verpixelt aussieht:
Breite: 84,1cm : 2,54 = 33.1" x 300dbi = 9.933 Pixel
Höhe: 59,4cm : 2,54 = 23.4" x 300dbi = 7.016 Pixel

Jetzt kannst Du die Karte in eine jpg,png oder svg-Datei exportieren z.B. so:


export-bitmap file=Hydrantenplan.PNG scale=6.2 map-scale=12000 bounds=11.0377,49.0009,11.1038,49.0292

Die Koordinaten (bounds) mußt Du natürlich noch anpassen.
Jetzt würde ich solange mit “scale” und “map-scale” herumprobieren, bis die oben errechnete Bildgröße erreicht wird und alles ordentlich lesbar ist. Denke aber daran, wenn Du “scale” einsetzt, dass alle Objekte (z.B. Straßen) entsprechend breiter/größer dargestellt werden und dadurch eventuell danebenliegende Objekte (Häuser, Hydranten, Bäche, etc.) verdeckt werden können. Daher diese Objekte drüber legen (Layer) oder per JOSM verschieben, aber dann bitte nicht zu OSM hochladen sondern nur lokal speichern!
Sollten dann immernoch einzelne Objekte oder Texte zu klein/groß sein, dann kann man diese in der Rules-Datei entsprechend anpassen (Linien, Texte, POI’s).