Mapnik-Label öfters wiederholen

Hallo,

ich habe mal wieder eine Frage zu meinem Feuerwehr-Projekt: Wie kann ich Mapnik anweisen die Beschriftungen von Straßen, Wegen, etc. öfters zu wiederholen als in der Basiseinstellung?

Ich habe folgenden Wunsch:
In diesem Kartenausschnitt http://ffebg.no-ip.org:911/osm/slippymap.html?zoom=19&lat=49.55279&lon=8.04596&layers=0B0 ist die “Uhlandstraße” zu sehen. Speziell in diesem Ortsteil ist es mit dem Auffinden von Hausnummern (vor Ort) etwas schwierig, da die Straßen nur als Zufahrt dienen und die eigentlichen Häuser nur an Wegen zwischen den Straßen stehen. Dazu kommt noch dass aufgrund von anderen angrenzenden Straßen plötzlich der Straßen- bzw. Fußwegname wechselt. Wenn es jetzt also längere Ways gibt die nicht durch irgendwas unterbrochen werden schreibt Mapnik für unseren Anwendungsfall nicht oft genug den Namen des Weges hin; sprich wenn der Weg z.B. um die Ecke geht ist er danach nicht nochmals beschriftet (in meinem Beispiel ist das bei den Hausnummern 21 bis 24 so). Natürlich könnte man sagen: “Wenn man da zweimal draufschaut sieht man das doch!”, aber die ganze Sache soll halt “feuerwehrsicher” sein, und das kommt noch nach “idiotensicher” :smiley:
Zur Veranschaulichung: Man soll es möglichst einfach erkennen können, auch wenn man die (ausgedruckte) Karte nachts um 3 auf der Alarmfahrt bei schlechtem Licht in den Händen hält und vor 5 Minuten noch im Bett lag.

In der Mapnik-Hilfe zum Thema TextSymbolizer habe ich etwas in die Richtung gefunden: https://github.com/mapnik/mapnik/wiki/TextSymbolizer, allerdings um genau das Gegenteil zu bewerkstelligen, nämlich den Mindestabstand zwischen zwei Beschriftungen anzugeben. Ich will ja aber eigentlich einen Maximalabstand definieren (oder?).
Na ja, allerdings ergibt sich da noch ein zweites Problem: Wo gebe ich denn die TextSymbolizer-Optionen an? In der XML-Datei für die Renderregeln? Wenn ja, wo bzw. wie? Oder müssen diese Optionen gar eincompiliert werden (kann ich mir aber eigentlich nicht vorstellen…)?

Viele Grüße und schonmal Danke,

Christoph

Hallo Christoph

Erst mal ein Wow für die Karte bis Z20.

Zu deinem Mapnik-Problem kann ich dir nicht helfen. Aber man kann an den Daten etwas machen, sprich Wege an passenden Stellen teilen. Bei deinem Beispiel wäre das z.B. die Ecke bei Haus 21. Ebenso könnte man den Fußweg der die Straße überquert an eben dieser Straße aufteilen.

Das ist natürlich erst einmal eine Frage der Größe. Bei einem übersichtlichen Ortsteil wie Steinborn kann das ein Einzelner noch ganz gut per Hand erledigen. Wenn man eine Ort wie Eisenberg plus die umliegenden Orte hat, wird das schon ziemlich aufwändig. Wenn man an einen ganzen Kreis denkt wäre mehrere Mitstreiter sinnvoll.

Auf der anderen Seite gibt es etliche Orte in eurer Umgebung, die sehr gut erfasst sind. Will sagen das ist keine unmögliche Aufgabe.

Edbert (EvanE)

@EvanE: Wäre das nicht “Taggen für den Renderer” ?

Könnte Line_placement das sein was du suchst?:
http://old.nabble.com/Repeated-labels-on-polygons–td19987434.html

Sehe ich auch so, ausser man findet einen anderen Grund zum Splitten (maxspeed, incline (in ‰ auf 100m genau?), Relationen, surface (gerade in kleineren Strassen oft wechselnd), …)

schon mal mit spacing 1 probiert? nee, erstmal müssen ja die unteren Fragen geklärt werden :wink:

ja, genau hier. aber wie? muttu suchen.(*)

nee.

Gruss
walter

*) sorry, bin zu lange raus aus dem Thema. Aber zumindest die grobe Richtung sollte dir weiterhelfen

Jain.
Zu taggen natural=beach für ein Sandhindernis auf einem Golfplatz (damit es bei Mapnik gelb gezeichnet wird), wäre “Taggen für den Renderer”. Einen Weg (aus welchen Gründen auch immer) zu teilen, ist ein Sache, die für alle Renderer gleich ist.

Konkret ist bei meinen zwei Beispielen das Erste (teilen am 90° Knick) weitgehend willkürlich.
Beim zweiten Beispiel (trennen an der Residential) halte ich das aber auch sachlich für angemessen.
Zumindest ich mache das bei einer Neuerfassung sowieso.

@rayquaza:
Es gibt keine Regel bei OSM, dass Wege möglichst lang sein sollen.
Von daher kann man Wege dort teilen, wo es einem sinnvoll erscheint.

Edbert (EvanE)

Das ist ja auch wieder ein Grund :wink:
Super-kurz gestückelte Wege sind beim Relationen zusammenstellen manchmal etwas nervig, aber Abbiegebeschränkungen sind natürlich ein sehr guter Grund zum Teilen…

Bin mir nicht sicher, aber es könnte diese Stelle im osm.xml sein:

https://github.com/openstreetmap/mapnik-stylesheets/blob/master/osm.xml#L3226

Schließe mich Walter an, dass es vermutlich hilft, das spacing=“400”/“300” zu verkleinern.

Gruß,
Norbert

Perfekt, das wars. Ich habe nun bei allen Ways die als highway getaggt sind für spacing=“150” angegeben (teilweise musste ich das spacing-Argument auch erst einfügen da es nicht vorhanden war). Genauso hab ich mir das vorgestellt, vielen Dank!

Nur nicht wundern wenn die Kacheln jetzt größtenteils noch nicht wieder neu vorgerendert sind, habe das Tile-Verzeichnis komplett geleert und da gerade keinen Antrieb zu :wink:

Viele Grüße,

Christoph