Moin,
ich bin gerade dabei eine Landkarte von Hamburg für einen Ausdruck vorzubereiten (ca. 1x1m Papierkarte 300 dpi oder 400 dpi).

Als Grundlage habe ich den deutschen Style genommen[1]. Diese nach mit dem Script von Holger Schöner[2] den Scale angepasst, so das die Schrift jetzt auch für den Ausdruck halbwegs okay ist, nach Mapnik2 gewandelt (upgrade_map_xml.py), und ein paar Attribute rausgeworfen/ergänzt.

Mir ist klar, das es ein Spezialthema ist und ich werde sicherlich auch in der Mapnik-ML nach Lösungen fragen, wenn ich hier nicht weiter komme, aber ich denke das Ziel eine Papierkarte zu machen, haben ja wahrscheinlich doch einige Mapper.

== Problem 1: Straßennamen sind ein MUST ==

Ich möchte gerne, alle Hamburger Straßen auf der Landkarte lesbar haben.

Wenn ich nun eine Regel wie diese hier habe:

<TextSymbolizer fill="rgb(0,0,0)" fontset-name="book-fonts" halo-radius="2" placement="line" size="16" spacing="300">[name]</TextSymbolizer>

Dann wird der Name nur dann geschrieben, wenn die Straße lang genug ist, das der Name dort auch rein passt.

Das ist zwar bei 95% der Straßen der Fall, aber leider nicht immer.

Kann ich irgendwie eine Regel machen, die dann greift, wenn der Text nicht geschrieben werden konnte.

Ich stell mir sowas vor:

<IfOkay><TextSymbolizer fill="rgb(0,0,0)" fontset-name="book-fonts" halo-radius="2" placement="line" size="16" spacing="300">[name]</TextSymbolizer><else/> <TextSymbolizer fill="rgb(0,0,0)" fontset-name="book-fonts" halo-radius="2" placement="line" size="10" spacing="300">[name]</TextSymbolizer><else/> <TextSymbolizer fill="rgb(0,0,0)" fontset-name="bold-fonts" halo-radius="2" minimum-distance="16" size="10" spacing="750">[name]
<else/>
<TextSymbolizer fill="rgb(0,0,0)" fontset-name="bold-fonts" halo-radius="2" placement="line" size="10" spacing="750">[num]</TextSymbolizer>
</IfOkay>

Also, wenn ein Straßenname mit 16pt nicht passt, nimm einen mit 10pt und wenn das auch nicht passt, schreibe ihn in 10pt und wenn das auch nicht passt, schreibe den Straßennamen in der Nähe mit 16pt, und wenn das auch nicht geht, schreibe das Attribut "num" hin.

Oder gibt es zumindest die Möglichkeit sowas irgendwie in ein Logfile zu schreiben, das ich weiß, welche Straßen fehlen?

== Problem 2: Symbole in SVG ==

In Mapnik2 ist es ja anscheind möglich die Symbole in SVG einzubinden.

Das hätte den Vorteil, das sie schön skalieren, wenn man wie ich den Scale verändert.

Hat das schon jemand gemacht? Leider liegen im Symbols Verzeichnis, bis auf wenige Ausnahmen ja nur PNG Dateien.

Ich habe die eigentliche Quelle zwar schon gefunden [3][4], kapituliere aber gerade ein wenig vor der Menge der Symbole und der nicht einheitlichen Bennenung.

BTW: Gibt es eine einfache Möglichkeit festzustellen, welche Icons für meinen Ausschnitt wirklich genutzt werden?


== Problem 3: Marker ==

In die Landkarte sollen ca. 200 Numerierte Marker eingefügt werden. Dabei gibt es sicher den Fall, das ein paar Marker recht dicht beieinander liegen. Trotzdem soll möglichst der Punkt genau getroffen werden.

Meine Vorstellung wäre, das man den Punkt nur als Punkt einträgt und die Nummer dorthin schreibt, wo Platz ist und mit einer Linie verbindet.

Hat da jemand eine Idee, wie man das in Mapnik umsetzen kann?

Die Lage der Marker erfahre ich vermutlich erst recht spät im Herstellungsprozess, also wäre mir dort ein automatisches Verfahren hier sehr recht (ist fast zwingend).

Viele Grüße

Sven


[1] http://openstreetmap.de/germanstyle.html

[2] http://www.ancalime.de/download
        /20100305_FOSSGIS_HolgerSchoener_KartenImDruck_Praesentation.pdf
[3] http://wiki.openstreetmap.org/wiki/Map_Icons
[4] http://www.sjjb.co.uk/mapicons/

_______________________________________________
Talk-de mailing list
Talk-de@openstreetmap.org
http://lists.openstreetmap.org/listinfo/talk-de

Antwort per Email an