x

Offset Ways


  1. Offset Ways · gemu12 (Gast) · 14.05.2012 10:13 · [flux]

    Hallo zusammen,

    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.

    Vielen Dank für Eure Hilfe

    ;-) g e r d


    • Re: Offset Ways · Bernhard Hiller (Gast) · 14.05.2012 19:22 · [flux]

      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.


    • Re: Offset Ways · fkv (Gast) · 15.05.2012 07:35 · [flux]

      gemu12 wrote:

      Sobald man jedoch den Zoom verringert, liegen die Ways übereinander und man kann nur noch eine Spur erkennen.

      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 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.


    • Re: Offset Ways · maxbe (Gast) · 15.05.2012 08:10 · [flux]

      fkv wrote:

      Das nennt sich Verdrängung. Mapnik kann das nicht.

      Ich habe neulich das Gerücht gehört, dass mapnik2 Wege mit seitlichem Versatz rendern kann.


    • Re: Offset Ways · gemu12 (Gast) · 15.05.2012 13:40 · [flux]

      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.

      Interessant!!! Hast Du irgendwelche Links oder Beispiele?


    • Re: Offset Ways · ikonor (Gast) · 15.05.2012 14:28 · [flux]

      Ich weiß nicht auf was Sven sich in oben verlinkter Mail bezieht, ich hatte mir zu diesem Thema mal folgenden Issue notiert:
      Issue #180: Parameter for line symbolizer to offset line to one side

      Der ist inzwischen zwar erledigt, soll aber wohl erst mit diesem Folge-Issue freigegeben werden:
      Issue #927: enable parallel/offset lines using chainable coordinate transformations

      Gruß,
      Norbert


    • Re: Offset Ways · fkv (Gast) · 15.05.2012 16:09 · [flux]

      gemu12 wrote:

      Interessant!!! Hast Du irgendwelche Links oder Beispiele?

      Beispiele finden sich in kommerziellen Karten und in Kartografielehrbüchern. Wenn du aber Algorithmen oder gar deren Implementierungen meinst, muss ich dich enttäuschen.


    • Re: Offset Ways · Mondschein (Gast) · 17.05.2012 00:40 · [flux]

      maxbe wrote:

      Ich habe neulich das Gerücht gehört, dass mapnik2 Wege mit seitlichem Versatz rendern kann.

      Ist damit so etwas gemeint oder kann das Mapnik 1 auch schon?
      http://www.transportparadise.co.uk/cycl … &layers=B0
      Dort werden z.B. cycleway:left=lane oder lcn:left=lane am Straßenrand gezeichnet.

      Gruß,
      Mondschein


    • Re: Offset Ways · ikonor (Gast) · 17.05.2012 10:46 · [flux]

      Sehr schöne Karte! Ist allerdings mit Maperitive gemacht.

      Hab dazu diese Aussagen gefunden (hat mich jetzt interessiert):

      Mapnik can't handle one-sided cycle lanes (yet). [...] Maperitive can

      http://gis.19327.n5.nabble.com/Cycle-tr … 44003.html (vom 16.04.2012)

      “Oxford Bus & Cycle Map” from Richard Mann [...] made [...] using Maperitive

      http://braincrunch.tumblr.com/post/2237 … p-in-print

      Gruß,
      Norbert


    • Re: Offset Ways · Mondschein (Gast) · 17.05.2012 13:04 · [flux]

      ikonor wrote:

      Sehr schöne Karte! Ist allerdings mit Maperitive gemacht.

      Schade.
      Hoffentlich kann das Mapnik 2 bald (falls es das nicht doch schon kann).

      Gruß,
      Mondschein


    • Re: Offset Ways · Mondschein (Gast) · 22.05.2012 10:39 · [flux]

      Top Ten Tasks
      (...)
      5) push lines apart so that there is a minimum distance between them (nearly done)

      Quelle: https://github.com/mapnik/mapnik/wiki/Code-sprint

      Möglicherweise kannst du das dann verwenden.

      Gruß,
      Mondschein


    • Re: Offset Ways · de_muur (Gast) · 23.05.2012 06:20 · [flux]

      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.

      Gruss
      Torsten