wir erstellen Verkehrskarten mit dem Mapnik. Dabei ergibt sich folgendes Problem.
In Abhängigkeit von der Verkehrslage färben wir die Ways, die zu bestimmten Straßen, gehören ein (z.B. Stau rot).
Bei vielen Straßen gibt es Ways für beide Fahrtrichtungen. Deshalb würden wir gern die Verkehrssituation, auf beiden Ways (Spuren) unabhängig darstellen.
In welcher Form die Darstellung erfolgt, ist noch offen. Die einfachste Möglichkeit wäre aus unserer Sicht, die Spuren getrennt darzustellen.
Bei hohen Zoomstufen, in denen die Ways auf der Karte getrennt erscheinen, ist das kein Problem. Sobald man jedoch den Zoom verringert, liegen die Ways übereinander und man kann nur noch eine Spur erkennen. Das Problem tritt natürlich immer auf.
Wir hoffen aber, das es möglich ist, das Rendering von Mapnik so einzustellen, daß man die Spuren auch getrennt darstellen kann, wenn dies vom Zoom her eigentlich nicht mehr geht. Das wäre z.B. durch die Benutzung eines Offsets zwischen den Ways der beiden Spuren denkbar. Wir verwenden für das Rendering den LineSymbolizer. Wie könnte man damit den beschriebenen Offset implementieren? Falls unser bisheriger Stylesheet in dem Zusammenhang interessant wäre, könnten wir diesen auch in die Liste posten.
Interessant wäre natürlich auch, ob es in Zukunft solche Offset Darstellungen im Mapnik geben soll.
Dazu müßte der Renderer erkennen können, daß die beiden “ways” zur selben Straße gehören, und nur in Gegenrichtung verlaufen. Dann könnte man die Spuren um ein paar Pixel paralell zur Mittellinie verschoben darstellen.
Ob Mapnik in der Lage ist, den antiparallelen Verlauf zu erkennen, weiß ich nicht. Bzgl. mkgmap habe ich mal auf der dortigen Mailing-Liste nachgefragt und nie eine Antwort erhalten - geht dort wohl nicht.
Das nennt sich Verdrängung. Mapnik kann das nicht. Wenn ihr das beruflich macht, dann könnt ihr das selber programmieren, andernfalls würde ich mir den Aufwand nicht antun.
Beispiele finden sich in kommerziellen Karten und in Kartografielehrbüchern. Wenn du aber Algorithmen oder gar deren Implementierungen meinst, muss ich dich enttäuschen.
Bei Garmin-Karten kann man den gewuenschten Effekt erreichen, in dem man mit der Farbe “Transparent” arbeitet. D.h. wenn man je nach Fahrtrichtung jeweils die halbe Breite transparent zeichnet, so kann man dann zwei Wege uebereinander Malen und das Endergebnis sieht wie zwei benachbarte Wege aus.
Keine Ahnung, ob der Trick auch bei Mapnik funktioniert.