aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorstuebinm2024-09-28 01:59:41 +0200
committerstuebinm2024-09-28 01:59:41 +0200
commit469e1f71601559cb77dbceb090ea88363cbf2846 (patch)
tree1569f9ef17250a42e9cc0f605138f92c057223d1
parentec22b275c331536a5443e91533bb821c7426132f (diff)
milano: all lines
have not made commits so far. will try a circular circle line now, want this state saved.
Diffstat (limited to '')
-rw-r--r--milano/metro.tex557
-rw-r--r--milano/trams.tex780
2 files changed, 1337 insertions, 0 deletions
diff --git a/milano/metro.tex b/milano/metro.tex
new file mode 100644
index 0000000..d42da61
--- /dev/null
+++ b/milano/metro.tex
@@ -0,0 +1,557 @@
+
+\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}{228,11,28}
+\definecolor{two}{RGB}{90,150,43}
+\definecolor{three}{RGB}{242,171,0}
+\definecolor{four}{RGB}{0,55,121}
+\definecolor{five}{RGB}{164,150,203}
+
+\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},
+ },
+ 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,
+ },
+ line/.style = {
+ line width=0.15cm,
+ rounded corners=0.1cm,
+ },
+ label/.style = {
+ font=\scriptsize,
+ },
+ line name/.style = {
+ label,
+ color=white,
+ minimum width=1em,
+ minimum height=1em,
+ inner sep=0pt,
+ },
+ ]
+
+ \begin{pgfonlayer}{stops}
+
+ % all of line 1
+ \node[stop1] (Sesto I Maggio) at (1,2) {};
+ \node[stop1, below=0.7cm of Sesto I Maggio] (Sesto Rondò) {};
+ \node[stop1, below=0.7cm of Sesto Rondò] (Sesto Marelli) {};
+ \node[stop1, below=0.7cm of Sesto Marelli] (Villa San Giovanni) {};
+ \node[stop1, below=0.7cm of Villa San Giovanni] (Precotto) {};
+ \node[stop1, below=0.7cm of Precotto] (Gorla) {};
+ \node[stop1, below=0.7cm of Gorla] (Turro) {};
+ \node[stop1, below=0.7cm of Turro] (Rovereto) {};
+ \node[stop1, below=0.7cm of Rovereto] (Pasteur) {};
+ \node[stop1, below=0.7cm of Pasteur] (Loreto) {};
+ \node[stop1, below=0.7cm of Loreto] (Lima) {};
+ \node[stop1] (Porta Venezia) at ($(Lima)-(0.5,0.5)$) {};
+ \node[stop1] (Palestro) at ($(Porta Venezia)-(0.5,0.5)$) {};
+ \node[stop2, rotate=-45, anchor=one half] (San Babila) at ($(Palestro)-(0.5,0.5)$) {};
+ \node[stop1] (Duomo) at ($(San Babila) - (1,0)$) {};
+ \node[stop1, left=0.7cm of Duomo] (Cordusio) {};
+ \node[stop1, left=0.7cm of Cordusio] (Cairoli) {};
+ \node[stop1, left=0.7cm of Cairoli] (Cadorna FN) {};
+ \node[stop1, left=0.7cm of Cadorna FN] (Conciliazione) {};
+ \node[stop1, left=0.7cm of Conciliazione] (Pagano) {};
+
+ % upper branch
+ \node[stop1] (Buonarotti) at ($(Pagano) - (1,-.5)$) {};
+ \node[stop1] (Amendola) at ($(Buonarotti) - (.5,-.5)$) {};
+ \node[stop1] (Lotto) at ($(Amendola) - (.5,-.5)$) {};
+ \node[stop1] (QT8) at ($(Lotto) - (.5,-.5)$) {};
+ \node[stop1] (Lampugnano) at ($(QT8) - (.5,-.5)$) {};
+ \node[stop1] (Uruguay) at ($(Lampugnano) - (.5,-.5)$) {};
+ \node[stop1] (Bonola) at ($(Uruguay) - (.5,-.5)$) {};
+ \node[stop1] (San Leonardo) at ($(Bonola) - (.5,-.5)$) {};
+ \node[stop1] (Molino Dorino) at ($(San Leonardo) - (.5,-.5)$) {};
+ \node[stop1] (Pero) at ($(Molino Dorino) - (.5,-.5)$) {};
+ \node[stop1] (Rho Fiera) at ($(Pero) - (.5,-.5)$) {};
+
+ % lower branch
+ \node[stop1] (Wagner) at ($(Pagano) - (1,.5)$) {};
+ \node[stop1] (De Angeli) at ($(Wagner) - (.5,.5)$) {};
+ \node[stop1] (Gambara) at ($(De Angeli) - (.5,.5)$) {};
+ \node[stop1] (Bande Nere) at ($(Gambara) - (.5,.5)$) {};
+ \node[stop1] (Primaticcio) at ($(Bande Nere) - (.5,.5)$) {};
+ \node[stop1] (Inganni) at ($(Primaticcio) - (.5,.5)$) {};
+ \node[stop1] (Bisceglie) at ($(Inganni) - (.5,.5)$) {};
+
+
+ % line two above cadorna
+ \node[stop1] (Lanza) at ($(Cadorna FN) + (0,1)$) {};
+ \node[stop1] (Moscova) at ($(Lanza) + (0.7,0.7)$) {};
+ \node[stop2, rotate=-45, anchor=two half] (Garibaldi FS) at ($(Moscova) + (0.7,0.7)$) {};
+ % line two left of loreto
+ \node[stop1] (Caiazzo) at ($(Loreto) + (-.9,0)$) {};
+ \node[stop1] (Centrale) at ($(Caiazzo) + (-.9,0)$) {};
+ \node[stop1] (Gioia) at ($(Centrale) + (-.9,0)$) {};
+
+ % line two right of loreto
+ \node[stop1, right=0.7cm of Loreto] (Piola) {};
+ \node[stop1, right=0.7cm of Piola] (Lambrate FS) {};
+ \node[stop1] (Udine) at ($(Lambrate FS) + (1,.7)$) {};
+ \node[stop1] (Cimiano) at ($(Udine) + (.7,.7)$) {};
+ \node[stop1] (Crescenzago) at ($(Cimiano) + (.7,.7)$) {};
+ \node[stop1] (Cascina Gobba) at ($(Crescenzago) + (.7,.7)$) {};
+ \node[stop1] (Cologno Sud) at ($(Cascina Gobba) + (1.4,1.4)$) {};
+ \node[stop1] (Cologno Centro) at ($(Cologno Sud) + (.7,.7)$) {};
+ \node[stop1] (Cologno Nord) at ($(Cologno Centro) + (.7,.7)$) {};
+
+ % line two, right branch
+ \node[stop1] (Vimodrone) at ($(Cascina Gobba) + (1.2,.4)$) {};
+ \node[stop1, right=0.7cm of Vimodrone] (Cascina Burrona) {};
+ \node[stop1, right=0.7cm of Cascina Burrona] (Cernusco sul Naviglio) {};
+ \node[stop1, right=0.7cm of Cernusco sul Naviglio] (Villa Fiorita) {};
+ \node[stop1, right=0.7cm of Villa Fiorita] (Cassina de' Pecchi) {};
+ \node[stop1, right=0.7cm of Cassina de' Pecchi] (Bussero) {};
+ \node[stop1, right=0.7cm of Bussero] (Villa Pompea) {};
+ \node[stop1, right=0.7cm of Villa Pompea] (Gorgonzola) {};
+ \node[stop1, right=0.7cm of Gorgonzola] (Cascina Antonietta) {};
+ \node[stop1, right=0.7cm of Cascina Antonietta] (Gessate) {};
+
+ \node[stop1] (Tricolore) at ($(San Babila) + (1,0)$) {};
+ \node[stop1, right=0.7cm of Tricolore] (Dateo) {};
+ \node[stop1, right=0.7cm of Dateo] (Susa) {};
+ \node[stop1, right=0.7cm of Susa] (Argonne) {};
+ \node[stop1, right=0.7cm of Argonne] (Stazione Forlanini) {};
+ \node[stop1, right=0.7cm of Stazione Forlanini] (Repetti) {};
+ \node[stop1, right=0.7cm of Repetti] (Lineate Aeroporto) {};
+ \end{pgfonlayer}
+
+
+ \begin{pgfonlayer}{lines}
+ \pgfmathsetmacro{\offset}{0.1*tan(45/2)}
+
+ \draw[line, one]
+ (Sesto I Maggio)
+ -- (Sesto Rondò)
+ -- (Sesto Marelli)
+ -- (Villa San Giovanni)
+ -- (Precotto)
+ -- (Gorla)
+ -- (Turro)
+ -- (Rovereto)
+ -- (Pasteur)
+ -- (Loreto)
+ -- (Lima)
+ -- (Porta Venezia)
+ -- (Palestro)
+ -- (San Babila.one half)
+ |- (Duomo)
+ -- (Cordusio)
+ -- (Cairoli)
+ -- (Cadorna FN)
+ -- (Conciliazione)
+ -- (Pagano)
+ -- ++(-.5,0)
+ -- (Buonarotti)
+ -- (Amendola)
+ -- (Lotto)
+ -- (QT8)
+ -- (Lampugnano)
+ -- (Uruguay)
+ -- (Bonola)
+ -- (San Leonardo)
+ -- (Molino Dorino)
+ -- (Pero)
+ -- (Rho Fiera)
+ ;
+
+ \draw[line, one]
+ (Pagano)
+ -- ++(-.5,0)
+ -- (Wagner)
+ -- (De Angeli)
+ -- (Gambara)
+ -- (Bande Nere)
+ -- (Primaticcio)
+ -- (Inganni)
+ -- (Bisceglie)
+ ;
+
+ \draw[line, two]
+ (Cadorna FN)
+ -- (Lanza)
+ -- (Moscova)
+ -- (Garibaldi FS.two half)
+ -- (Gioia)
+ -- (Centrale)
+ -- (Caiazzo)
+ -- (Loreto)
+ -- (Piola)
+ -- (Lambrate FS)
+ -- ++(0.3,0)
+ -- (Udine)
+ -- (Cimiano)
+ -- (Crescenzago)
+ -- (Cascina Gobba)
+ -- (Cologno Sud)
+ -- (Cologno Centro)
+ -- (Cologno Nord)
+ ;
+
+ \draw[line, two]
+ (Cascina Gobba)
+ -- ++(.4,.4)
+ -- (Vimodrone)
+ -- (Cascina Burrona)
+ -- (Cernusco sul Naviglio)
+ -- (Villa Fiorita)
+ -- (Cassina de' Pecchi)
+ -- (Bussero)
+ -- (Villa Pompea)
+ -- (Gorgonzola)
+ -- (Cascina Antonietta)
+ -- (Gessate)
+ ;
+
+
+ \draw[line, four]
+ (San Babila.two half)
+ -- ++(0.1,0.1)
+ -- (Tricolore)
+ -- (Dateo)
+ -- (Susa)
+ -- (Argonne)
+ -- (Stazione Forlanini)
+ -- (Repetti)
+ -- (Lineate Aeroporto)
+ ;
+ \end{pgfonlayer}
+
+ %% \draw[line, one]
+ %% (Laßbergstr)
+ %% -- (Römerhof)
+ %% -- (Hasemannstr)
+ %% -- (Emil-Gött-Str)
+ %% -- (Musikhochschule)
+ %% -- (Alter Messplatz)
+ %% -- (Maria-Hilf-Kirche)
+ %% -- (Brauerei Ganter)
+ %% -- (Schwabentorbrücke)
+ %% -- (Schwabentorbrücke.west)
+ %% -- (Oberlinden.east)
+ %% -- (Oberlinden)
+ %% -- (Bertoldsbrunnen.two quarter)
+ %% -- (Stadttheater.two quarter)
+ %% -- (Hauptbahnhof.two quarter)
+ %% -- (Eschholzstrasse.two quarter)
+ %% -- (Rathaus.two quarter)
+ %% -- (Runzmattenweg.two half)
+ %% -- (Am Bischofskreuz)
+ %% -- (Betzenhauser Torplatz)
+ %% -| (Paduaallee)
+ %% -- (Moosgrund)
+ %% -- (Moosgrund.north two half)
+ %% -- (Diakoniekrankenhaus)
+ %% -- (Moosweiher)
+ %% ;
+ %% \begin{pgfonlayer}{lines}
+ %% \pgfmathparse{0.1*tan(45/2)}
+ %% \let\offset\pgfmathresult
+
+ %% \draw[railway] ($(Gundelfinger Str)+(3.9,-1)$)
+ %% node[label, left, anchor=south west] {Karlsruhe}
+ %% -- ($(Hauptbahnhof)+(0,1.7)$)
+ %% -- ($(Hauptbahnhof)$)
+ %% -- ++(0, -1)
+ %% -- ($(Pressehaus)+(0.5,0)$)
+ %% -- ++(0,-5)
+ %% node[label, right, anchor=south west] {Basel};
+
+ %% \draw[railway] ($(Moosweiher)-(1,0)$)
+ %% node[label, right, anchor=south east] {Breisach}
+ %% -- ($(Moosweiher)$)
+ %% -| ($(Hauptbahnhof)$)
+ %% -- ++(0, -1)
+ %% -- ($(Pressehaus)+(0.5,0)$)
+ %% -- ++(0, -2.3)
+ %% -- ++(3.3, 0)
+ %% -- ++(3,3)
+ %% -- ++(3,0)
+ %% node[label, left, anchor=south east] {Villingen-Schwenningen}
+ %% ;
+
+
+ %% \draw[line, one]
+ %% (Laßbergstr)
+ %% -- (Römerhof)
+ %% -- (Hasemannstr)
+ %% -- (Emil-Gött-Str)
+ %% -- (Musikhochschule)
+ %% -- (Alter Messplatz)
+ %% -- (Maria-Hilf-Kirche)
+ %% -- (Brauerei Ganter)
+ %% -- (Schwabentorbrücke)
+ %% -- (Schwabentorbrücke.west)
+ %% -- (Oberlinden.east)
+ %% -- (Oberlinden)
+ %% -- (Bertoldsbrunnen.two quarter)
+ %% -- (Stadttheater.two quarter)
+ %% -- (Hauptbahnhof.two quarter)
+ %% -- (Eschholzstrasse.two quarter)
+ %% -- (Rathaus.two quarter)
+ %% -- (Runzmattenweg.two half)
+ %% -- (Am Bischofskreuz)
+ %% -- (Betzenhauser Torplatz)
+ %% -| (Paduaallee)
+ %% -- (Moosgrund)
+ %% -- (Moosgrund.north two half)
+ %% -- (Diakoniekrankenhaus)
+ %% -- (Moosweiher)
+ %% ;
+
+ %% \draw[line, two]
+ %% (Günterstal Dorfstr)
+ %% -- (Klosterplatz)
+ %% -- (Wiesenweg)
+ %% -- (Wonnhalde.south two half)
+ %% -- (Wonnhalde)
+ %% -- (Holbeinstr)
+ %% -- (Lorettostr)
+ %% -- (Johanneskirche.two half)
+ %% -- (Holzmarkt.two half)
+ %% {[rounded corners=0.15cm]
+ %% |- (Bertoldsbrunnen.three quarter)
+ %% }
+ %% -- (Stadttheater.three quarter)
+ %% -- (Hauptbahnhof.three quarter)
+ %% -- (Eschholzstrasse.three quarter)
+ %% -- (Rathaus.three quarter)
+ %% -| (Robert-Koch-Str.two half)
+ %% |- (Friedrich-Ebert-Platz)
+ %% -- (Friedrich-Ebert-Platz.two quarter)
+ %% -- ($(Hauptfriedhof)-(0.675,0.675)$)
+ %% -- (Hauptfriedhof)
+ %% -- (Zollhallenplatz)
+ %% -- (Eugen-Martin-Str)
+ %% -- (Hornusstr.south one half)
+ %% -- (Hornusstr.one half)
+ %% ;
+
+ %% \draw[line, three]
+ %% (Innsbrucker Str)
+ %% -- (Vauban Mitte)
+ %% -- (Paula-Modersohn-Platz)
+ %% -| (Peter-Thumb-Str)
+ %% -- (Weddingenstr)
+ %% |- (Heinrich-von-Stephan-Str.one half)
+ %% -| (Johanneskirche.one half)
+ %% -- (Holzmarkt.one half)
+ %% |- (Bertoldsbrunnen.one half)
+ %% -- (Stadttheater.one half)
+ %% -- (Hauptbahnhof.one half)
+ %% -- (Eschholzstrasse.one half)
+ %% -- (Rathaus.one half)
+ %% -- (Runzmattenweg.one half)
+ %% -- (Runzmattenweg.north one half)
+ %% -- (Bissier Str)
+ %% -- (Rohrgraben)
+ %% -- (Bugginger Str)
+ %% -- ++(-0.45,-0.45)
+ %% -- (Am Lindenwäldle.two half)
+ %% -| (VAG-Zentrum)
+ %% -- (Munzinger Str)
+ %% ;
+
+ %% \draw[line, four]
+ %% (Gundelfinger Str)
+ %% -- (Glottertalstr)
+ %% -- (Berggasse)
+ %% -- (Reutebachgasse)
+ %% -- (Tullastr)
+ %% -- (Hornusstr.two half)
+ %% -- (Okenstr)
+ %% -- (Hauptstr)
+ %% -- (Tennenbacher Str)
+ %% -- (Europaplatz.two half)
+ %% -- (Bertoldsbrunnen.south two half)
+ %% -- (Bertoldsbrunnen.two half)
+ %% -- (Stadttheater.two half)
+ %% -- (Hauptbahnhof.two half)
+ %% -- (Eschholzstrasse.two half)
+ %% -- (Rathaus.two half)
+ %% -| (Robert-Koch-Str.one half)
+ %% |- (Killianstr)
+ %% -- (Berliner Allee)
+ %% -| (Elsässer Str)
+ %% -- (Technische Fakultät)
+ %% -- (Technische Fakultät.north two half)
+ %% -- (Europa-Park-Stadium)
+ %% -- (Messe)
+ %% ;
+
+ %% \draw[line, five]
+ %% (Europaplatz)
+ %% -| (Stadttheater)
+ %% -- (Erbprinzenstr)
+ %% -- (Erbprinzenstr.south two half)
+ %% -- (Mattenstr)
+ %% -- ($(Mattenstr)-(0.6,0.6)$)
+ %% -- (Heinrich-von-Stephan-Str.two half)
+ %% -- (Pressehaus)
+ %% -- (Haslach Bad)
+ %% -- (Scherrerplatz)
+ %% -- (Dorfbrunnen)
+ %% -- (Krozinger Str)
+ %% -- (Am Lindenwäldle.one half)
+ %% -- (Geschwister-Scholl-Platz)
+ %% -- (Maria-von-Rudloff-Platz)
+ %% -- (Bollerstaudenstr)
+ %% ;
+
+ %% \end{pgfonlayer}
+
+ %% \begin{pgfonlayer}{labels}
+ %% \node[font=\scriptsize, color=white] at (4.0,1.5){Neckar};
+ %% \node[font=\scriptsize, color=white, rotate=-45] at (-3.5,3.5) {Neckar};
+ %% \foreach\stop/\placement/\anchor/\rotate in {
+ %% Hauptbahnhof/left/north east/45,
+ %% Eschholzstrasse/left/north east/45,
+ %% Rathaus/right/west/45,
+ %% Stadttheater/below right/south west/45,
+ %% Bertoldsbrunnen/right/north west/45,
+ %% Robert-Koch-Str/below right/west/0,
+ %% Killianstr/above/west/45,
+ %% Berliner Allee/above/west/45,
+ %% Elsässer Str/left/east/0,
+ %% Technische Fakultät/right/south west/0,
+ %% Europa-Park-Stadium/right/west/0,
+ %% Messe/right/west/0,
+ %% Europaplatz/right/west/0,
+ %% Gundelfinger Str/right/west/0,
+ %% Glottertalstr/right/west/0,
+ %% Berggasse/right/west/0,
+ %% Reutebachgasse/right/west/0,
+ %% Tullastr/right/west/0,
+ %% Hornusstr/right/west/0,
+ %% Okenstr/right/west/0,
+ %% Hauptstr/right/west/0,
+ %% Tennenbacher Str/right/west/0,
+ %% Fahnenbergplatz/below left/north east/0,
+ %% Friedrich-Ebert-Platz/above/south/0,
+ %% Eugen-Martin-Str/left/east/0,
+ %% Zollhallenplatz/left/east/0,
+ %% Hauptfriedhof/left/east/0,
+ %% Holzmarkt/right/west/0,
+ %% Johanneskirche/right/west/0,
+ %% Lorettostr/right/west/0,
+ %% Holbeinstr/right/west/0,
+ %% Wonnhalde/right/west/0,
+ %% Wiesenweg/right/west/0,
+ %% Klosterplatz/right/west/0,
+ %% Günterstal Dorfstr/right/west/0,
+ %% Erbprinzenstr/left/east/45,
+ %% Mattenstr/right/west/0,
+ %% Reiterstr/below left/east/45,
+ %% Heinrich-von-Stephan-Str/below left/east/45,
+ %% Pressehaus/below left/east/45,
+ %% Haslach Bad/below left/east/45,
+ %% Scherrerplatz/below left/east/45,
+ %% Dorfbrunnen/below left/east/45,
+ %% Krozinger Str/below left/east/45,
+ %% Am Lindenwäldle/below left/east/45,
+ %% Bissier Str/right/west/0,
+ %% Rohrgraben/left/east/0,
+ %% Bugginger Str/right/west/0,
+ %% Runzmattenweg/right/east/-45,
+ %% Geschwister-Scholl-Platz/above left/west/45,
+ %% Maria-von-Rudloff-Platz/above left/west/45,
+ %% Bollerstaudenstr/above left/west/45,
+ %% VAG-Zentrum/right/west/0,
+ %% Munzinger Str/right/west/0,
+ %% Weddingenstr/right/west/0,
+ %% Peter-Thumb-Str/right/west/0,
+ %% Paula-Modersohn-Platz/below left/east/45,
+ %% Vauban Mitte/below left/east/45,
+ %% Innsbrucker Str/below left/east/45,
+ %% Am Bischofskreuz/above/south/0,
+ %% Betzenhauser Torplatz/above left/west/45,
+ %% Paduaallee/left/east/0,
+ %% Moosgrund/left/east/0,
+ %% Diakoniekrankenhaus/right/west/0,
+ %% Moosweiher/above right/south west/0,
+ %% Oberlinden/above/west/45,
+ %% Schwabentorbrücke/above/west/45,
+ %% Brauerei Ganter/above/west/45,
+ %% Maria-Hilf-Kirche/above/west/45,
+ %% Alter Messplatz/above/west/45,
+ %% Musikhochschule/above/west/45,
+ %% Emil-Gött-Str/above/west/45,
+ %% Hasemannstr/above/west/45,
+ %% Römerhof/above/west/45,
+ %% Laßbergstr/above/west/45%
+ %% } \node[label, \placement=0.05cm of \stop, rotate=\rotate, anchor=\anchor] {\contour{white}{\stop}};
+ %% \node[line name, fill=four, left=0.2cm of Messe] {\bf 4};
+ %% \node[line name, fill=four, above=0.2cm of Gundelfinger Str] {\bf 4};
+ %% \node[line name, fill=two, left=0.2cm of Hornusstr] {\bf 2};
+ %% \node[line name, fill=two, below=0.2cm of Günterstal Dorfstr] {\bf 2};
+ %% \node[line name, fill=five] at ($(Europaplatz)+(0.5,0.4)$) {\bf 5};
+ %% \node[line name, fill=five, left=0.2cm of Bollerstaudenstr] {\bf 5};
+ %% \node[line name, fill=three, left=0.2cm of Munzinger Str] {\bf 3};
+ %% \node[line name, fill=three, above=0.2cm of Innsbrucker Str] {\bf 3};
+ %% \node[line name, fill=one, above=0.2cm of Moosweiher] {\bf 1};
+ %% \node[line name, fill=one, below=0.2cm of Laßbergstr] {\bf 1};
+ %% \end{pgfonlayer}
+
+\end{tikzpicture}
+
+\end{document}
+% vim: nospell conceallevel=0
diff --git a/milano/trams.tex b/milano/trams.tex
new file mode 100644
index 0000000..ca2a2e4
--- /dev/null
+++ b/milano/trams.tex
@@ -0,0 +1,780 @@
+\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}{247,171,99}
+\definecolor{five}{RGB}{0,150,94}
+\definecolor{seven}{RGB}{255,204,0}
+\definecolor{nine}{RGB}{149,107,37}
+\definecolor{ten}{RGB}{166,15,128}
+\definecolor{twelve}{RGB}{94,107,175}
+\definecolor{fourteen}{RGB}{228,142,0}
+\definecolor{fifteen}{RGB}{225,117,0}
+\definecolor{sixteen}{RGB}{147,194,59}
+\definecolor{nineteen}{RGB}{227,0,11}
+\definecolor{twentyfour}{RGB}{253,195,0}
+\definecolor{twentyseven}{RGB}{140,29,117}
+\definecolor{thirtyone}{RGB}{243,155,154}
+\definecolor{thirtythree}{RGB}{94,107,175}
+
+\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}[
+ 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,
+ },
+ help line/.style = {
+ line width=0.05cm,
+ },
+ label/.style = {
+ font=\scriptsize,
+ align=center,
+ },
+ line name/.style = {
+ label,
+ color=white,
+ minimum width=1em,
+ minimum height=1em,
+ inner sep=0pt,
+ },
+ ]
+
+ % movable circle line
+ \newcommand{\polar}[1]{#1}
+
+ \begin{pgfonlayer}{stops}
+ \pgfmathsetmacro{\offset}{0.1*tan(45/2)}
+
+ \foreach\angle in {0,10,...,350} {
+ \draw[help line, color=gray!50] \polar{(0,0)} -- \polar{(\angle:8)};
+ \node at \polar{(\angle:8)} { \angle };
+ };
+
+
+ % core stations
+ \node[stop4, rotate=45] (Lega Lombarda) at (-1.1,4.5) {};
+ \node[stop4] (Lanza) at (0,3) {};
+ \node[stop4] (Cusani) at (0,2) {};
+ \node[stop6, below=1 of Cusani.east, anchor=east] (Cordusio) {};
+ \node[stop7, below=1.5 of Cordusio.west, anchor=west] (Duomo) {};
+
+ % right side
+ \node[stop3, rotate=90, anchor=east] (Missori) at ($(Duomo) + (1.5,-0.1)$) {};
+ \node[stop3, rotate=90] (Via Larga) at ($(Missori) + (1,1)$) {};
+ \node[stop3, rotate=90] (Augusto) at ($(Missori) + (2,1)$) {};
+
+ \node[stop2] (Piazza Fontana) at ($(Augusto) + (-0.5,1)$) {};
+ \node[stop2, rotate=45] (Crocetta) at ($(Missori) + (1,-1)$) {};
+
+ % left side
+ \node[stop2, rotate=90, left=2 of Cordusio.center, anchor=one half] (Ancona) {};
+ \node[stop2, rotate=-90, anchor=two half] (Cadorna) at ($(-3, 2) + (0,\offset)$) {};
+
+ \node[stop1] (Castello Cairoli) at (-1,2.5) {};
+ \node[stop1] (Ricasoli) at (-2,2.5) {};
+
+ \node[stop3, rotate=-45] (Via Torino Via S Maria Valle) at (-1,-2.3) {};
+
+ % ring
+ \node[stop2] (Centrale) at (4.2, 8) {};
+ \node[stop2, anchor=two half, rotate=90] (Monte Santo) at (2.2, 6) {};
+ \node[stop3, anchor=two half, rotate=45] (Repubblica) at ($(Monte Santo.two half) + (1,-1)$) {};
+ \node[stop3, anchor=center, rotate=45] (Vittorio Veneto) at ($(Repubblica.center) + (.9,-.9)$) {};
+ \node[stop1] (Porta Venezia) at (5, 3) {};
+ \node[stop2, below=1 of Porta Venezia, anchor=one half] (Viale Piave) {};
+ \node[stop3, rotate=90] (Piazza 5 Giornate) at (5,.1) {};
+ \node[stop1] (Monte Nero Via Spartaco) at (5, -2) {};
+ \node[stop1] (Viale Monte Nero Via Bergamo) at ($(Monte Nero Via Spartaco) - (1,1)$) {};
+ \node[stop1] (Porta Romana) at (3, -4) {};
+ \node[stop1] (Via Ripamonti Viale Sabotino) at (2.4, -4) {};
+ \node[stop1] (Porta Lodovica) at (.5, -4) {};
+ \node[stop2, rotate=90, anchor=two half] (24 Maggio) at (-.88,-4) {};
+ \node[stop2, rotate=90, anchor=two half] (Via Vigenavo) at (-1.7,-4) {};
+ \node[stop4, rotate=-40, anchor=north two half] (Piazzale Cantore) at (-2.3, -4) {};
+ \node[stop2, rotate=-45, anchor=two half] (Porta Genoa) at ($(Piazzale Cantore.two half) - (.5,.5)$){};
+ \node[stop2, rotate=45] (Piazzale Coni Zugna Via Solari) at ($(Piazzale Cantore.west) - (.4,-.4)$){};
+
+ \node[stop1] (Piazzale Aquileia) at (-5, -2) {};
+ \node[stop1] (Piazzale Baracca) at (-5,1) {};
+ \node[stop2, rotate=90, above=1 of Piazzale Baracca.north, anchor=center] (Quinto Alpini) {};
+ \node[stop2, rotate=45, anchor=two half] (Arco della Pace) at ($(Quinto Alpini) + (1,1.8)$) {};
+ \node[stop2, rotate=45] (Sempione Via Procaccini) at ($(Arco della Pace) + (-.5,.5)$) {};
+ \node[stop2] (Via Bramante) at (-2.6, 6) {};
+ \node[stop3] (Via Farini Via Ferrari) at (-1, 6) {};
+
+
+
+
+
+
+
+
+ % west
+ \node[stop1, left=2 of Piazzale Baracca] (De Angeli) {};
+ \node[stop1] (Segesta) at ($(De Angeli) + (-1,1)$) {};
+ \node[stop1, left=2 of Segesta] (San Siro Stadio) {};
+
+ \node[stop1, above left=1.65 of Quinto Alpini.north one half] (6 Febbraio) {};
+ \node[stop2, rotate=45, anchor=two half] (Domodossola) at ($(Sempione Via Procaccini.one half) + (-1,1)$) {};
+ \node[stop1, below left=1 of Domodossola.south one half] (Viale Boezio) {};
+
+
+
+ % Città studi
+ \node[stop3, rotate=90, anchor=one half] (Adalaide di Savoia) at ($(Viale Piave) + (2.4,0)$) {};
+ \node[stop2, rotate=135] (Valvassori Peroni) at ($(Adalaide di Savoia) + (2,2)$) {};
+ \node[stop1, above=1 of Valvassori Peroni.south one half, anchor=center] (Stazione Lambrate) {};
+ \node[stop1, right=1 of Valvassori Peroni.south two half, anchor=center] (Rimembranze di Lambrate) {};
+
+ \node[stop1] (Piazza Ferravilla) at ($(Adalaide di Savoia.south two half) + (1+\offset,-1)$) {};
+ \node[stop1, right=2 of Piazza Ferravilla] (Ortica) {};
+
+ % 33 & 5
+ \node[stop2, rotate=45, anchor=center] (Viale Tunisia) at ($(Adalaide di Savoia.north center) + (-2.3,2.3)$) {};
+ % 5
+ \node[stop2, rotate=-45, anchor=two half] (Via Vitruvio) at ($(Viale Tunisia) + (1.2,1.2)$) {};
+ % 1
+ \node[stop1] (Greco Rovereto) at ($(Via Vitruvio.two half) + (2,2)$) {};
+
+
+ % south
+ \node[stop1, below=2 of Porta Lodovica] (Agrippa) {};
+ \node[stop2, below=3 of 24 Maggio] (Piazza Abbiategrasso) {};
+ \node[stop2, below=3 of Piazza Abbiategrasso] (Via dei Missaglie Via Baroni) {};
+ \node[stop1, below left=1 of Via dei Missaglie Via Baroni.two half] (Via Grandi Via Bouzzi Rozzano) {};
+ \node[stop1, left=3 of Via Grandi Via Bouzzi Rozzano] (Via G Rossa) {};
+
+ \node[stop1, below=5 of Via Ripamonti Viale Sabotino] (Vigentino) {};
+
+ % south west
+ \node[stop1] (Via Valenza Alzaia Nav Grande) at ($(Porta Genoa.south one half) + (-.8,0)$) {};
+ \node[stop1] (Piazzale Negrelli) at ($(Via Valenza Alzaia Nav Grande.west) + (-2,-2)$) {};
+
+ \node[stop1] (Lorenteggio) at ($(Piazzale Coni Zugna Via Solari.north one half) - (4,4)$) {};
+
+ % south of Città studi
+ \node[stop2, rotate=90, right=2 of Piazza 5 Giornate.two half, anchor=two half] (Piazza Emilia) {};
+ \node[stop1] (Via Arconati) at ($(Piazza Emilia) + (0.2,-1)$) {};
+ \node[stop1, right=1 of Via Arconati] (Viale Molise) {};
+ \node[stop1, right=2 of Piazza Emilia.two half] (Repetti) {};
+ \node[stop1] (Viale Ungheria Via Mercante) at ($(Repetti) + (3,-3)$) {};
+ \node[stop1] (Viale Ungheria) at ($(Viale Ungheria Via Mercante) + (-.7,-.7)$) {};
+
+ \node[stop1, right=2 of Viale Monte Nero Via Bergamo.center, anchor=center] (Via Comelico) {};
+ \node[stop1] (Piazza Salgari) at ($(Via Comelico) + (1,-1)$) {};
+ \node[stop1, right=2 of Piazza Salgari] (Via Varsavia Via Monte Velino) {};
+ \node[stop1, above=0.5 of Via Varsavia Via Monte Velino] (Via Monte Velino) {};
+
+
+ % north west
+ \node[stop2, rotate=90] (Cenisio) at ($(Via Bramante) + (-.7,.7)$) {};
+ \node[stop2, rotate=90, left=1.5 of Cenisio.center, anchor=center] (Piazza Diocleziano) {};
+ \node[stop2, rotate=90, anchor=two half] (Piazza Firenze) at ($(Piazza Diocleziano.two half) + (-2.5,0)$) {};
+
+ \node[stop2, rotate=90, anchor=one half] (Via Mac Mahon Via Artieri) at ($(Piazza Diocleziano.north one half) + (-3.5,1.5)$) {};
+ \node[stop2, rotate=90, anchor=one half] (Piazza Castelli) at ($(Via Mac Mahon Via Artieri.one half) + (-1,0)$) {};
+
+ \node[stop1, below=1 of Via Mac Mahon Via Artieri.south one half, anchor=west] (Via Da Panicale) {};
+
+ \node[stop2, rotate=90] (Piazzale Accursio) at ($(Piazza Firenze) + (-2,0)$) {};
+ \node[stop2] (Piazzale Santorre di Santarosa) at ($(Piazza Castelli.north one half) + (-1,1)$) {};
+ \node[stop2, above=2 of Piazzale Santorre di Santarosa] (Roserio) {};
+
+ \node[stop1, left=3 of Piazzale Accursio.two half] (Piazzale Cimitero Maggiore) {};
+
+
+ % north
+ \node[stop2, above=1 of Via Farini Via Ferrari.one half, anchor=one half] (Via Farini Via Valtellina) {};
+ \node[stop2, above=1 of Via Farini Via Valtellina] (Via Farini Viale Stelvio) {};
+
+ \node[stop2, above=2.37 of Via Farini Viale Stelvio.two half, anchor=one half] (Ospedale Niguarda) {};
+ \node[stop1, above=2 of Ospedale Niguarda.one half] (Niguarda Parco Nord) {};
+ \node[stop1, left=2 of Via Farini Viale Stelvio.north one half] (Bausan) {};
+
+ \node[stop1] (Via Ugo Bassi) at ($(Via Farini Via Ferrari.two half) + (0,.7) + (.2,.2)$) {};
+
+ \node[stop2, anchor=one half] (Piazzale Lagosta) at ($(Via Ugo Bassi) + (2,1.2)$) {};
+
+ \node[stop2, rotate=90, above=1 of Centrale.one half, anchor=one half] (Viale Lunigiana) {};
+
+ \node[stop2, above=1.47 of Piazzale Lagosta.center, anchor=center] (Marche) {};
+ \node[stop2, above=1 of Marche.center, anchor=center] (Ca Granda) {};
+ \node[stop2, above=1 of Ca Granda] (Viale Testi Via S Marcellina) {};
+ \node[stop2, above=1 of Viale Testi Via S Marcellina] (Bicocca) {};
+ \node[stop1, right=3 of Bicocca] (Precotto Interno Deposito) {};
+
+ \node[stop1, above=3 of Bicocca.one half] (Primo Maggio) {};
+
+ \end{pgfonlayer}
+
+ \begin{pgfonlayer}{lines}
+ \pgfmathsetmacro{\offset}{0.1*tan(45/2)}
+ \pgfmathsetmacro{\line}{0.2}
+
+
+ \draw[line, one]
+ (Greco Rovereto)
+ -- (Via Vitruvio.two half)
+ -- (Viale Tunisia.east)
+ -- (Viale Tunisia.west)
+ {[rounded corners=0.3cm]
+ -- ($(Vittorio Veneto.south one half) + \line*(.7,-.7)$)
+ }
+ -- (Vittorio Veneto.one half)
+ -- (Repubblica.one half)
+ -- (Repubblica.north one half)
+ -- ($(Cordusio.two half) + (.3,0)$)
+ -- (Cordusio.two half)
+ -- (Cusani.two half)
+ -- ++(0,0.25)
+ -- ($(Cusani.one half) + (-.2,.25)$)
+ -- (Cadorna.one half)
+ -- (Quinto Alpini.two half)
+ -- ($(Quinto Alpini.north two half)$)
+ -- ++($(0,.2+2*\offset)$)
+ -- ($(Arco della Pace.south one half)$)
+ -- (Arco della Pace.one half)
+ -- (Sempione Via Procaccini.one half)
+ -- (Domodossola.two half)
+ -- ($(Piazza Firenze.south one half)$)
+ -- (Piazzale Accursio.one half)
+ -- (Piazzale Accursio.north one half)
+ {[rounded corners=1cm]
+ -- ++(-1.2,.5)
+ %% -- ($(Piazzale Santorre di Santarosa.south one half) - (0,1)$)
+ }
+ -- (Piazzale Santorre di Santarosa.south one half)
+ -- (Piazzale Santorre di Santarosa.one half)
+ -- (Roserio.one half)
+ ;
+
+ \draw[line, two]
+ % TODO north
+ (Bausan)
+ -- (Via Farini Viale Stelvio.north one half)
+ -- (Via Farini Viale Stelvio.one half)
+ -- (Via Farini Via Valtellina.one half)
+ -- (Via Farini Via Ferrari.one half)
+ -- ($(Lega Lombarda.north three quarter) + 2*\offset*(-.7,.7)$)
+ -- (Lega Lombarda.three quarter)
+ -- ($(Lanza.north three quarter) + (0,2*\offset)$)
+ -- (Lanza.three quarter)
+ -- (Cusani.three quarter)
+ -- (Cordusio.three quarter)
+ -- (Duomo.four sixth)
+ -- ($(Duomo.four sixth) - (0, 3 * \line + \offset)$)
+ -- (Via Torino Via S Maria Valle.center)
+ -- (Piazzale Cantore.north three quarter)
+ -- (Piazzale Cantore.three quarter)
+ -- (Porta Genoa.one half)
+ -- (Porta Genoa.south one half)
+ -- (Via Valenza Alzaia Nav Grande)
+ -- (Via Valenza Alzaia Nav Grande.west)
+ -- (Piazzale Negrelli)
+ ;
+
+ \draw[line, three]
+ (Duomo.three quarter)
+ -- ($(Duomo.three quarter) - (0, 3 * \line + 2 * \offset)$)
+ -- (Via Torino Via S Maria Valle.two half)
+ -- (24 Maggio)
+ -- (Piazza Abbiategrasso.one half)
+ -- (Via dei Missaglie Via Baroni.one half)
+ ;
+
+ \draw[line, four]
+ (Niguarda Parco Nord)
+ -- (Ospedale Niguarda.one half)
+ -- (Via Farini Viale Stelvio.two half)
+ -- (Via Farini Via Valtellina.two half)
+ -- (Via Farini Via Ferrari.center)
+ -- ($(Lega Lombarda.north two half)$)
+ -- (Lega Lombarda.two half)
+ -- ($(Lanza.north two half) + (0,3*\offset)$)
+ -- (Lanza.two half)
+ -- ++(0,-\line)
+ -- ($(Lanza.one half) + (-\line,-\line)$)
+ -- (Castello Cairoli)
+ -- (Ricasoli)
+ ;
+
+ \draw[line, five]
+ (Ortica)
+ -- (Piazza Ferravilla)
+ -- ($(Adalaide di Savoia.south two half) + (\offset, 0)$)
+ -- (Adalaide di Savoia.two half)
+ -- (Adalaide di Savoia.north two half)
+ -- (Viale Tunisia.two half)
+ -- (Viale Tunisia.north two half)
+ -- (Via Vitruvio.one half)
+ -- (Via Vitruvio.north one half)
+ -- ($(Centrale.south two half) + (0,2*\offset)$)
+ -- (Centrale.two half)
+ -- (Viale Lunigiana.south two half)
+ -- (Viale Lunigiana.two half)
+ -- (Viale Lunigiana.north two half)
+ {[rounded corners=0.2cm]
+ -- ($(Marche.south one half) - (0,\line)$)
+ }
+ -- (Marche.south one half)
+ -- (Marche.one half)
+ -- (Ca Granda.one half)
+ -- (Ca Granda.north one half)
+ -- (Ospedale Niguarda.north two half)
+ -- (Ospedale Niguarda)
+ ;
+
+ \draw[line, seven]
+ (Piazzale Lagosta.two half)
+ -- (Marche.two half)
+ -- (Ca Granda.two half)
+ -- (Bicocca.two half)
+ -- (Precotto Interno Deposito)
+ ;
+
+ \draw[line, nine]
+ (Centrale.center)
+ -- (Centrale.west)
+ -- ($(Monte Santo.east) + (0,2*\offset)$)
+ -- (Monte Santo.east)
+ -- (Monte Santo.west)
+ -- (Repubblica.center)
+ -- (Vittorio Veneto.center)
+ -- (Porta Venezia)
+ -- (Viale Piave.one half)
+ -- (Piazza 5 Giornate.one half)
+ -- (Monte Nero Via Spartaco)
+ -- (Viale Monte Nero Via Bergamo)
+ -- (Porta Romana)
+ -- (24 Maggio.two half)
+ -- (Via Vigenavo.two half)
+ -- (Piazzale Cantore.north two half)
+ -- (Piazzale Cantore.two half)
+ -- (Porta Genoa.two half)
+ ;
+
+ \draw[line, ten]
+ (24 Maggio.one half)
+ -- (Via Vigenavo.one half)
+ -- (Via Vigenavo.north one half)
+ -- ($(Porta Genoa.east) + (.4,0)$)
+ -- (Porta Genoa.east)
+ -- ($(Porta Genoa.west) + .1*(-.7,.7)$)
+ -- (Piazzale Cantore.two quarter)
+ -- ($(Piazzale Cantore.north one half) - \offset*(1,1)$)
+ %% -- (Piazzale Cantore.north one half)
+ %% -- (Piazzale Cantore.one half)
+ -- (Piazzale Coni Zugna Via Solari.south two half)
+ -- (Piazzale Coni Zugna Via Solari.two half)
+ -- (Piazzale Aquileia)
+ -- (Quinto Alpini.center)
+ -- ($(Quinto Alpini.two half) + (0,\line)$)
+ {[rounded corners=0.3cm]
+ -- ($(Arco della Pace.south two half) + \line*(.7,-.7)$)
+ }
+ -- (Arco della Pace.two half)
+ -- (Sempione Via Procaccini.two half)
+ -- ($(Via Bramante.west) - (\offset,0)$)
+ -- (Via Bramante)
+ -- (Via Farini Via Ferrari)
+ -- (Monte Santo.two half)
+ -- ($(Monte Santo.south two half) + (0,2*\offset)$)
+ -- ($(Centrale.south one half) $)
+ -- (Centrale.one half)
+ -- (Viale Lunigiana.one half)
+ ;
+
+ \draw[line, twelve]
+ % TODO
+ (Viale Molise)
+ -- (Via Arconati)
+ -- ($(Piazza Emilia.one half) + (.2,0)$)
+ -- (Piazza Emilia.one half)
+ -- (Piazza 5 Giornate.center)
+ -- (Augusto.center)
+ -- (Via Larga.center)
+ -- ++(-0.2,0)
+ -- ($(Missori.two half) + (.2,0)$)
+ -- (Missori.two half)
+ -- ($(Duomo.south three sixth)$)
+ -- (Duomo.three sixth)
+ -- (Cordusio.three sixth)
+ -- (Cusani.one half)
+ -- (Lanza.one half)
+ -- ($(Lanza.north one half)$)
+ -- (Lega Lombarda.one half)
+ -- ($(Via Bramante.south one half) - (0,\offset)$)
+ -- (Via Bramante.one half)
+ -- (Via Bramante.north one half)
+ {[rounded corners=0.35cm]
+ -- ++(0,.4)
+ }
+ -- (Cenisio.south one half)
+ -- (Cenisio.one half)
+ -- (Piazza Diocleziano.one half)
+ -- (Piazza Diocleziano.north one half)
+ {[rounded corners=0.5cm]
+ -- ($(Piazza Diocleziano.north one half) - (.5,0)$)
+ -- ($(Via Mac Mahon Via Artieri.two half) + (2,0)$)
+ }
+ -- (Via Mac Mahon Via Artieri.two half)
+ -- (Piazza Castelli.two half)
+ -- (Piazza Castelli.north two half)
+ {[rounded corners=0.3cm] -- ++(-.3,0)
+ -- (Piazzale Santorre di Santarosa.south two half)
+ }
+ -- (Piazzale Santorre di Santarosa.two half)
+ -- (Roserio.two half)
+ ;
+
+ \draw[line, fourteen]
+ % TODO
+ (Piazzale Cimitero Maggiore)
+ -- (Piazzale Accursio.two half)
+ -- (Piazza Firenze.two half)
+ -- (Piazza Diocleziano.north two half)
+ -- (Piazza Diocleziano.two half)
+ -- (Cenisio.two half)
+ -- ($(Cenisio.south two half)$)
+ {[rounded corners=0.55cm]
+ -- ++(.6,0)
+ }
+ -- ($(Via Bramante.north two half)$)
+ -- (Via Bramante.two half)
+ -- (Via Bramante.south two half)
+ -- (Lega Lombarda.two quarter)
+ -- ($(Lanza.north two quarter) + (0,\offset)$)
+ -- (Lanza.two quarter)
+ -- (Cusani.two quarter)
+ -- (Cordusio.four sixth)
+ -- (Duomo.center)
+ -- ($(Duomo.center) - (0, 3 * \line)$)
+ -- (Via Torino Via S Maria Valle.one half)
+ -- ($(Piazzale Cantore.north two quarter) + \offset*(2,2)$)
+ -- (Piazzale Cantore.one half)
+ -- ($(Piazzale Cantore.west) - (2*\offset,0)$)
+ %% -- ($(Piazzale Cantore.south two quarter) + (0,-\offset)$)
+ %% -- ($(Piazzale Cantore.south one half) + (-\offset,-\offset)$)
+ -- (Piazzale Coni Zugna Via Solari.one half)
+ -- (Piazzale Coni Zugna Via Solari.north one half)
+ -- (Lorenteggio)
+ ;
+
+ \draw[line, fifteen]
+ (Duomo.two half)
+ -- (Porta Lodovica)
+ -- (Agrippa)
+ -- (Agrippa.south)
+ -- (Piazza Abbiategrasso.north two half)
+ -- (Piazza Abbiategrasso.two half)
+ -- (Via dei Missaglie Via Baroni.two half)
+ -- (Via dei Missaglie Via Baroni.south two half)
+ {[rounded corners=0.5cm]
+ -- ($(Via Grandi Via Bouzzi Rozzano) + (.5,0)$)
+ -- (Via Grandi Via Bouzzi Rozzano)
+ }
+ -- (Via G Rossa)
+ ;
+
+ \draw[line, sixteen]
+ (San Siro Stadio)
+ -- (Segesta)
+ -- (De Angeli)
+ -- (Piazzale Baracca)
+ -- (Ancona.one half)
+ -- (Cordusio.one half)
+ -- (Duomo.one half)
+ {[rounded corners=0.5cm]
+ -- ($(Duomo.south one half) - (0,0.4)$)
+ }
+ -- (Missori.one half)
+ -- ++(0.2,0)
+ -- (Crocetta.two half)
+ -- (Viale Monte Nero Via Bergamo)
+ -- (Via Comelico)
+ -- (Piazza Salgari)
+ -- (Via Varsavia Via Monte Velino)
+ -- (Via Monte Velino)
+ ;
+
+ \draw[line, nineteen]
+ (Stazione Lambrate)
+ -- (Valvassori Peroni.south one half)
+ -- (Valvassori Peroni.one half)
+ {[rounded corners=0.2cm]
+ -- ($(Adalaide di Savoia.south one half) + (2*\offset,0)$)
+ }
+ -- (Adalaide di Savoia.one half)
+ -- (Viale Piave.two half)
+ -- ($(Piazza 5 Giornate.one half) + (.2,0)$)
+ -- (Piazza 5 Giornate.one half)
+ -- (Augusto.one half)
+ -- (Via Larga.one half)
+ -- ++(-0.1,0)
+ -- ($(Missori.two quarter) + (.3,0)$)
+ -- (Missori.two quarter)
+ {[rounded corners=0.3cm]
+ -- ($(Duomo.south two quarter) - (0,0.2)$)
+ }
+ -- (Duomo.two quarter)
+ -- (Cordusio.two quarter)
+ -- ($(Cordusio.north two quarter)$)
+ -- (Ancona.two half)
+ -- (Cadorna.two half)
+ -- (Quinto Alpini.one half)
+ -- (Quinto Alpini.north one half)
+ -- (6 Febbraio)
+ -- (Viale Boezio)
+ -- (Domodossola.south one half)
+ -- (Domodossola.one half)
+ -- (Piazza Firenze.west)
+ {[rounded corners=0.3cm]
+ -- ($(Piazza Firenze.east) + (0,\line)$)
+ -- (Via Da Panicale)
+ }
+ -- (Via Da Panicale.west)
+ -- (Via Mac Mahon Via Artieri.south one half)
+ -- (Via Mac Mahon Via Artieri.one half)
+ -- (Piazza Castelli.one half)
+ ;
+
+ \draw[line, twentyfour]
+ (Piazza Fontana.one half)
+ {[rounded corners=0.2cm]
+ |- ++(0,-.7)
+ }
+ -- ($(Via Larga.two half) + (.1,0)$)
+ -- (Via Larga.two half)
+ -- ++(-0.3,0)
+ -- ($(Missori.two half) + (0,.1)$)
+ -- ($(Missori.one half) - (0,.1)$)
+ -- (Crocetta.one half)
+ -- (Via Ripamonti Viale Sabotino)
+ -- (Vigentino)
+ ;
+
+ \draw[line, twentyseven]
+ (Viale Ungheria.east)
+ -- (Viale Ungheria Via Mercante)
+ -- (Repetti)
+ -- (Piazza Emilia.two half)
+ -- (Piazza 5 Giornate.two half)
+ -- (Augusto.two half)
+ -- ++(-.1,0)
+ {[rounded corners=0.2cm]
+ -- ($(Piazza Fontana.two half) - (0,.7)$)
+ }
+ -- (Piazza Fontana.two half)
+ ;
+
+ \draw[line, thirtyone]
+ (Viale Testi Via S Marcellina.one half)
+ -- (Bicocca.one half)
+ -- (Primo Maggio)
+ ;
+
+ \draw[line, thirtythree]
+ (Rimembranze di Lambrate)
+ -- (Valvassori Peroni.south two half)
+ -- (Valvassori Peroni.two half)
+ -- (Adalaide di Savoia.south center)
+ -- (Adalaide di Savoia.center)
+ -- ($(Adalaide di Savoia.north center) + (-2*\offset,0)$)
+ -- (Viale Tunisia.one half)
+ -- (Viale Tunisia.north one half)
+ -- ($(Vittorio Veneto.south two half)$)
+ -- (Vittorio Veneto.two half)
+ -- (Repubblica.two half)
+ -- (Monte Santo.south one half)
+ -- (Monte Santo.north one half)
+ -- (Via Farini Via Ferrari.south two half)
+ -- ++(0,.7)
+ -- (Via Ugo Bassi)
+ -- ++(1,0)
+ -- (Piazzale Lagosta.south one half)
+ -- (Piazzale Lagosta.one half)
+ ;
+ \end{pgfonlayer}
+
+ \begin{pgfonlayer}{labels}
+ \foreach\stop/\placement/\anchor/\rotate in {
+ Lega Lombarda/right/west/0,
+ Lanza/right/west/0,
+ Cusani/right/west/0,
+ Cordusio/right/north west/0,
+ Duomo/above/south/0,
+ Missori/right/north west/0, % TODO further east?
+ Via Larga/below/north west/-45,
+ Augusto/below/north west/-45,
+ Piazza Fontana/above/south/0,
+ Crocetta/above right/south west/0,
+ Ancona/below/north/0,
+ Cadorna/above/south/0,
+ Castello Cairoli/above/east/-45,
+ Ricasoli/above/east/-45,
+ Centrale/right/west/0,
+ Monte Santo/above right/west/0,
+ Repubblica/above right/south west/0,
+ Vittorio Veneto/left/east/45,
+ Porta Venezia/left/east/45,
+ Viale Piave/above/west/45,
+ Piazza 5 Giornate/below right/west/-45,
+ Viale Monte Nero Via Bergamo/below right/west/-45,
+ Porta Romana/below right/west/-45,
+ Via Ripamonti Viale Sabotino/below right/west/-45,
+ Porta Lodovica/below/west/-45,
+ 24 Maggio/below/west/-45,
+ Via Vigenavo/below/west/-45,
+ Piazzale Cantore/below right/west/-45,
+ Porta Genoa/below right/west/-45,
+ Piazzale Aquileia/below left/east/0,
+ Piazzale Baracca/below left/east/45,
+ Quinto Alpini/below/north/0,
+ Arco della Pace/below left/east/0,
+ Via Bramante/above left/east/0,
+ Agrippa/below left/east/-45,
+ Via G Rossa/above/south/0,
+ Vigentino/left/east/0,
+ Via Comelico/above right/south west/0,
+ Piazza Salgari/below/north/0,
+ Via Monte Velino/above/south/0,
+ Piazza Emilia/above/south/0,
+ Repetti/above/south/0,
+ Viale Ungheria/below/north/0,
+ Via Arconati/below/west/-45,
+ Viale Molise/below/west/-45,
+ Adalaide di Savoia/below/north/0,
+ Piazza Ferravilla/above/west/45,
+ Ortica/above/west/45,
+ Valvassori Peroni/below/north west/0,
+ Stazione Lambrate/above/west/45,
+ Rimembranze di Lambrate/above/west/45,
+ Viale Tunisia/below left/west/0,
+ Piazzale Negrelli/below right/north west/0,
+ Lorenteggio/below right/north west/0,
+ De Angeli/below/north/0,
+ Segesta/above/south/0,
+ San Siro Stadio/above/south/0,
+ 6 Febbraio/left/east/0,
+ Viale Boezio/left/east/0,
+ Domodossola/left/north east/0,
+ Cenisio/above/east/-45,
+ Piazza Firenze/below left/east/45,
+ Piazzale Accursio/below left/east/45,
+ Piazza Castelli/above right/west/45,
+ Roserio/above/south/0,
+ Ospedale Niguarda/left/east/0,
+ Niguarda Parco Nord/above/south/0,
+ Bausan/above/south/0,
+ Via Ugo Bassi/below right/north west/0,
+ Viale Lunigiana/above/south/0,
+ Marche/right/south west/0,
+ Ca Granda/right/south west/0,
+ Bicocca/above right/west/45,
+ Precotto Interno Deposito/above/south/0,
+ Primo Maggio/above/south/0,
+ Via Vitruvio/below right/north west/0,
+ Greco Rovereto/above/south/0
+ } \node[label, \placement=0.07cm of \stop.center, rotate=\rotate, anchor=\anchor] {\contour{white}{\stop}};
+
+ \foreach\stop/\placement/\anchor/\rotate/\above/\below in {
+ Piazzale Coni Zugna Via Solari/above/south east/0/Piazzale Coni Zugna/Via Solari,
+ Via Torino Via S Maria Valle/above/south east/0/Via Torino/Via S Maria Valle,
+ Via dei Missaglie Via Baroni/left/east/0/Via dei Missaglie/Via Baroni,
+ Via Grandi Via Bouzzi Rozzano/below/west/0/Via Grandi/Via Bouzzi Rozzano,
+ Via Varsavia Via Monte Velino/below/north/0/Via Varsavia/Via Monte Velino,
+ Viale Ungheria Via Mercante/above right/west/0/Viale Ungheria/Via Mercante,
+ Monte Nero Via Spartaco/above right/west/0/Monte Nero/Via Spartaco,
+ Via Valenza Alzaia Nav Grande/below/north/0/Via Valenza Alzaia/Nav Grande,
+ Piazza Abbiategrasso/below left/north east/0/Piazza/Abbiategrasso,
+ Sempione Via Procaccini/above/south west/0/Corso Sempione/Via Procaccini,
+ Piazza Diocleziano/above/south/0/Piazza/Diocleziano,
+ Via Mac Mahon Via Artieri/above right/south west/45/Via Mac Mahon/Via Artieri,
+ Via Da Panicale/above left/south east/0/Via Da/Panicale,
+ Piazzale Santorre di Santarosa/above left/south east/0/Piazzale Santorre/di Santarosa,
+ Piazzale Cimitero Maggiore/below/north/0/Piazzale/Cimitero Maggiore,
+ Via Farini Via Ferrari/below right/north west/0/Via Farini/Via Ferrari,
+ Via Farini Via Valtellina/above left/north east/0/Via Farini/Via Valtellina,
+ Via Farini Viale Stelvio/above right/south west/0/Via Farini/Viale Stelvio,
+ Piazzale Lagosta/above right/south west/0/Piazzale/Lagosta,
+ Viale Testi Via S Marcellina/right/west/0/Viale Testi/Via S Marcellina
+ } {
+ \node[label, \placement=0.1cm of \stop.center, rotate=\rotate, anchor=\anchor] (above) {\contour{white}{\above}};
+ \node[label, below=.7em of above.center, rotate=\rotate, anchor=center] (below) {\contour{white}{\below}};
+ };
+
+
+ \end{pgfonlayer}
+\end{tikzpicture}
+
+\end{document}
+% vim: nospell conceallevel=0