\documentclass[tikz]{standalone} \usepackage{tikz} \usepackage{fontspec} \usepackage{contour} \setmainfont{Atkinson Hyperlegible} \usetikzlibrary{shapes.geometric} \usetikzlibrary{calc} \usetikzlibrary{positioning} \usetikzlibrary{arrows.meta} \definecolor{one}{RGB}{243,155,154} \definecolor{two}{RGB}{176,0,68} \definecolor{three}{RGB}{213,173,0} \definecolor{four}{RGB}{227,0,11} \definecolor{five}{RGB}{0,150,94} \definecolor{six}{RGB}{149,107,37} \definecolor{seven}{RGB}{255,204,0} \definecolor{eight}{RGB}{225,117,0} \definecolor{nine}{RGB}{147,194,59} \definecolor{ten}{RGB}{166,15,128} \definecolor{fifteen}{RGB}{247,171,99} \definecolor{sixteen}{RGB}{94,107,175} \definecolor{twentyone}{RGB}{227,0,11} \definecolor{twentytwo}{RGB}{253,195,0} \definecolor{twentythree}{RGB}{228,142,0} \definecolor{twentyfour}{RGB}{140,29,117} \definecolor{twentysix}{RGB}{243,155,154} \input{../shapes.tex} \pgfdeclarelayer{bg} \pgfdeclarelayer{lines} \pgfdeclarelayer{stops} \pgfdeclarelayer{labels} \pgfdeclarelayer{legend} \pgfsetlayers{bg,lines,stops,labels,main,legend} \contourlength{.2ex} \begin{document} \begin{tikzpicture}[ river/.style = { line width=0.5cm, cyan!50, rounded corners=0.5cm, -{Triangle Cap}, }, river2/.style = { line width=0.8cm, cyan!50, rounded corners=0.5cm, -{Triangle Cap}, }, railway line/.style = { color=gray, line width=0.075cm, rounded corners=0.5cm, }, railway/.style = { railway line, {Latex[length=5mm]}-{Latex[length=5mm]}, }, stop/.style = { rounded corners=0.1cm, line width=0.05cm, fill=white, draw, shape=stop, anchor=center, minimum height=0.2cm, }, stop1/.style = { stop, minimum width=0.2cm, }, stop2/.style = { stop, minimum width=0.4cm, }, stop3/.style = { stop, minimum width=0.6cm, }, stop4/.style = { stop, minimum width=0.8cm, }, stop5/.style = { stop, minimum width=1.0cm, }, stop6/.style = { stop, minimum width=1.2cm, }, stop7/.style = { stop, minimum width=1.4cm, }, line/.style = { line width=0.15cm, rounded corners=0.1cm, }, maybe line/.style = { line, line width=0.1cm, }, label/.style = { font=\scriptsize, }, line name/.style = { label, color=white, minimum width=1em, minimum height=1em, inner sep=0pt, }, ] \begin{pgfonlayer}{bg} % \draw[help lines, color=gray!10] (-10, -15) grid[step=0.1] (10, 10); % \draw[help lines, color=gray!50] (-10, -15) grid (10, 10); \draw[river] (16,-9.2) -- (7.8,-1) -- (1.8,5) -- (-5,5) -- (-5,10) ; \draw[river2] (-1.5,-12.3) -- (-3.8,-10.0) -- (-1.5,-7.5) % -- (-1.5,-10) -- (-1.5,-4.5) -- ++(-3.5,3.5) -- ++(0,12.5) ; \end{pgfonlayer} \def\rad{2.8} \begin{pgfonlayer}{stops} % Quadrate \node[stop5, rotate=-45] (ParadeplatzW) at ($(45:-0.55)+(135:-0.5)$) {}; \node[stop4, rotate=45] (ParadeplatzE) at (135:-1.15) {}; \node[stop4, rotate=45] (Wasserturm) at (135:-\rad+0.1) {}; \node[stop4, rotate=45] (Strohmarkt) at (135:-2) {}; \node[stop4, rotate=45] (Rathaus) at (135:\rad/2) {}; \node[stop4, rotate=45] (Rheinstr) at (135:\rad-0.3) {}; \node[stop6, rotate=-45] (Marktplatz) at ($(45:\rad/2)+(135:-0.4)$) {}; \node[stop6, rotate=-45] (Abendakademie) at ($(45:\rad-0.2)+(135:-0.4)$) {}; \node[stop5, rotate=-45] (Schloss) at ($(45:-\rad+1)+(135:-0.5)$) {}; \node[stop5, rotate=45] (Universität) at ($(45:-\rad)+(135:-0.9)$) {}; \node[stop3, rotate=90] (Nationaltheater) at (0:\rad+0.8) {}; \node[stop2, rotate=-25] (Rosengarten) at (-25:\rad+0.4) {}; \node[stop3, rotate=60] (Kurpfalzbrücke) at (60:\rad+0.3) {}; \node[stop3, rotate=90] (MVV Hochhaus) at (90:\rad+0.3) {}; \node[stop3, rotate=120] (Dalbergstr) at (120:\rad+0.3) {}; \node[stop4, rotate=-45] (Kunsthalle) at ($(135:-\rad-0.4)-(45:0.6)$) {}; \node[stop7, rotate=-45, anchor=one half, draw=none, fill=none] (Hauptbahnhof E) at ($(Kunsthalle.one half)-(45:1.8)$) {}; \node[stop7, rotate=-90, anchor=one half] (MA Hauptbahnhof) at ($(Kunsthalle.one half)-(45:1.8)$) {}; \node[stop7, rotate=-135, anchor=one half, draw=none, fill=none] (Hauptbahnhof W) at ($(Kunsthalle.one half)-(45:1.8)$) {}; \node[stop4, rotate=45] (Tattersall) at ($(Hauptbahnhof E.center)!0.5!(Kunsthalle.center)+(135:-1.1)$) {}; \node[stop3, rotate=-45] (Theresienkrankenhaus) at ($(Nationaltheater)+(0:1.6)+(45:0.7)$) {}; \node[stop1] (Collini-Center) at ($(Abendakademie.three quarter)+(45:1.4)+(135:-1)$) {}; \node[stop1, rotate=45] (Lessingstr) at ($(Collini-Center)+(135:-2.7)$) {}; \node[stop1] (Gewerkschaftshaus) at (20:\rad+0.5) {}; \node[stop1] (Handelshafen) at ($(Rheinstr.three quarter)+(135:0.5)+(180:1.5)$) {}; % \node[stop1, rotate=45] (Fernmeldeturm) at ($(Lessingstr)+(135:-0.8)$) {}; \node[stop1, rotate=45] (Holbeinstr) at ($(Fernmeldeturm)+(135:-0.8)$) {}; \node[stop2, rotate=45, anchor=two half] (Neuostheim) at ($(Holbeinstr)+(135:-0.8)$) {}; \node[stop1, rotate=45] (Duale Hochschule) at ($(Neuostheim.two half)+(135:-0.8)$) {}; % Neckarstadt \node[stop5, rotate=-45] (Alte Feuerwache) at ($(45:\rad+2.8)+(135:-0.1)$) {}; \node[stop2, rotate=45] (Schafweide) at ($(Alte Feuerwache)+(45:0.3)+(135:-1.6)$) {}; \node[stop5, rotate=-45] (Universitätsklinikum) at ($(Schafweide)+(135:-1.8)+(45:0.6)$) {}; \node[stop3, rotate=-45, anchor=two half] (Lange Rötterstr) at ($(Universitätsklinikum.center)+(45:0.8)$) {}; \node[stop3, rotate=-45] (Bonifatiuskirche) at ($(Lange Rötterstr)+(45:0.5)$) {}; \node[stop2, rotate=-45, anchor=two half] (Exorzierplatz) at ($(Bonifatiuskirche.two half)+(45:0.5)$) {}; \node[stop2, rotate=45] (Bibienastr) at ($(Universitätsklinikum.three quarter)+(45:0.4)+(135:-1.0)$) {}; \node[stop2, rotate=90] (Hauptfriedhof) at ($(Bibienastr)-(135:1.0)+(0:0.4)$) {}; \node[stop2, rotate=90] (Pfeifferswörth) at ($(Hauptfriedhof)+(0:0.5)$) {}; \node[stop2, rotate=90] (Neckarplatt) at ($(Pfeifferswörth)+(0:0.5)$) {}; \node[stop1, rotate=45] (Am Aubuckel) at ($(Neckarplatt)+(0:0.3)+(135:-0.6)$) {}; \node[stop1, rotate=45] (Liebfrauenstr) at ($(Am Aubuckel)-(135:0.5)$){}; \node[stop1, rotate=45] (Blücherstr) at ($(Liebfrauenstr)-(135:0.5)$){}; \node[stop1, rotate=45] (Feudenheim Kirche) at ($(Blücherstr)-(135:0.5)$){}; \node[stop1, rotate=45] (Neckarstr) at ($(Feudenheim Kirche)-(135:0.5)$){}; \node[stop1, rotate=45] (Feudenheim) at ($(Neckarstr)-(135:0.5)$){}; \node[stop2] (Carl-Benz-Str) at ($(Alte Feuerwache.center)+(45:0.5)+(90:1.7)$) {}; \node[stop2, above=0.3cm of Carl-Benz-Str] (Neuer Messplatz) {}; \node[stop2, above=0.3cm of Neuer Messplatz] (Herzogenriedstr) {}; \node[stop1, rotate=45] (Neumarkt) at ($(Alte Feuerwache.one half)+(45:0.2)+(135:0.8)$) {}; \node[stop1, rotate=45] (Bgm-Fuchs-Str) at ($(Neumarkt)+(135:0.5)$) {}; \node[stop1, rotate=45] (Neckarstadt West) at ($(Bgm-Fuchs-Str)+(135:0.5)$) {}; % Luzenberg \node[stop2, above=0.3cm of Herzogenriedstr] (Untermühlaustr) {}; \node[stop2, above=0.3cm of Untermühlaustr] (Luzenberg) {}; \node[stop1, rotate=45] (Stolberger Str) at ($(Luzenberg.one half)+(90:0.3)+(135:0.3)$) {}; \node[stop1, rotate=45] (Altrheinstr) at ($(Stolberger Str)+(135:0.5)$) {}; \node[stop1, rotate=45] (Roche) at ($(Altrheinstr)+(135:0.5)$) {}; \node[stop1, rotate=45] (Zellstofffabrik) at ($(Roche)+(135:0.5)$) {}; \node[stop1, rotate=45] (Papyrus) at ($(Zellstofffabrik)+(135:0.5)$) {}; \node[stop1, rotate=45] (Bürstädter Str) at ($(Papyrus)+(135:0.5)$) {}; \node[stop1, rotate=45] (Hanfstr) at ($(Bürstädter Str)+(135:0.5)$) {}; \node[stop1, rotate=45] (Sandhofen) at ($(Hanfstr)+(135:0.5)$) {}; % Waldhof \node[stop1, above=0.4cm of Luzenberg.two half] (Waldhof Bf) {}; \node[stop1, above=0.3cm of Waldhof Bf] (Waldhof Nord) {}; % Schönau \node[stop1, above=0.3cm of Waldhof Nord] (Schönau Siedlung) {}; \node[stop1, above=0.3cm of Schönau Siedlung] (Schönauschule) {}; \node[stop1, above=0.3cm of Schönauschule] (Schönau) {}; % Käfertal \node[stop2, rotate=-45] (Boveristr) at ($(Exorzierplatz)+(45:0.5)$) {}; \node[stop2, rotate=-45] (Käfertal Süd) at ($(Boveristr)+(45:0.5)$) {}; \node[stop2, rotate=-45] (Mannheimer Str) at ($(Käfertal Süd)+(45:0.5)$) {}; \node[stop2, rotate=-45] (Käfertal Bf) at ($(Mannheimer Str)+(45:0.5)$) {}; \node[stop2, rotate=-45] (Bensheimer Str) at ($(Käfertal Bf)+(45:1.2)$) {}; \node[stop1, rotate=-45] (Platz der Freundschaft) at ($(Bensheimer Str.two half)+(45:0.5)$) {}; \node[stop1] (Hochuferstr) at ($(Bonifatiuskirche.one half)+(45:0.4)+(90:0.6)$) {}; \node[stop1, above=0.3cm of Hochuferstr] (Landwehrsteg) {}; \node[stop1, above=0.3cm of Landwehrsteg] (Ulmenweg) {}; \node[stop1, above=0.3cm of Ulmenweg] (Jugendverkehrsschule) {}; \node[stop1, above=0.3cm of Jugendverkehrsschule] (Hessische Str) {}; \node[stop1, above=0.3cm of Hessische Str] (Speckweg) {}; \node[stop1, above=0.3cm of Speckweg] (Herrmann-Gutzmann-Schule) {}; \node[stop1, rotate=45] (Erlöserkirche) at ($(Herrmann-Gutzmann-Schule)+(90:0.4)+(135:0.4)$){}; \node[stop1, rotate=45] (Waldstr) at ($(Erlöserkirche)+(135:0.5)$){}; \node[stop1, rotate=-45] (Carl-Benz-Bad) at ($(Herrmann-Gutzmann-Schule)+(90:0.4)+(45:0.4)$){}; \node[stop1, rotate=-45] (Freilichtbühne) at ($(Waldstr)+(135:0.4)+(45:0.4)$) {}; \node[stop1, rotate=-45] (Waldfriedhof) at ($(Freilichtbühne)+(45:0.5)$) {}; \node[stop1, rotate=-45] (Käfertaler Wald) at ($(Carl-Benz-Bad)+(45:0.5)$) {}; \node[stop2, rotate=45] (Im Rott) at ($(Käfertal Bf.two half)!0.65!(Bensheimer Str.two half)+(135:-1.7)$){}; % Vogelstang \node[stop2, rotate=45] (Vogelstang West) at ($(Im Rott)-(135:1.7)$){}; \node[stop1, rotate=-45] (Potsdamer Weg) at ($(Vogelstang West)+(45:0.7)$){}; \node[stop1, rotate=-45] (Vogelstang Zentrum) at ($(Potsdamer Weg)+(45:0.5)$){}; \node[stop1, rotate=-45] (Vogelstang) at ($(Vogelstang Zentrum)+(45:0.5)$){}; \node[stop1, rotate=-45] (Kiesäcker) at ($(Vogelstang West)-(45:0.5)$) {}; \node[stop1, rotate=-45] (Hölderlinstr) at ($(Kiesäcker)-(45:0.5)$) {}; \node[stop1, rotate=-45] (Talstr) at ($(Hölderlinstr)-(45:0.5)$) {}; \node[stop1, rotate=-45] (Adolf-Damaschke-Ring) at ($(Talstr)-(45:0.5)$) {}; \node[stop1, rotate=-45] (Ziethenstr) at ($(Adolf-Damaschke-Ring)-(45:0.5)$) {}; % Wallstadt \node[stop2, rotate=90, anchor=one half] (Wallstadt West) at ($(Vogelstang West.one half)-(135:0.4)+(0:0.4)$) {}; \node[stop2, rotate=90] (Wallstadt Bf) at ($(Wallstadt West)+(0:0.5)$) {}; \node[stop2, rotate=90] (Wallstadt Ost) at ($(Wallstadt Bf)+(0:0.5)$) {}; \node[stop1] (Heddesheim Bf) at ($(Wallstadt Ost.one half)+(0:0.5)$) {}; % Franklin \node[stop1] (Franklinschule) at ($(Bensheimer Str.one half)+(45:0.2)+(90:0.5)$) {}; \node[stop1, above=0.3cm of Franklinschule] (Franklin Mitte) {}; \node[stop1, above=0.3cm of Franklin Mitte] (Sullivan) {}; % Viernheim % \node[stop1, rotate=-45] (Tivoli) at ($(Platz der Freundschaft)+(45:0.8)$) {}; % \node[stop1, rotate=-45] (Kapellenberg) at ($(Tivoli)+(45:0.5)$) {}; % \node[stop1, rotate=-45] (Viernheim Bf) at ($(Kapellenberg)+(45:0.5)$) {}; % \node[stop1, rotate=-45] (Viernheim Ost) at ($(Viernheim Bf)+(45:0.5)$) {}; % \node[stop1, rotate=-45] (Walter-Gropius-Allee) at ($(Viernheim Ost)+(45:0.8)$) {}; % \node[stop1, rotate=-45] (Freiburger Str) at ($(Walter-Gropius-Allee)+(45:0.5)$) {}; % \node[stop1, rotate=-45] (Blumenstr) at ($(Freiburger Str)+(45:0.5)$) {}; % \node[stop1, rotate=-45] (Stahlbad) at ($(Blumenstr)+(45:0.5)$) {}; % \node[stop1, rotate=-45] (Händelstr) at ($(Stahlbad)+(45:0.5)$) {}; % \node[stop1, rotate=-45] (Weinheim Hbf) at ($(Händelstr)+(45:0.5)$) {}; % Oststadt \node[stop2, rotate=90, anchor=two half] (Werderstr) at ($(Tattersall.two half)+(135:-0.4)+(0:0.4)$){}; \node[stop2, rotate=90, right=0.5cm of Werderstr.center, anchor=center] (Pestallozischule) {}; \node[stop2, rotate=90, right=0.5cm of Pestallozischule.center, anchor=center] (Weberstr) {}; \node[stop2, rotate=90, right=0.5cm of Weberstr.center, anchor=center] (Planetarium) {}; \node[stop2, rotate=-45] (Luisenpark Technoseum) at ($(Planetarium)+(0:0.4)+(45:0.5)$){}; \node[stop2, rotate=-45] (Carl-Benz-Stadion) at ($(Luisenpark Technoseum)+(45:0.5)$){}; \node[stop2, rotate=-45] (Harrlach) at ($(Carl-Benz-Stadion)+(45:0.5)$){}; \node[stop2, rotate=-45] (Lucas-Cranach-Str) at ($(Harrlach)+(45:0.5)$){}; \node[stop2, rotate=-45] (Schwindstr) at ($(Lucas-Cranach-Str)+(45:0.5)$){}; \node[stop1, rotate=45] (Technoseum Süd) at ($(Planetarium.two half)+(0:0.4)-(135:0.8)$){}; \node[stop1, rotate=45] (Fahrlach) at ($(Technoseum Süd)-(135:0.5)$){}; \node[stop1, rotate=45] (Husarenweg) at ($(Fahrlach)-(135:0.5)$){}; \node[stop1, rotate=45] (Ulanenweg) at ($(Husarenweg)-(135:0.5)$){}; \node[stop1, rotate=45] (Gerd-Dehof-Platz) at ($(Ulanenweg)-(135:0.5)$){}; \node[stop1, rotate=45] (SAP Arena Süd) at ($(Gerd-Dehof-Platz)-(135:0.5)$){}; \node[stop1] (S-Bf SAP Arena) at ($(SAP Arena Süd)-(135:0.5)+(0:1.4)$){}; \node[stop1] (Hans-Thoma-Str) at ($(Neuostheim)+(0:0.6)-(90:1.2)$) {}; \node[stop1] (Maimarkt) at ($(Hans-Thoma-Str)-(90:1.2)$) {}; \node[stop1] (SAP Arena) at ($(Maimarkt)-(90:1.2)$) {}; % Schwetzingerstadt \node[stop1] (Kopernikusstr) at ($(Tattersall.two quarter)+(135:-0.4)+(90:-0.7)$) {}; \node[stop2, below=0.4cm of Kopernikusstr, anchor=two half] (Krappmühlstr) {}; \node[stop2, below=0.3cm of Krappmühlstr] (Hochschule) {}; % Neckarau \node[stop1, below=0.4cm of Hochschule.two half] (Lettestr) {}; \node[stop1, below=0.3cm of Lettestr] (Voltastr) {}; \node[stop1, below=0.3cm of Voltastr] (Neckarau Bf) {}; \node[stop2, below=0.4cm of Neckarau Bf, anchor=two half] (Friedrichstr) {}; \node[stop1, rotate=45] (Isarweg) at ($(Friedrichstr.two half)-(90:0.4)-(135:0.4)$) {}; \node[stop1, rotate=45] (Dannstadter Str) at ($(Isarweg)-(135:0.5)$) {}; \node[stop1, rotate=45] (Sandrain) at ($(Dannstadter Str)-(135:0.5)$) {}; \node[stop2, rotate=45, anchor=two half] (Rheinau Karlsplatz) at ($(Sandrain)-(135:0.5)$) {}; \node[stop2, rotate=45] (Neuhofer Str) at ($(Rheinau Karlsplatz)-(135:0.5)$) {}; \node[stop2, rotate=45] (Waldseestr) at ($(Neuhofer Str)-(135:0.5)$) {}; \node[stop2, rotate=45] (Distelsand) at ($(Waldseestr)-(135:0.5)$) {}; \node[stop2, rotate=45] (Rheinau Bf) at ($(Distelsand)-(135:0.5)$) {}; % Lindenhof \node[stop1] (Hauptbahnhof Süd) at ($(Hauptbahnhof E.one half)-(45:1.5)-(0,1.0)$) {}; \node[stop1, below=0.3cm of Hauptbahnhof Süd] (Windeckstr) {}; \node[stop1, below=0.3cm of Windeckstr] (Diesterwegschule) {}; \node[stop1, below=0.3cm of Diesterwegschule] (Meeräckerplatz) {}; \node[stop1, below=0.3cm of Meeräckerplatz] (Markuskirche) {}; \node[stop1, below=0.3cm of Markuskirche] (Franz-Sigel-Str) {}; \node[stop1, below=0.3cm of Franz-Sigel-Str] (Freiheitsplatz) {}; \node[stop1, below=0.3cm of Freiheitsplatz] (Neckarau West) {}; \node[stop1] (Tannhäuser Ring) at ($(Neckarau West)-(90:0.4)-(0:0.4)$) {}; \node[stop1, left=0.3cm of Tannhäuser Ring] (Stollenwörth) {}; \node[stop1, left=0.3cm of Stollenwörth] (Rheingoldhalle) {}; % Ludwigshafen \node[stop6, rotate=45] (Berliner Platz) at ($(45:-5.4)+(135:0.2)$) {}; \node[stop2, rotate=-45] (Schützenstr) at ($(Berliner Platz)-(135:2.2)-(45:0.8)$) {}; \node[stop1, rotate=45] (Rottstr) at ($(Schützenstr.two half)-(135:0.4)-(45:0.4)$) {}; \node[stop1, rotate=45] (Amtsgericht) at ($(Rottstr)-(135:0.5)$) {}; \node[stop1, rotate=45] (Luitpoldhafen) at ($(Amtsgericht)-(135:0.5)$) {}; \node[stop1, rotate=45] (Wittelsbachplatz) at ($(Schützenstr.one half)-(45:1.2)$) {}; \node[stop1, rotate=45] (Südwest-Stadion) at ($(Wittelsbachplatz)-(45:0.5)$) {}; \node[stop1, rotate=45] (Stifterstr) at ($(Südwest-Stadion)-(45:0.5)$) {}; \node[stop1, rotate=45] (Mundenheim Nord) at ($(Stifterstr)-(45:0.5)$) {}; \node[stop1, rotate=45] (Am Schwanen) at ($(Mundenheim Nord)-(45:0.5)$) {}; \node[stop1, rotate=45] (Schillerschule) at ($(Am Schwanen)-(45:0.5)$) {}; \node[stop1, rotate=45] (Hoheneckenstr) at ($(Schillerschule)-(45:0.5)$) {}; \node[stop1, rotate=45] (Giulini) at ($(Hoheneckenstr)-(45:0.5)$) {}; \node[stop1, rotate=45] (Friedensstr) at ($(Giulini)-(45:0.5)$) {}; \node[stop1, rotate=45] (Brückweg) at ($(Friedensstr)-(45:0.5)$) {}; \node[stop1, rotate=45] (Rheingönheim) at ($(Brückweg)-(45:0.5)$) {}; \node[stop2, rotate=-45] (Kaiser-Wilhelm-Str) at ($(Berliner Platz)+(135:0.6)-(45:1.0)$) {}; \node[stop2, rotate=-45] (Pfalzbau) at ($(Kaiser-Wilhelm-Str)-(45:0.5)$) {}; \node[stop2, rotate=-45] (Bgm-Kutterer-Str) at ($(Pfalzbau)-(45:0.5)$) {}; \node[stop3, rotate=45] (LU Hauptbahnhof) at ($(Bgm-Kutterer-Str)-(45:0.4)+(135:0.4)$) {}; \node[stop2, rotate=90] (Rohrlachstr) at ($(LU Hauptbahnhof)+(135:0.4)-(0:0.4)$) {}; \node[stop1, rotate=90] (LU Hauptfriedhof) at ($(Rohrlachstr.two half)-(0:0.5)$) {}; \node[stop1, rotate=90] (Heinrich-Pesch-Haus) at ($(LU Hauptfriedhof)-(0:0.5)$) {}; \node[stop1, rotate=90] (Wollstr) at ($(Heinrich-Pesch-Haus)-(0:0.5)$) {}; \node[stop1, rotate=90] (Zum Guten Hirten) at ($(Wollstr)-(0:0.5)$) {}; \node[stop1, rotate=90] (Mannheimer Tor) at ($(Zum Guten Hirten)-(0:0.5)$) {}; \node[stop2, rotate=90, anchor=two half] (Hans Warsch Platz) at ($(Mannheimer Tor)-(0:0.5)$) {}; \node[stop1, rotate=90] (Willhelm-Tell-Str) at ($(Hans Warsch Platz.two half)-(0:0.5)$) {}; \node[stop2, rotate=90, anchor=two half] (Oggersheim) at ($(Willhelm-Tell-Str)-(0:0.5)$) {}; \node[stop2, rotate=45, anchor=one half] (Ludwigstr) at ($(Berliner Platz.two quarter)+(135:1.2)-(45:0.2)$) {}; \node[stop3, rotate=45] (LU Rathaus) at ($(Ludwigstr.two half)+(135:0.5)$) {}; \node[stop1, rotate=45] (Gartenstr) at ($(LU Rathaus.center)+(135:1.0)$) {}; \node[stop2, rotate=45, anchor=one half] (Hemshofstr) at ($(Gartenstr)+(135:0.5)$) {}; \node[stop2, rotate=45] (BASF Tor 1+2) at ($(Hemshofstr)+(135:0.5)$) {}; \node[stop2, rotate=45] (Schopenhauer Str) at ($(BASF Tor 1+2)+(135:0.5)$) {}; \node[stop2, rotate=45] (Rheinfeldstr) at ($(Schopenhauer Str)+(135:0.5)$) {}; \node[stop1, rotate=45] (Friesenheim Ost) at ($(Rheinfeldstr.one half)+(135:0.5)$) {}; \node[stop2, rotate=45, anchor=one half] (Rottstückerweg) at ($(Friesenheim Ost)+(135:0.5)$) {}; \node[stop2, rotate=45] (Ammoniakstr) at ($(Rottstückerweg)+(135:0.5)$) {}; \node[stop2] (Oppau Süd) at ($(Ammoniakstr)+(135:0.4)+(90:0.4)$) {}; \node[stop2] (Oppau) at ($(Oppau Süd)+(90:0.5)$) {}; % RHB \node[stop2, rotate=90] (Westlich B9) at ($(Oggersheim)-(0:0.5)$) {}; \node[stop2, rotate=90] (Ruchheim) at ($(Westlich B9)-(0:0.5)$) {}; \node[stop2, rotate=90] (Maxdorf) at ($(Ruchheim)-(0:0.5)$) {}; \node[stop2, rotate=90] (Maxdorf Süd) at ($(Maxdorf)-(0:0.5)$) {}; \node[stop2, rotate=90] (Fußgönheim) at ($(Maxdorf Süd)-(0:0.5)$) {}; \node[stop2, rotate=90] (Ellerstadt Ost) at ($(Fußgönheim)-(0:0.5)$) {}; \node[stop2, rotate=90] (Ellerstadt West) at ($(Ellerstadt Ost)-(0:0.5)$) {}; \node[stop2, rotate=90] (Gönnheim) at ($(Ellerstadt West)-(0:0.5)$) {}; \node[stop2, rotate=90] (Friedelsheim) at ($(Gönnheim)-(0:0.5)$) {}; \node[stop2, rotate=90] (Bad Dürkheim Ost) at ($(Friedelsheim)-(0:0.5)$) {}; \node[stop2, rotate=90] (Bad Dürkheim) at ($(Bad Dürkheim Ost)-(0:0.5)$) {}; \end{pgfonlayer} \begin{pgfonlayer}{lines} \pgfmathparse{0.1*tan(45/2)} \let\offset\pgfmathresult \draw[line, one] (Schönau) -- (Schönauschule) -- (Schönau Siedlung) -- (Waldhof Nord) -- (Waldhof Bf) -- (Luzenberg.two half) -- (Untermühlaustr.two half) -- (Herzogenriedstr.two half) -- (Neuer Messplatz.two half) -- (Carl-Benz-Str.two half) {[rounded corners=0.25cm] -- ($(Alte Feuerwache.three quarter)+(45:0.5-\offset)$) } -- (Alte Feuerwache.three quarter) -- (Abendakademie.three sixth) -- (Marktplatz.three sixth) -- (ParadeplatzW.two quarter) -- (Schloss.two quarter) {[rounded corners=0.5cm] -- ($(Universität.center)+(135:0.6)$) } -- (Universität.center) -- (Hauptbahnhof W.three sixth) (Hauptbahnhof E.three sixth) edge[out=-135, in=0] (MA Hauptbahnhof.three sixth) (MA Hauptbahnhof.three sixth) edge[out=180, in=-45] (Hauptbahnhof W.three sixth) (Hauptbahnhof E.three sixth) {[rounded corners=0.2cm] -- ($(Tattersall.two quarter)+(135:1.15)$) } -- (Tattersall.two quarter) -- ($(Tattersall.two quarter)+(135:-0.4)$) -- (Kopernikusstr) -- (Krappmühlstr.two half) -- (Hochschule.two half) -- (Lettestr) -- (Voltastr) -- (Neckarau Bf) -- (Friedrichstr.two half) -- ($(Friedrichstr.two half)-(90:0.4)$) -- (Isarweg) -- (Dannstadter Str) -- (Sandrain) -- (Rheinau Karlsplatz.two half) -- (Neuhofer Str.two half) -- (Waldseestr.two half) -- (Distelsand.two half) -- (Rheinau Bf.two half) ; \draw[maybe line, one] (Alte Feuerwache.three quarter) {[rounded corners=0.4cm] -- ($(45:\rad+0.3)-(135:0.3)$) } arc[start angle=41, end angle=60, radius=\rad+0.3] -- (Kurpfalzbrücke.center) arc[start angle=60, end angle=90, radius=\rad+0.3] -- (MVV Hochhaus.center) arc[start angle=90, end angle=120, radius=\rad+0.3] -- (Dalbergstr.center) arc[start angle=120, end angle=126, radius=\rad+0.3] {[rounded corners=0.5cm] -- ($(Rheinstr.two quarter)+(135:0.6)$) } -- (Rheinstr.two quarter) -- (Rathaus.two quarter) {[rounded corners=0.4cm] -- ($(ParadeplatzW.two quarter)+(45:0.45)$) } -- (ParadeplatzW.two quarter) ; \draw[line, two] (Neckarstadt West) -- (Bgm-Fuchs-Str) -- (Neumarkt) {[rounded corners=0.1cm] -- ($(Alte Feuerwache.one half)+(45:0.2)$) } -- (Alte Feuerwache.one half) -- ($(45:\rad+0.1)+(135:0.3)$) arc[start angle=53, end angle=60, radius=\rad+0.1] -- (Kurpfalzbrücke.one half) arc[start angle=60, end angle=90, radius=\rad+0.1] -- (MVV Hochhaus.one half) arc[start angle=90, end angle=119, radius=\rad+0.1] -- (Dalbergstr.one half) {[rounded corners=0.3cm] -- ($(Rheinstr.two half)+(135:0.4)$) } -- (Rheinstr.two half) -- (Strohmarkt.two half) -- (Wasserturm.two half) {[rounded corners=0.3cm] -- ($(Wasserturm.two half)-(135:0.58)$) % Hand-positioned because no clue about this one % -- ($(135:-\rad-0.4)+(45:0.3)$) } arc[start angle=-40.0, end angle=-3.8, radius=\rad+0.5] -- (Nationaltheater.one half) {[rounded corners=0.3cm] -- ($(Nationaltheater.one half)+(0:1.6+2*\offset)$) } -- (Theresienkrankenhaus.two half) -- (Universitätsklinikum.two half) -- ($(Universitätsklinikum.two half)+(45:0.3)$) -- (Bibienastr.one half) {[rounded corners=0.15cm] -- ($(Bibienastr.one half)-(135:1.0+\offset)$) } -- (Hauptfriedhof.one half) -- (Pfeifferswörth.one half) -- (Neckarplatt.one half) -- ($(Neckarplatt.one half)+(0:0.4)$) -- (Am Aubuckel) -- (Liebfrauenstr) -- (Blücherstr) -- (Feudenheim Kirche) -- (Neckarstr) -- (Feudenheim) ; \draw[line, three] (Sandhofen) -- (Hanfstr) -- (Bürstädter Str) -- (Papyrus) -- (Zellstofffabrik) -- (Roche) -- (Altrheinstr) -- (Stolberger Str) -- ($(Luzenberg.one half)+(90:0.3)$) -- (Luzenberg.one half) -- (Untermühlaustr.one half) -- (Herzogenriedstr.one half) -- (Neuer Messplatz.one half) -- (Carl-Benz-Str.one half) {[rounded corners=0.15cm] -- ($(Alte Feuerwache.two quarter)+(45:0.5+1.5*\offset)$) } -- (Alte Feuerwache.two quarter) -- (Abendakademie.one half) -- (Marktplatz.one half) {[rounded corners=0.3cm] -- ($(45:-0.3)+(135:0.1)$) } -- (ParadeplatzE.one half) -- (Strohmarkt.one half) -- (Wasserturm.one half) -- ($(Wasserturm.one half)+(135:-0.2)$) -- (Kunsthalle.one half) -- (Hauptbahnhof E.one half) -- ($(Hauptbahnhof E.one half)-(45:1.5)$) -- (Hauptbahnhof Süd) -- (Windeckstr) -- (Diesterwegschule) -- (Meeräckerplatz) -- (Markuskirche) -- (Franz-Sigel-Str) -- (Freiheitsplatz) -- (Neckarau West) |- (Tannhäuser Ring) -- (Stollenwörth) -- (Rheingoldhalle) ; \draw[maybe line, three] (Alte Feuerwache.two quarter) {[rounded corners=0.2cm] -- ($(45:\rad+0.5)+(135:0.1)$) } arc[start angle=47, end angle=60, radius=\rad+0.5] -- (Kurpfalzbrücke.two half) arc[start angle=60, end angle=90, radius=\rad+0.5] -- (MVV Hochhaus.two half) arc[start angle=90, end angle=120, radius=\rad+0.5] -- (Dalbergstr.two half) arc[start angle=120, end angle=128, radius=\rad+0.5] {[rounded corners=0.6cm] -- ($(Rheinstr.one half)+(135:0.8)$) } -- (Rheinstr.one half) -- (Rathaus.one half) -- (ParadeplatzE.one half) ; \draw[line, four] (Herrmann-Gutzmann-Schule) {[rounded corners=0.2cm] -- ($(Herrmann-Gutzmann-Schule)+(90:0.4)$) } -- (Carl-Benz-Bad) -- (Käfertaler Wald) (Erlöserkirche) {[rounded corners=0.2cm] -- ($(Herrmann-Gutzmann-Schule)+(90:0.4)$) } -- (Carl-Benz-Bad) (Waldfriedhof) -- (Freilichtbühne) -- ($(Waldstr)+(135:0.4)$) -- (Waldstr) -- (Erlöserkirche) {[rounded corners=0.2cm] -- ($(Herrmann-Gutzmann-Schule)+(90:0.4)$) } -- (Herrmann-Gutzmann-Schule) -- (Speckweg) -- (Hessische Str) -- (Jugendverkehrsschule) -- (Ulmenweg) -- (Landwehrsteg) -- (Hochuferstr) -- ($(Bonifatiuskirche.one half)+(45:0.4)$) -- (Bonifatiuskirche.one half) -- (Lange Rötterstr.one half) -- (Universitätsklinikum.one half) -- ($(Universitätsklinikum.one half)-(45:0.5)$) -- (Schafweide.two half) {[rounded corners=0.3cm] -- ($(Alte Feuerwache.center)+(45:0.4)$) } -- (Alte Feuerwache.center) -- (Abendakademie.two quarter) -- (Marktplatz.two quarter) -- ($(45:-0.1)+(135:-0.1)$) -- (ParadeplatzE.two quarter) -- (Strohmarkt.two quarter) -- (Wasserturm.two quarter) {[rounded corners=0.3cm] -- ($(Wasserturm.two quarter)-(135:0.6)$) } -- (Kunsthalle.three quarter) -- ($(Tattersall.two half)-(135:-1.15)+(45:0.1)$) -- ($(Tattersall.two half)+(45:-0.3)-(135:-0.75)$) -- (Hauptbahnhof E.four sixth) (Hauptbahnhof E.four sixth) edge[out=-135, in=0] (MA Hauptbahnhof.four sixth) (MA Hauptbahnhof.four sixth) edge[out=180, in=-45] (Hauptbahnhof W.four sixth) (Hauptbahnhof W.four sixth) -- (Universität.one half) {[rounded corners=0.5cm] -- ($(Universität.one half)+(135:0.6)$) } -- ($(Berliner Platz.three quarter)-(135:0.5)$) -- (Berliner Platz.three quarter) {[rounded corners=0.3cm] -- ($(Berliner Platz.three quarter)+(135:0.5)$) } -- (Kaiser-Wilhelm-Str.two half) -- (Pfalzbau.two half) -- (Bgm-Kutterer-Str.two half) {[rounded corners=0.3cm] -- ($(LU Hauptbahnhof.center)-(135:0.5)$) } -- (LU Hauptbahnhof.center) {[rounded corners=0.15cm] -- ($(LU Hauptbahnhof.center)+(135:0.5+\offset)$) } -- (Rohrlachstr.two half) -- (LU Hauptfriedhof) -- (Heinrich-Pesch-Haus) -- (Wollstr) -- (Zum Guten Hirten) -- (Mannheimer Tor) -- (Hans Warsch Platz.two half) -- (Willhelm-Tell-Str) -- (Oggersheim.two half) ; \draw[maybe line, four] (Oggersheim.two half) -- (Westlich B9.two half) -- (Ruchheim.two half) -- (Maxdorf.two half) -- (Maxdorf Süd.two half) -- (Fußgönheim.two half) -- (Ellerstadt Ost.two half) -- (Ellerstadt West.two half) -- (Gönnheim.two half) -- (Friedelsheim.two half) -- (Bad Dürkheim Ost.two half) -- (Bad Dürkheim.two half) ; \draw[line, five] (Duale Hochschule) -- (Neuostheim.two half) -- ($(Holbeinstr)+(135:-0.4)$) -- (Holbeinstr) -- (Fernmeldeturm) -- (Lessingstr) -- (Collini-Center) -- ($(Abendakademie.four sixth)+(45:1.4)$) -- (Abendakademie.four sixth) -- (Marktplatz.four sixth) -- (ParadeplatzW.center) -- (Schloss.center) {[rounded corners=0.3cm] -- ($(Universität.three quarter)+(135:0.4)$) } -- (Universität.three quarter) -- (Hauptbahnhof W.two quarter) (Hauptbahnhof E.two quarter) edge[out=-135, in=0] (MA Hauptbahnhof.two quarter) (MA Hauptbahnhof.two quarter) edge[out=180, in=-45] (Hauptbahnhof W.two quarter) (Hauptbahnhof E.two quarter) -- (Kunsthalle.two quarter) -- ($(135:-\rad-0.3)$) arc[start angle=-45, end angle=3.6, radius=\rad+0.3] -- (Nationaltheater.two half) -- ($(Nationaltheater.two half)+(0:1.6-2*\offset)$) -- (Theresienkrankenhaus.one half) -- (Universitätsklinikum.center) -- (Lange Rötterstr.two half) -- (Bonifatiuskirche.two half) -- (Exorzierplatz.two half) -- (Boveristr.two half) -- (Käfertal Süd.two half) -- (Mannheimer Str.two half) -- (Käfertal Bf.two half) -- (Bensheimer Str.two half) -- (Platz der Freundschaft) % -- (Tivoli) % -- (Kapellenberg) % -- (Viernheim Bf) % -- (Viernheim Ost) % -- (Walter-Gropius-Allee) % -- (Freiburger Str) % -- (Blumenstr) % -- (Stahlbad) % -- (Händelstr) % -- (Weinheim Hbf) (Käfertal Bf.two half) {[rounded corners=0.3cm] -- ($(Käfertal Bf.two half)!0.65!(Bensheimer Str.two half)-(45:0.1)$) } -- (Im Rott.one half) -- (Vogelstang West.one half) {[rounded corners=0.15cm] -- ($(Vogelstang West.one half)-(135:0.4)$) } -- (Wallstadt West.one half) -- (Wallstadt Bf.one half) -- (Wallstadt Ost.one half) -- (Heddesheim Bf) ; \draw[line, five, -{Latex[length=5mm]}] (Platz der Freundschaft) -- ++(45:1); \draw[line, five, -{Latex[length=5mm]}] (Duale Hochschule) -- ++(135:-2); \draw[line, six] (Berliner Platz.one half) {[rounded corners=0.2cm] -- ($(Berliner Platz.one half)-(135:2.1)$) } -- (Schützenstr.one half) -- (Wittelsbachplatz) -- (Südwest-Stadion) -- (Stifterstr) -- (Mundenheim Nord) -- (Am Schwanen) -- (Schillerschule) -- (Hoheneckenstr) -- (Giulini) -- (Friedensstr) -- (Brückweg) -- (Rheingönheim) (Berliner Platz.one half) -- (Ludwigstr.one half) -- (LU Rathaus.one half) -- ($(LU Rathaus.one half)+(135:0.3-\offset)$) {[rounded corners=2.0cm] -- ($(Handelshafen)-(0:2.2)$) } -- (Handelshafen) {[rounded corners=0.3cm] -- ($(Rheinstr.three quarter)+(135:0.5)$) } -- (Rheinstr.three quarter) -- (Rathaus.three quarter) -- (ParadeplatzE.three quarter) -- (Strohmarkt.three quarter) -- (Wasserturm.three quarter) {[rounded corners=0.5cm] -- ($(Wasserturm.three quarter)+(135:-0.8)$) } -- (Kunsthalle.two half) {[rounded corners=0.3cm] -- ($(Tattersall.two half)-(135:-0.95)$) } -- (Tattersall.two half) (Rathaus.three quarter) {[rounded corners=0.7cm] -- ($(45:0.1)-(135:0.1)$) } -- (ParadeplatzW.one half) -- (Schloss.one half) {[rounded corners=0.7cm] -- ($(Universität.two quarter)+(135:0.8)$) } -- (Universität.two quarter) -- (Hauptbahnhof W.center) (Hauptbahnhof E.center) edge[out=-135, in=0] (MA Hauptbahnhof.center) (MA Hauptbahnhof.center) edge[out=180, in=-45] (Hauptbahnhof W.center) (Hauptbahnhof E.center) {[rounded corners=0.3cm] -- ($(Tattersall.two half)-(135:-0.95)$) } -- (Tattersall.two half) -- ($(Tattersall.two half)+(135:-0.4)$) -- (Werderstr.two half) -- (Pestallozischule.two half) -- (Weberstr.two half) -- (Planetarium.two half) -- ($(Planetarium.two half)+(0:0.4-\offset)$) -- (Luisenpark Technoseum.one half) -- (Carl-Benz-Stadion.one half) -- (Harrlach.one half) -- (Lucas-Cranach-Str.one half) -- (Schwindstr.one half) -- ($(Neuostheim.one half)+(135:0.3+\offset)$) -- (Neuostheim.one half) (Planetarium.two half) -- ($(Planetarium.two half)+(0:0.4)$) -- (Technoseum Süd) -- (Fahrlach) -- (Husarenweg) -- (Ulanenweg) -- (Gerd-Dehof-Platz) -- (SAP Arena Süd) -- ($(SAP Arena Süd)-(135:0.5)$) -- (S-Bf SAP Arena) ; \draw[maybe line, six] {[rounded corners=0.4cm] (Neuostheim.one half) -- ($(Neuostheim.one half)-(135:0.9+\offset)$) } {[rounded corners=0.3cm] |- (S-Bf SAP Arena) } ; \draw[line, seven] (Vogelstang) -- (Vogelstang Zentrum) -- (Potsdamer Weg) -- (Vogelstang West) -- (Kiesäcker) -- (Hölderlinstr) -- (Talstr) -- (Adolf-Damaschke-Ring) -- (Ziethenstr) -- ($(Neckarplatt.two half)+(0:0.4)$) -- (Neckarplatt.two half) -- (Pfeifferswörth.two half) -- (Hauptfriedhof.two half) -- ($(Bibienastr.two half)-(135:1.0-\offset)$) -- (Bibienastr.two half) {[rounded corners=0.3cm] -- ($(Universitätsklinikum.three quarter)+(45:0.5)$) } -- (Universitätsklinikum.three quarter) -- (Theresienkrankenhaus) {[rounded corners=0.2cm] -- ($(Nationaltheater)+(0:1.6)$) } -- (Nationaltheater) -- ($(0:\rad+0.5)$) arc[start angle=0, end angle=29, radius=\rad+0.5] -- ($(Abendakademie.two half)+(45:0.3)$) -- (Abendakademie.two half) -- (Marktplatz.two half) -- (ParadeplatzW.two half) -- (Schloss.two half) -- (Universität.center) -- (Universität.west) {[rounded corners=0.7cm] -- ($(Berliner Platz.two quarter)-(135:1.1)$) } -- (Berliner Platz.two quarter) -- (Ludwigstr.two half) -- (LU Rathaus.center) -- (Gartenstr.one half) -- (Hemshofstr.one half) -- (BASF Tor 1+2.one half) -- (Schopenhauer Str.one half) -- (Rheinfeldstr.one half) -- (Rottstückerweg.one half) -- (Ammoniakstr.one half) {[rounded corners=0.15cm] -- ($(Ammoniakstr.one half)+(135:0.4+\offset)$) } -- (Oppau Süd.one half) -- (Oppau.one half) ; \draw[line, eight] ($(MA Hauptbahnhof.two half)$) edge[out=180, in=-45] ($(Hauptbahnhof W.two half)$) ($(Hauptbahnhof W.two half)$) -- ($(Universität.one half)-(45:0.4)+(135:0.2)$) {[rounded corners=0.5cm] -- ($(Berliner Platz.three sixth)-(135:0.9)$) } -- (Berliner Platz.three sixth) -- (LU Rathaus.two half) -- (Hemshofstr.two half) -- (BASF Tor 1+2.two half) -- (Schopenhauer Str.two half) -- (Rheinfeldstr.two half) -- (Rottstückerweg.two half) -- (Ammoniakstr.two half) -- ($(Ammoniakstr.two half)+(135:0.4-\offset)$) -- (Oppau Süd.two half) -- (Oppau.two half) ; \draw[maybe line, eight] (Hauptbahnhof E.two half) edge[out=-135, in=0] ($(MA Hauptbahnhof.two half)$) (Hauptbahnhof E.two half) -- ($(Tattersall.one half)+(135:0.35)$) -- (Tattersall.one half) -- ($(Tattersall.one half)-(135:0.4-2*\offset)$) -- (Krappmühlstr.one half) -- (Hochschule.one half) -- (Friedrichstr.one half) -- ($(Friedrichstr.one half)-(90:0.4+2*\offset)$) -- (Rheinau Karlsplatz.one half) -- (Neuhofer Str.one half) -- (Waldseestr.one half) -- (Distelsand.one half) -- (Rheinau Bf.one half) ; \draw[line, nine] (Hauptbahnhof E.three quarter) edge[out=-135, in=0] (MA Hauptbahnhof.three quarter) (MA Hauptbahnhof.three quarter) edge[out=180, in=-45] (Hauptbahnhof W.three quarter) (Hauptbahnhof W.three quarter) {[rounded corners=0.3cm] -- ($(Universität.one half)-(45:0.2)+(135:0.4)$) -- ($(Berliner Platz.four sixth)-(135:0.7)$) } -- (Berliner Platz.four sixth) -- ($(Berliner Platz.four sixth)+(135:0.3)$) -- ($(Kaiser-Wilhelm-Str.two half)-(135:0.2)$) -- ($(Pfalzbau.two half)-(135:0.2)$) -- ($(Bgm-Kutterer-Str.two half)-(135:0.2)$) {[rounded corners=0.5cm] -- ($(LU Hauptbahnhof.one half)-(135:0.7)$) } -- (LU Hauptbahnhof.one half) -- ($(LU Hauptbahnhof.one half)+(135:0.4+\offset)$) -- (Rohrlachstr.one half) -- (Hans Warsch Platz.one half) -- (Oggersheim.one half) -- (Westlich B9.one half) -- (Ruchheim.one half) -- (Maxdorf.one half) -- (Maxdorf Süd.one half) -- (Fußgönheim.one half) -- (Ellerstadt Ost.one half) -- (Ellerstadt West.one half) -- (Gönnheim.one half) -- (Friedelsheim.one half) -- (Bad Dürkheim Ost.one half) -- (Bad Dürkheim.one half) (Hauptbahnhof E.three quarter) {[rounded corners=0.3cm] -- ($(Tattersall.three quarter)+(135:0.55)$) } -- (Tattersall.three quarter) -- ($(Tattersall.three quarter)-(135:0.4+2*\offset)$) -- (Werderstr.one half) -- (Pestallozischule.one half) -- (Weberstr.one half) -- (Planetarium.one half) -- ($(Planetarium.one half)+(0:0.4+\offset)$) -- (Luisenpark Technoseum.two half) ; \draw[maybe line, nine] (Luisenpark Technoseum.two half) -- (Carl-Benz-Stadion.two half) -- (Harrlach.two half) -- (Lucas-Cranach-Str.two half) -- (Schwindstr.two half) ; \draw[line, ten] (Berliner Platz.two half) {[rounded corners=0.5cm] -- ($(Berliner Platz.two half)+(135:0.7)$) } -- (Kaiser-Wilhelm-Str.one half) -- (Pfalzbau.one half) -- (Bgm-Kutterer-Str.one half) -- ($(LU Hauptbahnhof.two half)-(135:0.3)$) -- (LU Hauptbahnhof.two half) (Berliner Platz.two half) {[rounded corners=1.2cm] -- ($(Berliner Platz.two half)-(135:2.2+2*\offset)$) } -- (Schützenstr.two half) -- ($(Schützenstr.two half)-(45:0.4)$) -- (Amtsgericht) -- (Luitpoldhafen) ; \draw[line, fifteen] (Käfertal Bf.one half) -- (Mannheimer Str.one half) -- (Käfertal Süd.one half) -- (Boveristr.one half) -- (Exorzierplatz.one half) -- (Bonifatiuskirche.center) -- (Lange Rötterstr.center) -- (Universitätsklinikum.two quarter) {[rounded corners=0.3cm] -- ($(Universitätsklinikum.two quarter)-(45:0.7)$) } -- (Schafweide.one half) -- ($(Alte Feuerwache.two half)+(45:0.2)$) -- (Alte Feuerwache.two half) -- ($(Abendakademie.four sixth)+(45:1.8)$) -- ($(Abendakademie.three quarter)+(45:1.4)$) -- (Abendakademie.three quarter) -- (Marktplatz.three quarter) -- (ParadeplatzW.three quarter) -- (Schloss.three quarter) {[rounded corners=0.1cm] -- ($(Universität.two half)+(135:0.2)$) } -- (Universität.two half) -- (MA Hauptbahnhof.one half) (Käfertal Bf.one half) {[rounded corners=0.4cm] -- ($(Käfertal Bf.one half)!0.65!(Bensheimer Str.one half)+(45:0.1)$) } -- (Im Rott.two half) -- (Vogelstang West.two half) -- ($(Vogelstang West.two half)-(135:0.4-2*\offset)$) -- (Wallstadt West.two half) -- (Wallstadt Bf.two half) -- (Wallstadt Ost.two half) ; \draw[line, sixteen] (Bensheimer Str.one half) -- ($(Bensheimer Str.one half)+(45:0.2)$) -- (Franklinschule) -- (Franklin Mitte) -- (Sullivan) ; \end{pgfonlayer} \begin{pgfonlayer}{labels} \foreach\stop/\placement/\anchor/\rotate in { Lessingstr/left/east/45, Fernmeldeturm/left/east/45, Holbeinstr/left/east/45, Duale Hochschule/right/west/0, Neuostheim/right/west/0, Strohmarkt/right/west/45, Rathaus/left/east/0, Rheinstr/left/east/0, Marktplatz/left/east/0, Abendakademie/left/east/0, Schloss/left/east/0, Universität/right/north west/0, Nationaltheater/left/north west/0, Rosengarten/right/west/0, Kunsthalle/right/west/0, Alte Feuerwache/left/east/0, MVV Hochhaus/right/south/0, Im Rott/left/north/-45, Vogelstang West/left/east/0, Dalbergstr/right/east/0, Schützenstr/right/west/0, Rottstr/left/east/45, Amtsgericht/left/east/45, Luitpoldhafen/left/east/45, Wittelsbachplatz/above/east/0, Südwest-Stadion/above/east/0, Stifterstr/above/east/0, Mundenheim Nord/above/east/0, Am Schwanen/above/east/0, Schillerschule/above/east/0, Hoheneckenstr/above/east/0, Giulini/above/east/0, Friedensstr/above/east/0, Brückweg/above/east/0, Rheingönheim/above/east/0, Handelshafen/below/north/0, Berliner Platz/right/west/45, Ludwigstr/left/east/45, LU Rathaus/left/east/45, Gartenstr/left/east/45, Hemshofstr/left/east/45, BASF Tor 1+2/left/east/45, Schopenhauer Str/left/east/45, Rheinfeldstr/left/east/45, Friesenheim Ost/left/east/45, Rottstückerweg/left/east/45, Ammoniakstr/left/east/45, Oppau Süd/left/east/0, Oppau/left/east/0, LU Hauptbahnhof/left/east/45, Rohrlachstr/right/east/-45, LU Hauptfriedhof/right/east/-45, Heinrich-Pesch-Haus/right/east/-45, Wollstr/right/east/-45, Zum Guten Hirten/right/east/-45, Mannheimer Tor/right/east/-45, Hans Warsch Platz/right/east/-45, Willhelm-Tell-Str/right/east/-45, Oggersheim/right/east/-45, Westlich B9/right/east/-45, Ruchheim/right/east/-45, Maxdorf/right/east/-45, Maxdorf Süd/right/east/-45, Fußgönheim/right/east/-45, Ellerstadt Ost/right/east/-45, Ellerstadt West/right/east/-45, Gönnheim/right/east/-45, Friedelsheim/right/east/-45, Bad Dürkheim Ost/right/east/-45, Bad Dürkheim/right/east/-45, Tattersall/right/west/45, Werderstr/right/south west/45, Pestallozischule/right/south west/45, Weberstr/right/south west/45, Planetarium/right/south west/45, Luisenpark Technoseum/right/west/-45, Technoseum Süd/left/east/45, Fahrlach/left/east/45, Husarenweg/left/east/45, Ulanenweg/left/east/45, Gerd-Dehof-Platz/left/east/45, SAP Arena Süd/left/east/45, Carl-Benz-Stadion/right/west/-45, Harrlach/right/west/-45, Lucas-Cranach-Str/right/west/-45, Schwindstr/right/west/-45, Hans-Thoma-Str/right/west/-45, Maimarkt/right/west/-45, SAP Arena/right/west/-45, S-Bf SAP Arena/below/north/0, MA Hauptbahnhof/right/north/0, Hauptbahnhof Süd/right/west/0, Windeckstr/right/west/0, Diesterwegschule/right/west/0, Meeräckerplatz/right/west/0, Markuskirche/right/west/0, Franz-Sigel-Str/right/west/0, Freiheitsplatz/right/west/0, Neckarau West/right/west/0, Lange Rötterstr/right/west/-45, Bonifatiuskirche/right/west/-45, Exorzierplatz/right/west/-45, Boveristr/right/west/-45, Käfertal Süd/right/west/-45, Mannheimer Str/right/west/-45, Käfertal Bf/right/west/-45, Bensheimer Str/right/west/-45, Platz der Freundschaft/right/west/-45, % Tivoli/right/west/-45, % Kapellenberg/right/west/-45, Wallstadt West/left/west/-45, Wallstadt Bf/left/west/-45, Wallstadt Ost/left/west/-45, Heddesheim Bf/below/west/-45, Potsdamer Weg/right/west/0, Kiesäcker/right/west/-45, Hölderlinstr/right/west/-45, Talstr/right/west/-45, Vogelstang Zentrum/right/west/0, Vogelstang/right/west/0, Franklinschule/left/east/0, Franklin Mitte/left/east/0, Sullivan/left/east/0, Tannhäuser Ring/below/west/-45, Stollenwörth/below/west/-45, Rheingoldhalle/below/west/-45, Kurpfalzbrücke/left/east/0, Kopernikusstr/right/west/0, Krappmühlstr/right/west/0, Hochschule/right/west/0, Lettestr/right/west/0, Voltastr/right/west/0, Neckarau Bf/right/west/0, Friedrichstr/right/west/0, Isarweg/right/west/0, Dannstadter Str/right/west/0, Sandrain/right/west/0, Rheinau Karlsplatz/right/west/0, Neuhofer Str/right/west/0, Waldseestr/right/west/0, Distelsand/right/west/0, Rheinau Bf/right/west/0, Schafweide/left/east/0, Hochuferstr/left/east/0, Landwehrsteg/left/east/0, Ulmenweg/left/east/0, Jugendverkehrsschule/left/east/0, Hessische Str/left/east/0, Speckweg/left/east/0, Herrmann-Gutzmann-Schule/left/east/0, Erlöserkirche/left/east/0, Waldstr/left/east/0, Carl-Benz-Bad/right/west/0, Carl-Benz-Str/left/east/0, Neuer Messplatz/left/east/0, Herzogenriedstr/left/east/0, Untermühlaustr/left/east/0, Luzenberg/left/east/0, Stolberger Str/left/east/0, Altrheinstr/left/east/0, Roche/left/east/0, Zellstofffabrik/left/east/0, Papyrus/left/east/0, Bürstädter Str/left/east/0, Hanfstr/left/east/0, Sandhofen/left/east/0, Waldhof Bf/right/west/0, Waldhof Nord/right/west/0, Schönau Siedlung/right/west/0, Schönauschule/right/west/0, Schönau/right/west/0, Käfertaler Wald/right/west/0, Collini-Center/right/west/0, Freilichtbühne/right/west/0, Waldfriedhof/right/west/0, Universitätsklinikum/left/east/-45, Bibienastr/left/east/45, Hauptfriedhof/right/west/45, Pfeifferswörth/right/west/45, Neckarplatt/right/west/45, Am Aubuckel/left/east/0, Liebfrauenstr/left/east/0, Blücherstr/left/east/0, Feudenheim Kirche/left/east/0, Neckarstr/left/east/0, Feudenheim/left/east/0, Adolf-Damaschke-Ring/right/west/-45, Ziethenstr/right/west/-45, Theresienkrankenhaus/right/west/0, Gewerkschaftshaus/left/east/45, Neumarkt/left/east/0, Bgm-Fuchs-Str/left/east/0, Neckarstadt West/left/east/0, Wasserturm/left/east/0% } \node[label, \placement=0.05cm of \stop, rotate=\rotate, anchor=\anchor] {\contour{white}{\stop}}; \foreach\stop/\placement/\anchor/\rotate in { Kaiser-Wilhelm-Str/right/west/-45, Pfalzbau/right/west/-45, Bgm-Kutterer-Str/right/west/-45% } \node[label, rotate=\rotate, anchor=\anchor] at ($(\stop)-(135:0.35)$) {\contour{white}{\stop}}; \node[label, left=0.1cm of ParadeplatzW, rotate=0, anchor=east] {\contour{white}{Paradeplatz}}; \node[label, line name, fill=one, left=0.2cm of Schönau] {\bf 1}; \node[label, line name, fill=one, below=0.2cm of Rheinau Bf] (one lab) {\bf 1}; \node[label, line name, fill=eight, right=0.1cm of one lab] (eight lab) {\bf 8}; \node[label, eight, right=-0.05cm of eight lab] {\bf EX}; \node[label, line name, fill=two, above left=0.2cm of Neckarstadt West] {\bf 2}; \node[label, line name, fill=two] at ($(Feudenheim)+(0:0.5)$){\bf 2}; \node[label, line name, fill=three, above=0.2cm of Sandhofen] {\bf 3}; \node[label, line name, fill=three, above=0.2cm of Rheingoldhalle] {\bf 3}; \node[label, line name, fill=four] at ($(Waldfriedhof)+(90:0.5)$) {\bf 4}; \node[label, line name, fill=four] (four lab) at ($(Bad Dürkheim)-(90:0.5)$) {\bf 4}; \node[label, line name, fill=four, right=0.1cm of four lab] (four a lab) {\bf 4A}; \node[label, line name, fill=four, left=0.2cm of Käfertaler Wald] {\bf 4A}; \node[label, line name, fill=five] at ($(Platz der Freundschaft)+(45:1.0)+(0:0.3)$) (five lab north) {\bf 5}; \node[label, line name, fill=five, rotate=-45] at ($(Duale Hochschule)-(135:2)-(135:0.2)$) (five lab){\bf 5}; \node[label, five, right=0.0cm of five lab, rotate=-45] {Heidelberg}; \node[label, five, right=0.0cm of five lab north] {Weinheim}; \node[label, line name, fill=five, right=0.2cm of Heddesheim Bf] {\bf 5A}; \node[label, line name, fill=six, right=0.2cm of S-Bf SAP Arena] (lab six) {\bf 6}; \node[label, line name, fill=six, right=0.1cm of lab six] {\bf 6A}; \node[label, line name, fill=six] (lab six west) at ($(Rheingönheim)-(90:0.5)$){\bf 6}; \node[label, line name, fill=six, right=0.1cm of lab six west] {\bf 6A}; \node[label, line name, fill=seven] at ($(Vogelstang)+(90:0.5)$) {\bf 7}; \node[label, line name, fill=seven, right=0.2cm of Oppau] (seven lab west) {\bf 7}; \node[label, line name, fill=eight, right=0.1cm of seven lab west] (eight lab west) {\bf 8}; \node[label, eight, right=-0.05cm of eight lab west] {\bf EX}; \node[label, line name, fill=nine] (nine lab) at ($(Schwindstr)+(45:0.1)+(0:0.4)$) {\bf 9}; \node[label, nine, right=-0.05cm of nine lab] {\bf EX}; \node[label, line name, fill=nine, right=0.1cm of four a lab] (nine lab west) {\bf 9}; \node[label, nine, right=-0.05cm of nine lab west] {\bf EX}; \node[label, line name, fill=ten] at ($(Luitpoldhafen)+(45:0.5)$){\bf 10}; \node[label, line name, fill=fifteen, right=0.2cm of Wallstadt Ost.east, anchor=south west] {\bf 15}; \node[label, line name, fill=sixteen, right=0.2cm of Sullivan] {\bf 16}; \node[label, line name, fill=sixteen, left=0.2cm of Bensheimer Str] {\bf 16}; \end{pgfonlayer} \end{tikzpicture} \end{document} % vim: nospell conceallevel=0