From 04e5fed3239b9065fa69ae67885f7ffe0db50f5b Mon Sep 17 00:00:00 2001
From: stuebinm
Date: Wed, 2 Oct 2024 20:32:56 +0200
Subject: all the tram stations

---
 milano/trams.tex | 1355 ++++++++++++++++++++++++++++++++++--------------------
 1 file changed, 866 insertions(+), 489 deletions(-)

(limited to 'milano/trams.tex')

diff --git a/milano/trams.tex b/milano/trams.tex
index 641ea6e..3281fff 100644
--- a/milano/trams.tex
+++ b/milano/trams.tex
@@ -16,10 +16,12 @@
 \cs_new_eq:NN \tlputleft \tl_put_left:Nn
 \cs_new_eq:NN \tlputright \tl_put_right:Nn
 
-\cs_new_eq:NN \seqsetsplit \seq_set_split:Nnn
+\cs_new_eq:NN \seqsetsplit \seq_set_split:Nne
 \cs_new_eq:NN \seqMapInline \seq_set_map:NNn
 \cs_new_eq:NN \seqPopRight \seq_pop_right:NN
 \cs_new_eq:NN \seqUse \seq_use:Nn
+\cs_new_eq:NN \seqshow \seq_show:N
+
 
 % scratch space for multi-line labels later
 \seq_new:N \nodeseq
@@ -62,6 +64,21 @@
 
 \contourlength{.2ex}
 
+
+\def\labelContour#1{%
+    \seqsetsplit\nodeseq{ |}{#1}%
+    \seqMapInline\temp\nodeseq{\contour{white}{##1}}%
+    \seqUse\temp{\\}
+}
+
+\def\mlabel(#1, #2, #3, #4, #5)#6{
+    \tlset\nodename{#6}
+    \tlremove\nodename{|}
+    \node[label, align=center, anchor=#2, rotate=#3] at ($(\nodename.#1) + (#4:#5)$)
+     {\labelContour{#6}};
+}
+\def\slabel(#1, #2)#3{\mlabel(#1, #2, 0, 0, 0){#3}}
+
 \begin{document}
 
 \begin{tikzpicture}[
@@ -79,6 +96,7 @@
       -{Latex[length=5mm]},
     },
     stop/.style = {
+      black,
       rounded corners=0.1cm,
       line width=0.05cm,
       fill=white,
@@ -123,6 +141,7 @@
       line width=0.05cm,
     },
     label/.style = {
+      black,
       font=\scriptsize,
       align=center,
     },
@@ -137,24 +156,24 @@
   ]
 
   % movable circle line
-  \newcommand{\polar}[1]{($#1 + (-.2,.5)$)}
-  \def\rad{5}
+  \newcommand{\polar}[1]{($#1 + (0,.5)$)}
+  \def\rad{6}
 
   \def\centerarc(#1:#2:#3)
-    { ($(-.2,.5) + ({#3*cos(#1)},{#3*sin(#1)})$) arc (#1:#2:#3) }
+    { ($(0,.5) + ({#3*cos(#1)},{#3*sin(#1)})$) arc (#1:#2:#3) }
 
 
   \begin{pgfonlayer}{stops}
     \pgfmathsetmacro{\offset}{0.1*tan(45/2)}
 
-
     % core stations
-    \node[stop4, rotate=45] (Lega Lombarda) at (-1.1,4.5) {};
+    \node[stop4, rotate=35] (Lega Lombarda) at (-.7,4.4) {};
+    \node[stop4, rotate=35] (Arena) at (-0.2,3.7) {};
     \node[stop4] (Lanza) at (0,3) {};
     \node[stop4] (Cusani) at (0,2) {};
     \node[stop6, below=1 of Cusani.east, anchor=east] (Cordusio) {};
 
-    \node[stop2, below=1.5 of Cordusio.four eighth, anchor=one half] (DuomoN) {};
+    \node[stop2, below=1 of Cordusio.four eighth, anchor=one half] (DuomoN) {};
     \node[stop4, below=.6 of DuomoN.one half, anchor=one half] (Duomo) {};
     \draw[stop]
       ($(DuomoN.two half)+(90:0.1)+(0:0.1)$)
@@ -168,149 +187,171 @@
     ;
 
     % left side
-    \node[stop2, rotate=90, left=1.5 of Cordusio.center, anchor=one half] (Ancona) {};
-    \node[stop2, rotate=-90, anchor=two half] (Cadorna) at ($(-2.7, 2) + (0,\offset)$) {};
+    \node[stop2, rotate=90, left=1.2 of Cordusio.center, anchor=one half] (Via Meravigli) {};
+    \node[stop2, rotate=90, left=2.4 of Cordusio.center, anchor=one half] (Largo d'Ancona) {};
+    \node[stop2, rotate=-90, anchor=two half] (Piazza Virgilio) at ($(-3.6, 1.6) + (0,\offset)$) {};
+    \node[stop2, rotate=-90, anchor=two half] (Via 20 Settembre) at ($(-4.7, 1.6) + (0,\offset)$) {};
 
-    \node[stop1] (Castello Cairoli) at (-1.1,2.5) {};
-    \node[stop1] (Ricasoli) at (-2.2,2.5) {};
+    \node[stop1] (Castello Cairoli) at (-1.2,2.8) {};
+    \node[stop1] (Ricasoli) at (-2.2,2.8) {};
 
-    \node[stop3, rotate=-45] (Via Torino Via S Maria Valle) at (-1,-2.5) {};
+    \node[stop3, rotate=-50] (Via Torino Via Palla) at (-.5,-1.4) {};
+    \node[stop3, rotate=-50] (Via Torino Via S Maria Valle) at ($(Via Torino Via Palla) + (40:-.7)$) {};
+    \node[stop3, rotate=-50] (Carrobbio) at ($(Via Torino Via S Maria Valle) + (40:-.7)$) {};
+    \node[stop2, rotate=-50, anchor=one half] (Corso Genova Via Sapeto) at ($(Carrobbio.one half) + (40:-1.3)$) {};
 
     % ring
-    \node[stop3, rotate=-30] (Centrale) at \polar{(65:8.2)} {};
-    \node[stop2, anchor=west, rotate=70] (Monte Santo) at \polar{(70:5.1)} {};
-    \node[stop3, anchor=center, rotate=57] (Repubblica) at \polar{(60:5)} {};
-    \node[stop3, anchor=center, rotate=45] (Vittorio Veneto) at \polar{(50:5)} {};
-    \node[stop1, anchor=center] (Porta Venezia) at \polar{(30:5)} {};
-    \node[stop2, anchor=one half, rotate=20] (Viale Piave) at \polar{(20:5)} {};
-    \node[stop3, anchor=center, rotate=90] (Piazza 5 Giornate) at \polar{(-3:5)} {};
-    \node[stop1, anchor=center] (Monte Nero Via Spartaco) at \polar{(-16:5)} {};
-    \node[stop1, anchor=center, rotate=-30] (Viale Monte Nero Via Bergamo) at \polar{(-30:5)} {};
-    \node[stop1, anchor=center, rotate=-45] (Porta Romana) at \polar{(-45:5)} {};
-    \node[stop1, anchor=center, rotate=-50] (Via Ripamonti Viale Sabotino) at \polar{(-50:5)} {};
-    \node[stop1, anchor=center, rotate=10] (Porta Lodovica) at \polar{(-81:5)} {};
-    \node[stop2, anchor=two half, rotate=90] (24 Maggio) at \polar{(-97:5)} {};
-    \node[stop2, anchor=two half, rotate=71] (Via Vigenavo) at \polar{(-108:5)} {};
-    \node[stop4, anchor=north center, rotate=-38] (Piazzale Cantore) at \polar{(-118:5)} {};
-    \node[stop2, rotate=-45, anchor=two half] (Porta Genoa) at ($(Piazzale Cantore.two half) + (-134:1)$) {};
-    \node[stop2, rotate=40, anchor=two half] (Piazzale Coni Zugna Via Solari) at \polar{(-140:5)} {};
-
-    \node[stop1, anchor=center] (Piazzale Aquileia) at \polar{(-160:5)} {};
-    \node[stop1, anchor=center] (Piazzale Baracca) at \polar{(174:5)} {};
-    \node[stop2, anchor=center, rotate=71] (Quinto Alpini) at \polar{(161:5)} {};
-    \node[stop2, anchor=two half, rotate=-40] (Arco della Pace) at \polar{(145:4.6)} {};
-    \node[stop2, anchor=two half, rotate=50] (Corso Sempione Via Procaccini) at \polar{(140:5.4)} {};
-    \node[stop2, anchor=center, rotate=25] (Via Bramante) at \polar{(120:5.4)} {};
-    \node[stop3, anchor=center, rotate=9] (Via Farini Via Ferrari) at \polar{(99:5.4)} {};
-
-
-
-
-
-
+    \node[stop3, rotate=-30] (Centrale) at \polar{(61:\rad+4.2)} {};
+    \node[stop2, anchor=west, rotate=65] (Monte Santo) at \polar{(62:\rad+.1)} {};
+    \node[stop3, anchor=center, rotate=57] (Repubblica) at \polar{(55:\rad)} {};
+    \node[stop3, anchor=center, rotate=45] (Vittorio Veneto) at \polar{(45:\rad)} {};
+    \node[stop1, anchor=center] (Porta Venezia) at \polar{(32:\rad)} {};
+    \node[stop2, anchor=one half, rotate=25] (Viale Piave) at \polar{(25:\rad)} {};
+    \node[stop2, anchor=one half, rotate=19] (Tricolore) at \polar{(19:\rad)} {};
+    \node[stop2, anchor=one half, rotate=13] (Viale Premuda) at \polar{(13:\rad)} {};
+    \node[stop3, anchor=center, rotate=90] (Piazza 5 Giornate) at \polar{(-3:\rad)} {};
+    \node[stop1, anchor=center] (Monte Nero Via Spartaco) at \polar{(-16:\rad)} {};
+    \node[stop1, anchor=center] (Viale Monte Nero Via Bergamo) at \polar{(-27.5:\rad)} {};
+    \node[stop1, anchor=center, rotate=-45] (Viale Monte Nero Via Pier Lombardo) at \polar{(-36:\rad)} {};
+    \node[stop1, anchor=center, rotate=-45] (Porta Romana) at \polar{(-44:\rad)} {};
+    \node[stop1, anchor=center, rotate=-45] (Viale Sabotino) at \polar{(-51:\rad)} {};
+    \node[stop1, anchor=center, rotate=-50] (Via Ripamonti Viale Sabotino) at \polar{(-58:\rad)} {};
+    \node[stop1, anchor=center] (Viale Bligny) at \polar{(-65:\rad)} {};
+    \node[stop1, anchor=center] (Via Bocconi) at \polar{(-74:\rad)} {};
+    \node[stop1, anchor=center, rotate=0] (Porta Lodovica) at \polar{(-85:\rad)} {};
+    \node[stop1, anchor=center] (Viale Col di Lana) at \polar{(-96:\rad)} {};
+    \node[stop2, anchor=two half, rotate=90] (24 Maggio) at \polar{(-106:\rad)} {};
+    \node[stop2, anchor=two half, rotate=60] (Via Vigenavo Viale Gorizia) at \polar{(-115:\rad)} {};
+    \node[stop4, anchor=north center, rotate=-45] (Piazzale Cantore) at \polar{(-130:\rad)} {};
+    \node[stop2, rotate=-47, anchor=two half] (Porta Genova) at ($(Piazzale Cantore.two half) + (-140:1)$) {};
+    \node[stop2, rotate=40, anchor=two half] (Piazzale Coni Zugna Via Solari) at \polar{(-140:\rad)} {};
+
+    \node[stop1, anchor=center] (Viale Coni Zugna Via Foppa) at \polar{(-152:\rad)} {};
+    \node[stop1, anchor=center] (Piazzale Aquileia) at \polar{(-159:\rad)} {};
+    \node[stop1, anchor=center] (Viale San Michele del Carso Piazza De Meis) at \polar{(-165:\rad)} {};
+    \node[stop1, anchor=center] (Piazzale Baracca) at \polar{(184:\rad)} {};
+    \node[stop1, anchor=center] (Conciliazone) at \polar{(179:\rad)} {};
+    \node[stop1, anchor=center] (Via Arosto) at \polar{(174:\rad)} {};
+    \node[stop2, anchor=center, rotate=71] (Quinto Alpini) at \polar{(168:\rad)} {};
+    \node[stop2, anchor=two half, rotate=-50] (Corso Sempione Via Canova) at \polar{(145:\rad-.8)} {};
+    \node[stop2, anchor=center, rotate=-50] (Arco della Pace) at ($(Corso Sempione Via Canova) + (40:-.9)$) {};
+    \node[stop2, anchor=center, rotate=-50] (Via Pagano Via Canova) at ($(Corso Sempione Via Canova) + (40:-1.5)$) {};
+
+    \node[stop2, anchor=two half, rotate=50] (Corso Sempione Via Villasanta) at \polar{(140:\rad-.4)} {};
+
+    \node[stop2, anchor=two half, rotate=50] (Corso Sempione Via Procaccini) at \polar{(140:\rad+.4)} {};
+
+    \node[stop1, anchor=center, rotate=35] (Piazza Gramsci) at \polar{(135:\rad+.4)} {};
+    \node[stop1, anchor=center, rotate=35] (Via Procaccini Via Lomazzo) at \polar{(130:\rad+.4)} {};
+    \node[stop1, anchor=center, rotate=35] (Via Procaccini Via Nono) at \polar{(124:\rad+.4)} {};
+
+    \node[stop2, anchor=center, rotate=30] (Piazzale Cimitero Monumentale Via Bramante) at \polar{(118:\rad+.4)} {};
+    \node[stop1, anchor=center, rotate=35] (Monumentale) at \polar{(108:\rad+.4)} {};
+    \node[stop3, anchor=center, rotate=9] (Via Farini Via Ferrari) at \polar{(95:\rad+.4)} {};
+
+
+    \node[stop2, anchor=west, rotate=85] (Stazione Garibaldi) at \polar{(85:\rad+.1)} {};
+    \node[stop2, anchor=west, rotate=80] (Viale Monte Grappa Via Gioia) at \polar{(76:\rad+.1)} {};
+    \node[stop2, anchor=west, rotate=72] (Piazzale Principessa Clotilde Ospedale Fatebenefratelli) at \polar{(68:\rad+.1)} {};
+
+
+    \node[stop2, anchor=one half] at ($(Via Farini Via Ferrari.one half) - (0, .7)$) (Piazzale Baiamonti) {};
+    \node[stop2, anchor=one half] at ($(Piazzale Baiamonti.one half) - (0, .7)$) (Viale Montello) {};
+    % TODO: there is one missing here (Via Bramante Via Giannone)!
+    \node[stop2, anchor=one half, rotate=50] at ($(Lega Lombarda.north one half) + (140:1)$) (Via Bramante Via Sarpi) {};
 
 
     % west
-    \node[stop1, left=2 of Piazzale Baracca] (De Angeli) {};
-    \node[stop1] (Segesta) at ($(De Angeli) + (-1.4,1)$) {};
-    \node[stop1, left=2 of Segesta] (San Siro Stadio) {};
+    \node[stop1] (San Siro Stadio) at ($(Piazzale Baracca) + (-8,0) + (140:.9*7)$) {};
 
-    \node[stop2, rotate=45, anchor=two half] (Domodossola) at ($(Corso Sempione Via Procaccini.one half) + (135:1.5)$) {};
-    \node[stop1, below left=1 of Domodossola.south one half, anchor=north] (Viale Boezio) {};
-    \node[stop1, below=0.4 of Viale Boezio] (6 Febbraio) {};
+    \node[stop2, rotate=45, anchor=two half] (Domodossola) at ($(Corso Sempione Via Procaccini.one half) + (140:2.8)$) {};
+    \node[stop1, anchor=north] at ($(Domodossola.south one half) + (45:-1.7) - (0,0.2)$) (Viale Boezio) {};
+    \node[stop1, below=.5 of Viale Boezio] (6 Febbraio) {};
 
     % right side
-    \node[stop3, rotate=90, anchor=east] (Missori) at ($(DuomoN) + (1.5,-0.1)$) {};
-    \node[stop3, rotate=90] (Augusto) at ($(Piazza 5 Giornate) - (1.2,0)$) {};
+    \node[stop3, rotate=90, anchor=east] (Missori) at ($(DuomoN) + (1.3,-0.1)$) {};
+    \node[stop3, rotate=90] (Corso Porta Vittoria Camera del Lavoro) at ($(Piazza 5 Giornate) - (0.9,0)$) {};
+    \node[stop3, rotate=90] (Palazzo di Guistizia) at ($(Piazza 5 Giornate) - (1.7,0)$) {};
+    \node[stop3, rotate=90] (Augusto) at ($(Piazza 5 Giornate) - (2.6,0)$) {};
     \node[stop3, rotate=90, left=1 of Augusto.center, anchor=center] (Via Larga) {};
 
     \node[stop2] (Piazza Fontana) at ($(Augusto) + (-0.5,1)$) {};
-    \node[stop2, rotate=45] (Crocetta) at ($(Missori) + (1,-1)$) {};
+    \node[stop2, rotate=35, anchor=two half] (Crocetta) at ($(Missori.south one half) + (-55:1.5)$) {};
+    \node[stop2, rotate=35, anchor=two half] (Corso Porta Romana Via S Sofia) at ($(Crocetta.two half) - (-55:.7)$) {};
 
 
 
     % Città studi
     \node[stop3, rotate=90, anchor=one half] (Adalaide di Savoia) at ($(Viale Piave.north two half) + (2.2,0)$) {};
-    \node[stop2, rotate=135, anchor=two half] (Valvassori Peroni) at ($(Adalaide di Savoia.one half) + (3,3)$) {};
-    \node[stop1, anchor=center] (Stazione Lambrate) at \polar{(32:11.9)} {};
-    \node[stop1, right=1 of Valvassori Peroni.south two half, anchor=center] (Rimembranze di Lambrate) {};
+    \node[stop2, rotate=130, anchor=two half] (Via Valvassori Peroni) at ($(Adalaide di Savoia.one half) + (40:8*.8 + 0.8)$) {};
+    \node[stop1, anchor=center] (Stazione Lambrate) at ($(Via Valvassori Peroni.south one half) + (0, 1.3) + (40:.3)$) {}; %\polar{(36:15.5)} {};
+    \node[stop1, anchor=center] (Rimembranze di Lambrate) at ($(Via Valvassori Peroni.south two half) + (1.3,0) + (40:.3)$) {};
 
-    \node[stop1, anchor=west] (Piazza Ferravilla) at ($(Adalaide di Savoia.south two half) + (1+\offset,-1)$) {};
-    \node[stop1, right=1.9 of Piazza Ferravilla] (Ortica) {};
+    \node[stop1, anchor=west] (Ortica) at ($(Adalaide di Savoia.south two half) + (6 + 1,-1)$) {};
 
     % 33 & 5
-    \node[stop2, rotate=45, anchor=center] (Viale Tunisia) at \polar{(46:6.5)} {};
+    \node[stop2, rotate=45, anchor=center] (Viale Tunisia) at \polar{(42:\rad+1.5)} {};
+    \node[stop2, rotate=45, anchor=two half] (Porta Venezia Viale Tunisia) at ($(Viale Tunisia.two half) + (-45:1)$) {};
+    \node[stop2, rotate=45, anchor=two half] (Piazza 8 Novembre) at ($(Viale Tunisia.two half) + (-45:2)$) {};
     % 5
-    \node[stop2, rotate=-45, anchor=two half] (Via Vitruvio) at \polar{(46:8-.2)} {};
+    \node[stop2, rotate=-45, anchor=two half] (Via Vitruvio) at \polar{(42.8:\rad+4-.2)} {};
+    \node[stop1] (Piazza Duca d'Aosta) at \polar{(50:\rad+4)} {};
+    \node[stop2, rotate=-45, anchor=two half] (Piazza Cincinnato) at ($(Via Vitruvio.two half) + (45:-1)$) {};
     % 1
-    \node[stop1] (Greco Rovereto) at ($(Via Vitruvio.two half) + (2,2)$) {};
+    \node[stop1] (Greco Rovereto) at ($(Via Vitruvio.two half) + (45:7*.8)$) {};
 
 
     % 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] (Vigentino) at ($(Via Ripamonti Viale Sabotino) + (-50:5)$) {};
+    \node[stop2, below=7*.6+1.7 of 24 Maggio.one half, rotate=-55, anchor=one half] (Piazza Abbiategrasso) {};
 
-    % 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) + (-140:4.5)$) {};
 
-    \node[stop1] (Lorenteggio) at ($(Piazzale Coni Zugna Via Solari.north one half) + (-143:5)$) {};
 
     % south of Città studi
-    \node[stop2, rotate=90, right=2 of Piazza 5 Giornate.two half, anchor=two half] (Piazza Emilia) {};
-    \node[stop1, anchor=west] (Via Arconati) at ($(Piazza Emilia.south one half) + (.5,-1.5)$) {};
-    \node[stop1, right=1 of Via Arconati] (Viale Molise) {};
-    \node[stop1, right=3.8 of Piazza Emilia.two half] (Repetti) {};
-    \node[stop1] (Viale Ungheria Via Mercante) at ($(Repetti.east) + (2,-3)$) {};
-    \node[stop1] (Viale Ungheria) at ($(Viale Ungheria Via Mercante) - (0,1)$) {};
+    \node[stop2, rotate=90, right=4 of Piazza 5 Giornate.two half, anchor=two half] (Piazza Emilia) {};
+    \node[stop1] (Viale Molise) at ($(Piazza Emilia) + (3,-1.8)$) {};
+    \node[stop1, right=.9*6 of Piazza Emilia.two half] (Repetti) {};
+    \node[stop1] (Viale Ungheria) at ($(Repetti.east) + (0.7,-8*.9)$) {};
 
-    \node[stop1] (Via Comelico) at ($(Viale Monte Nero Via Bergamo.center) + (-30:3)$) {};
-    \node[stop1] (Piazza Salgari) at ($(Via Comelico) + (-30:0.3) + (1,0)$) {};
-    \node[stop1] (Via Monte Velino) at ($(Piazza Salgari.east) + (.5,1)$) {};
 
 
     % north west
-    \node[stop2, rotate=90] (Cenisio) at ($(Via Bramante) + (-1,1)$) {};
-    \node[stop2, rotate=90, left=1 of Cenisio.center, anchor=center] (Piazza Diocleziano) {};
-    \node[stop2, rotate=90, anchor=two half] (Piazza Firenze) at ($(Piazza Diocleziano.two half) + (-2,0)$) {};
+    \node[stop2, rotate=50] (Cenisio) at ($(Piazzale Cimitero Monumentale Via Bramante) + (140:1.5)$) {};
+    \node[stop2, rotate=50, anchor=center] (Piazza Diocleziano) at ($(Cenisio.center) + (140:1.5)$) {};
+    \node[stop2, rotate=90, anchor=two half] (Piazza Firenze) at ($(Piazza Diocleziano.north two half) + (-4,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[stop2, rotate=90, anchor=one half] (Via Mac Mahon Via Artieri) at ($(Piazza Firenze.east) + (-1,2.6)$) {};
+    \node[stop2, rotate=90, anchor=one half] (Piazza Castelli) at ($(Via Mac Mahon Via Artieri.one half) + (-2,0)$) {};
 
-    \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, rotate=70, anchor=south one half, above=1 of Piazzale Santorre di Santarosa] (Certosa) {};
-    \node[stop2, rotate=70] (Roserio) at ($(Certosa) - (-20:2)$) {};
+    \node[stop2, rotate=90] (Piazzale Accursio) at ($(Piazza Firenze) + (-4,0)$) {};
+    \node[stop2, rotate=90, anchor=one half] (Piazzale Santorre di Santarosa) at ($(Piazza Castelli.one half) + (-4.8,0)$) {};
+    \node[stop2, rotate=50, anchor=two half] (Viale Espinasse Via Palizzi) at ($(Piazzale Santorre di Santarosa.north two half) + (-.7,0) + (140:1)$) {};
+    \node[stop2, rotate=50] (Roserio) at ($(Viale Espinasse Via Palizzi) + (140:6*.8)$) {};
 
-    \node[stop1, left=3 of Piazzale Accursio.two half] (Piazzale Cimitero Maggiore) {};
+    \node[stop1, left=4 + 4.2 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 of Via Farini Via Ferrari.one half, anchor=one half] (Via Farini Via Valtellina) {};
+    \node[stop2, above=1.8 of Via Farini Via Valtellina] (Via Farini Viale Stelvio) {};
 
-    \node[stop1, above=4.2 of Via Farini Viale Stelvio.two half] (Ospedale Niguarda) {};
-    \node[stop1, above=2 of Ospedale Niguarda.one half] (Niguarda Parco Nord) {};
-    \node[stop1] (Bausan) at ($(Via Farini Viale Stelvio.north one half) + (-4,.5)$) {};
+    \node[stop1] at ($(Via Farini Viale Stelvio.two half) + (0,1.8) + (140:4)$) (Ospedale Niguarda) {};
+    \node[stop1] (Niguarda Parco Nord) at ($(Ospedale Niguarda) + 5*(90:.7)$) {};
+    \node[stop1] (Bausan) at ($(Via Farini Viale Stelvio.north one half) + (-1.8,.5) + (140:.8*4+.3)$) {};
 
-    \node[stop1] (Via Ugo Bassi) at ($(Via Farini Via Ferrari.two half) + (0,.7) + (.2,.2)$) {};
+    \node[stop1] (Via Ugo Bassi) at ($(Via Farini Via Ferrari.two half) + (0,2) + (.4,0)$) {};
 
     \node[stop2, anchor=one half] (Piazzale Lagosta) at ($(Via Ugo Bassi) + (2,1.2)$) {};
 
-    \node[stop2, rotate=-30, anchor=one half] (Viale Lunigiana) at ($(Centrale.center) + (60:1)$) {};
+    \node[stop2, rotate=-30, anchor=one half] (Centrale Via Tonale) at ($(Centrale.center) + (60:0.8)$) {};
+    \node[stop2, rotate=-30, anchor=one half] (Viale Lunigiana) at ($(Centrale.center) + (60:1.7)$) {};
 
-    \node[stop2, above=2.1 of Piazzale Lagosta.center, anchor=center] (Marche) {};
-    \node[stop2, above=2 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] (Precotto Interno Deposito) at ($(Bicocca.north two half) + (3.5,.5)$) {};
+    \node[stop1] (Viale Lunigiana Via Gioia) at \polar{(65:\rad+6.1)} {};
+    \node[stop1] (Piazza Carbonari) at \polar{(72:\rad+6.1)} {};
+
+    \node[stop2, above=2.5 of Piazzale Lagosta.center, anchor=center] (Marche) {};
+    \node[stop2, above=2.4 of Marche.center, anchor=center] (Ca Granda) {};
+    \node[stop2, above=1.5 of Ca Granda] (Viale Testi Via S Marcellina) {};
 
-    \node[stop1, above=3 of Bicocca.one half] (Primo Maggio) {};
 
 
     \node (Milano Porta Vittoria) at (8,-.5) {};
@@ -320,198 +361,259 @@
     \pgfmathsetmacro{\offset}{0.1*tan(45/2)}
     \pgfmathsetmacro{\line}{0.2}
 
-    %% \foreach\angle in {-170,-160,...,180} {
-    %%   \draw[help line, color=gray!50] \polar{(0,0)} -- \polar{(\angle:8)};
-    %%   \node at \polar{(\angle:8)} { \angle };
-    %% };
-
-    \draw[railway outwards]
-    (Centrale.center)
-    {[rounded corners=0.01cm]
-    -- (Centrale.four eighth)
-    }
-    -- \polar{(61:12)}
-    arc (90:20:4.4)
-    -- \polar{(32:12.1)}
-    arc(10:-12:30)
-    {[rounded corners=2cm]
-    -- \polar{(-40:10.5)}
-    -- \polar{(-134:9.5)}
-    }
-    -- ++(-140:4.5)
-    node[label, below, anchor=north west] {Mortara};
-
-    \draw[railway line]
-    (Porta Genoa.five eighth)
-    {[rounded corners=1cm]
-    -- \polar{(-134:7)}
-    }
-    -- \polar{(-134:9.5)}
-    -- ++(-140:4);
-
-    \draw[railway line]
-    \polar{(32:12.1)}
-    arc(10:3:30)
-    -- ($(Ortica) + (1,0.5)$)
-    -- ++(0:2)
-    ;
-
-    \draw[railway] ($(Certosa.four sixth) - (-20:1) + (-4,0)$)
-    node[label, above, anchor=south west] {Torino}
-    -- ($(Certosa.four sixth) - (-20:1)$)
-    -- (Certosa.four sixth)
-    -- ($(Via Farini Via Valtellina) + (-2,0)$)
-    -- ($(Via Farini Via Valtellina) - (0,.5)$)
-    arc (90:70:12)
-    -- ($(Viale Tunisia.four sixth)$)
-    -- ($(Adalaide di Savoia.north west) - (0,.2)$)
-    -- ($(Piazza Emilia.north) + (-.1,1)$)
-    -- ($(Milano Porta Vittoria) - (1.4,0)$)
-    -- ($(Milano Porta Vittoria)$)
-    -- ($(Milano Porta Vittoria) + (2,0)$)
-    -- ($(Repetti) + (-.15,0)$)
-    -- ($(Repetti) + (-.4,1)$)
-    -- ($(Ortica) + (1,0.5)$)
-    -- ++(0:3)
-    node[label, below right, anchor=north] {Verona}
-    ;
 
-    \draw[railway outwards]
-    ($(Via Farini Via Valtellina) - (0,.5)$)
-    arc (90:85:12)
-    -- \polar{(75:6)}
-    {[rounded corners=2cm]
-    -- ++(65:8)
+    \def\makeStation(#1, #2, #3)(#4)#5{
+      node[stop1] (current) {}
+      ($(current.#1) + (#4)$) node[label, anchor=#2, rotate=#3, align=center] {\labelContour{#5}}
+      (current.center)
     }
-    -- ++(85:5)
-    node[label, below left, anchor=north east] {Chiasso (CH)}
-    ;
-
-    \draw[railway line]
-    (Centrale.center)
-    {[rounded corners=0.01cm]
-    -- (Centrale.four eighth)
+    \def\makeStations(#1)(#2, #3, #4)#5{
+      foreach[count=\count] \name in {#5} {
+        -- ++(#1) node[stop1] (current) {}
+        (current.#2) node[label, anchor=#3, rotate=#4, align=center] {\labelContour{\name}}
+        (current.center)
+      }
+    }
+    \def\makeShapes[#1][#2](#3)(#4, #5, #6)#7{
+      foreach[count=\count] \name in {#7} {
+        -- ++(#3) node[#1, anchor=#2] (current) {}
+        (current.#4) node[label, anchor=#5, rotate=#6, align=center] {\labelContour{\name}}
+        (current.#2)
+      }
+    }
+    \def\makeAlternatingStations(#1)(#2, #3, #4)#5{
+      foreach[count=\count] \one/\two in {#5} {
+        -- ++(#1) node[stop1] (one) {}
+        (one.#2) node[label, anchor=#3, rotate=#4, align=center] {\labelContour{\one}}
+        (one.center)
+        -- ++(#1) node[stop1] (two) {}
+        (two.#3) node[label, anchor=#2, rotate=#4, align=center] {\labelContour{\two}}
+        (two.center)
+      }
     }
-    -- \polar{(61:12)}
-    -- ($(75:6) + (65:8) + (-.2,.5)$)
-    -- ++(85:5)
-    ;
-
-    \draw[railway outwards]
-    ($(Repetti) + (-.15,0)$)
-    arc(-3:-12:30)
-    -- ++(1,-2)
-    -- ++(-30:2)
-    node[label, above, anchor=south west] {Bologna}
-    ;
-
-    \draw[railway outwards]
-    ($(Repetti) + (-.15,0)$)
-    arc(-3:-12:30)
-    -- ++(1,-2)
-    -- ++(-90:2)
-    node[label, above, anchor=south west] {Genova}
-    ;
-
-    \draw[railway line]
-    (Certosa.four sixth)
-    -- ($(Certosa.four sixth) + (-20:1)$)
-    -- ++(1,1.4)
-    arc (110:78:25)
-    -- \polar{(61:12)}
-    arc (90:20:4.4)
-    -- \polar{(32:12.1)}
-    ;
-
-    \draw[railway line]
-    (Certosa.four sixth)
-    -- ($(Certosa.four sixth) + (-20:1)$)
-    -- ++(1,1.4)
-    arc (110:78:25)
-    -- \polar{(61:12)}
-    -- (Centrale.four eighth)
-    ;
 
-    \draw[railway line]
-    ($(Certosa.four sixth) + (-17:3)$)
-    -- ($(Certosa.four sixth) + (-20:1) + (.5,0)$)
-    -- ($(Certosa.four sixth) + (-20:1) + (1,1.4)$)
-    arc (110:78:25)
-    -- \polar{(61:12)}
-    -- (Centrale.four eighth)
-    ;
+    %% \foreach\angle in {-170,-160,...,180} {
+    %%   \draw[help line, color=gray!50] \polar{(0,0)} -- \polar{(\angle:8)};
+    %%   \node at \polar{(\angle:8)} { \angle };
+    %% };
 
-    \draw[railway outwards]
-    (Cadorna.four sixth)
-    {[rounded corners=.3cm]
-    -- ++ (-0.2,0)
-    }
-    -- \polar{(135:5)}
-    -- ($(Piazza Diocleziano) - (1,.3)$)
-    arc (-135:-180:10)
-    -- ++(0,2)
-    node[label, below left, anchor=west] {Asso}
-    ;
+    %% \draw[railway outwards]
+    %% (Centrale.center)
+    %% {[rounded corners=0.01cm]
+    %% -- (Centrale.four eighth)
+    %% }
+    %% -- \polar{(61:12)}
+    %% arc (90:20:4.4)
+    %% -- \polar{(32:12.1)}
+    %% arc(10:-12:30)
+    %% {[rounded corners=2cm]
+    %% -- \polar{(-40:10.5)}
+    %% -- \polar{(-134:9.5)}
+    %% }
+    %% -- ++(-140:4.5)
+    %% node[label, below, anchor=north west] {Mortara};
 
-    \draw[railway outwards]
-    (Cadorna.four sixth)
-    {[rounded corners=.3cm]
-    -- ++ (-0.2,0)
-    }
-    -- \polar{(135:5)}
-    -- ($(Piazza Diocleziano) - (1,.3)$)
-    arc (-135:-180:10)
-    -- ++(135:2)
-    node[label, below left, anchor=west] {Saronno}
-    ;
+    %% \draw[railway line]
+    %% (Porta Genova.five eighth)
+    %% {[rounded corners=1cm]
+    %% -- \polar{(-134:7)}
+    %% }
+    %% -- \polar{(-134:9.5)}
+    %% -- ++(-140:4);
+
+    %% \draw[railway line]
+    %% \polar{(32:12.1)}
+    %% arc(10:3:30)
+    %% -- ($(Ortica) + (1,0.5)$)
+    %% -- ++(0:2)
+    %% ;
+
+    %% \draw[railway] ($(Certosa.four sixth) - (-20:1) + (-4,0)$)
+    %% node[label, above, anchor=south west] {Torino}
+    %% -- ($(Certosa.four sixth) - (-20:1)$)
+    %% -- (Certosa.four sixth)
+    %% -- ($(Via Farini Via Valtellina) + (-2,0)$)
+    %% -- ($(Via Farini Via Valtellina) - (0,.5)$)
+    %% arc (90:70:12)
+    %% -- ($(Viale Tunisia.four sixth)$)
+    %% -- ($(Adalaide di Savoia.north west) - (0,.2)$)
+    %% -- ($(Piazza Emilia.north) + (-.1,1)$)
+    %% -- ($(Milano Porta Vittoria) - (1.4,0)$)
+    %% -- ($(Milano Porta Vittoria)$)
+    %% -- ($(Milano Porta Vittoria) + (2,0)$)
+    %% -- ($(Repetti) + (-.15,0)$)
+    %% -- ($(Repetti) + (-.4,1)$)
+    %% -- ($(Ortica) + (1,0.5)$)
+    %% -- ++(0:3)
+    %% node[label, below right, anchor=north] {Verona}
+    %% ;
+
+    %% \draw[railway outwards]
+    %% ($(Via Farini Via Valtellina) - (0,.5)$)
+    %% arc (90:85:12)
+    %% -- \polar{(75:6)}
+    %% {[rounded corners=2cm]
+    %% -- ++(65:8)
+    %% }
+    %% -- ++(85:5)
+    %% node[label, below left, anchor=north east] {Chiasso (CH)}
+    %% ;
+
+    %% \draw[railway line]
+    %% (Centrale.center)
+    %% {[rounded corners=0.01cm]
+    %% -- (Centrale.four eighth)
+    %% }
+    %% -- \polar{(61:12)}
+    %% -- ($(75:6) + (65:8) + (-.2,.5)$)
+    %% -- ++(85:5)
+    %% ;
+
+    %% \draw[railway outwards]
+    %% ($(Repetti) + (-.15,0)$)
+    %% arc(-3:-12:30)
+    %% -- ++(1,-2)
+    %% -- ++(-30:2)
+    %% node[label, above, anchor=south west] {Bologna}
+    %% ;
+
+    %% \draw[railway outwards]
+    %% ($(Repetti) + (-.15,0)$)
+    %% arc(-3:-12:30)
+    %% -- ++(1,-2)
+    %% -- ++(-90:2)
+    %% node[label, above, anchor=south west] {Genova}
+    %% ;
+
+    %% \draw[railway line]
+    %% (Certosa.four sixth)
+    %% -- ($(Certosa.four sixth) + (-20:1)$)
+    %% -- ++(1,1.4)
+    %% arc (110:78:25)
+    %% -- \polar{(61:12)}
+    %% arc (90:20:4.4)
+    %% -- \polar{(32:12.1)}
+    %% ;
+
+    %% \draw[railway line]
+    %% (Certosa.four sixth)
+    %% -- ($(Certosa.four sixth) + (-20:1)$)
+    %% -- ++(1,1.4)
+    %% arc (110:78:25)
+    %% -- \polar{(61:12)}
+    %% -- (Centrale.four eighth)
+    %% ;
+
+    %% \draw[railway line]
+    %% ($(Certosa.four sixth) + (-17:3)$)
+    %% -- ($(Certosa.four sixth) + (-20:1) + (.5,0)$)
+    %% -- ($(Certosa.four sixth) + (-20:1) + (1,1.4)$)
+    %% arc (110:78:25)
+    %% -- \polar{(61:12)}
+    %% -- (Centrale.four eighth)
+    %% ;
+
+    %% \draw[railway outwards]
+    %% ($(Piazza Virgilio.one half) + (1,0)$) % TODO should be Cadorna
+    %% {[rounded corners=.3cm]
+    %% -- ++ (-0.7,.1)
+    %% }
+    %% -- \polar{(135:5)}
+    %% -- ($(Piazza Diocleziano) - (1,.3)$)
+    %% arc (-135:-180:10)
+    %% -- ++(0,2)
+    %% node[label, below left, anchor=west] {Asso}
+    %% ;
+
+    %% \draw[railway outwards]
+    %% ($(Piazza Virgilio.one half) + (1,0)$) % TODO should be Cadorna
+    %% {[rounded corners=.3cm]
+    %% -- ++ (-0.7,.1)
+    %% }
+    %% -- \polar{(135:5)}
+    %% -- ($(Piazza Diocleziano) - (1,.3)$)
+    %% arc (-135:-180:10)
+    %% -- ++(135:2)
+    %% node[label, below left, anchor=west] {Saronno}
+    %% ;
 
 
     \draw[line, one]
     (Greco Rovereto)
+    \makeStations(45:-.8)(east, west, 0){
+      Piazza Morbegno,
+      Via Venini Via Sauli,
+      Via Venini Via Battaglia,
+      Viale Brianza,
+      Caiazzo,
+      Via Settembrini
+    }
+    ++(0,0)
     -- (Via Vitruvio.two half)
+    -- (Piazza Cincinnato.two half)
     -- (Viale Tunisia.east)
     -- (Viale Tunisia.west)
     {[rounded corners=0.3cm]
     -- ($(Vittorio Veneto.south one half) + \line*(.7,-.7)$)
     }
     -- (Vittorio Veneto.one half)
-    -- \centerarc(53:60:4.8)
+    -- \centerarc(46:58:5.8)
     %% -- (Repubblica.one half)
     %% -- (Repubblica.north one half)
-    {[rounded corners=0.4cm]
-    -- ++(-.6,0)
-    -- ($(Cordusio.two half) + (1.3,0)$)
+    {[rounded corners=0.5cm]
+    -- ++(-1.2,.1)
+    }
+    \makeStations(0,-.8)(east, west, 0){Turati, Piazza |Cavour, Montenapoleone, Teatro |alla Scala}
+    {[rounded corners = 0.7cm]
+    -- ($(Cordusio.two half) + (1.6,0)$)
     }
     -- (Cordusio.two half)
     -- (Cusani.two half)
     -- ++(0,0.25)
     -- ($(Cusani.one half) + (-.2,.25)$)
-    -- (Cadorna.one half)
+    -- ++(-.2,-.1)
+    -- ++(-.3,0) \makeStation(north, south, 0)(0,-.1){Cairoli}
+    -- ++(-.8,0) \makeStation(south, north, 0)(0,.1){Foro Buonaparte |Via Ricasoli}
+    -- ++(-.8,0) \makeStation(north, south, 0)(0,-.1){Cadorna}
+    -- (Piazza Virgilio.north one half)
+    -- (Piazza Virgilio.one half)
     -- (Quinto Alpini.two half)
     -- ($(Quinto Alpini.north two half)$)
-    -- ++($(.05,.15+.5*\offset)$)
-    -- ($(Arco della Pace.south one half)$)
+    -- ++($(.05,.2+.5*\offset)$)
+    -- (Via Pagano Via Canova.one half)
     -- (Arco della Pace.one half)
-    -- (Arco della Pace.north one half)
+    -- (Corso Sempione Via Canova.one half)
+    -- (Corso Sempione Via Canova.north one half)
     -- (Corso Sempione Via Procaccini.one half)
     -- (Domodossola.two half)
     -- ($(Piazza Firenze.south one half)$)
     -- (Piazzale Accursio.one half)
     -- (Piazzale Accursio.north one half)
-    {[rounded corners=1.3cm]
-    -- ($(Piazzale Santorre di Santarosa.south one half) - (0,1.2)$)
+    -- ++(140:.2)
+    \makeStations(140:1.1)(west, east, 0){
+      Viale Espinasse |Piazzale Accursio,
+      Viale Espinasse |Via Casella,
+      Viale Espinasse |Via Nuvolone
     }
     -- (Piazzale Santorre di Santarosa.south one half)
     -- (Piazzale Santorre di Santarosa.north one half)
-    -- (Certosa.south one half)
-    -- (Certosa.one half)
+    -- ++(-.7-\offset,0)
+    -- (Viale Espinasse Via Palizzi.south one half)
+    -- (Viale Espinasse Via Palizzi.one half)
     -- (Roserio.one half)
     ;
 
     \draw[line, two]
-    % TODO north
     (Bausan)
-    {[rounded corners=.5cm]
+    \makeStations(140:-.8)(south west, east, 0){
+      Via Imbriani Via Scalvini,
+      Piazzale Nigra,
+      Lancetti,
+      Via Berinina
+    }
+    -- ++(140:-.2)
+    {[rounded corners=.3cm]
+    -- ($(Via Farini Viale Stelvio.north one half) + (-1.5,.5)$)
     -- ($(Via Farini Viale Stelvio.north one half) + (0,.5)$)
     }
     -- (Via Farini Viale Stelvio.north one half)
@@ -520,39 +622,94 @@
     -- (Via Farini Via Ferrari.one half)
     -- ($(Lega Lombarda.north three quarter) + 2*\offset*(-.7,.7)$)
     -- (Lega Lombarda.three quarter)
+    -- (Arena.three quarter)
+    -- (Arena.south three quarter)
     -- ($(Lanza.north three quarter) + (0,2*\offset)$)
     -- (Lanza.three quarter)
     -- (Cusani.three quarter)
     -- (Cordusio.three quarter)
     -- (DuomoN.two half)
-    -- ($(Duomo.south two quarter) - (0,2*\offset)$)
+    {[rounded corners=.1cm]
+    -- ($(Duomo.south two quarter) - tan(40/2)*(0,.2)$)
+    }
+    -- (Via Torino Via Palla.center)
     -- (Via Torino Via S Maria Valle.center)
+    -- (Carrobbio.center)
+    -- (Corso Genova Via Sapeto.south two half)
     -- (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)
+    -- (Porta Genova.one half)
+    -- (Porta Genova.south one half)
+    -- ++(-1,0)
+    -- ++(35:-.4)
+    \makeStations(35:-1.2)(north east, north west, 0){
+      Via Valenza Alzaia |Naviglio Grande,
+      Ripa di Porta Ticinese |Via Lombardini
+    }
+    -- ++(35:-.6)
+    \makeStations(35:-.8)(south east, west, 0){
+      Ripa di Porta Ticinese Via D'Adda,
+      Ponte Guido Crepax,
+      Via Lodovico il Moro Via Pestalozzi,
+      Via Lodovico il Moro 25,
+      Via Lodovico il Moro Cavalcavia Don Milani,
+      Via Lodovico il Moro Via Guintellino
+    }
+    (current.center)
+    -- ++(35:-.8) node[stop1] (Piazzale Negrelli) {}
     ;
 
     \draw[line, three]
     (Duomo.three quarter)
-    -- ($(Duomo.south three quarter) - (0,4*\offset)$)
+    {[rounded corners=.2cm]
+    -- ($(Duomo.south three quarter) - tan(40/2)*(0,.4)$)
+    }
+    -- (Via Torino Via Palla.two half)
     -- (Via Torino Via S Maria Valle.two half)
+    -- (Carrobbio.two half)
+    -- (Carrobbio.south two half)
+    -- ++(50:-.1)
+    \makeStations(0,-.7)(east, west, 0){Colonne di |San Lorenzo, Piazza |S Eustorgio}
     -- (24 Maggio)
+    -- ++(0,-1.5)
+    \makeStation(west, east, 0)(.1,0){Corso Gottardo |Via Lagrange}
+    \makeAlternatingStations(0,-.6)(east, west, 0){
+      Largo |Mahler/Viale Tibaldi |Via Meda,
+      Via Meda |Via Spaventa/Via Montegani |Viale Da Cermenate,
+      Via Montegani |Via Palmieri/Via Montegani |Via Neera
+    }
     -- (Piazza Abbiategrasso.one half)
-    -- (Via dei Missaglie Via Baroni.one half)
+    -- (Piazza Abbiategrasso.south one half)
+    -- ++(35:-.7*8+.2)
     ;
 
     \draw[line, four]
     (Niguarda Parco Nord)
+    \makeStations(-90:.7)(west, east, 0){
+      Cascina California,
+      Niguarda Nord,
+      Niguarda Centro,
+      Girola
+    }
     -- (Ospedale Niguarda.one half)
+    {[rounded corners=0.3cm]
+    -- ++(0,-.4)
+    }
+    \makeStations(140:-1)(west, east, 0){
+      Nizza, Valassina, Maciachini
+    }
+    {[rounded corners=0.3cm]
+    -- ++(140:-1)
+    -- ($(Via Farini Viale Stelvio.two half) + (0,.6)$)
+    }
     -- (Via Farini Viale Stelvio.two half)
     -- (Via Farini Via Valtellina.two half)
+    \makeShapes[stop2][two half](0,1)(west, east, 0){Via Farini |Via Alserio}
     -- (Via Farini Via Ferrari.center)
     -- ($(Lega Lombarda.north two half)$)
     -- (Lega Lombarda.two half)
+    -- (Arena.two half)
+    -- (Arena.south two half)
     -- ($(Lanza.north two half) + (0,3*\offset)$)
     -- (Lanza.two half)
     -- ++(0,-\line)
@@ -563,22 +720,32 @@
 
     \draw[line, five]
     (Ortica)
-    -- (Piazza Ferravilla)
-    -- (Piazza Ferravilla.west)
+    \makeAlternatingStations(-1,0)(north, south, 0){
+      Via Amadeo |Via S Benigno/Via Amadeo |Via Paladini,
+      Via Beato Angelico |Via Aselli/Via Beato Angelico |Via Colombo,
+      Piazza |Ferravilla/Piazza |Aspari
+    }
+    -- ++(-.2,0)
+    {[rounded corners=.15cm]
+    -- ++(-.2,0)
     -- ($(Adalaide di Savoia.south two half) + (\offset, 0)$)
+    }
     -- (Adalaide di Savoia.two half)
     -- (Adalaide di Savoia.north two half)
+    -- (Piazza 8 Novembre.two half)
+    -- (Porta Venezia Viale Tunisia.two half)
     -- (Viale Tunisia.two half)
     -- (Viale Tunisia.north two half)
+    -- (Piazza Cincinnato.one half)
     -- (Via Vitruvio.one half)
     -- (Via Vitruvio.north one half)
-    -- \centerarc(49:64:8)
+    -- \centerarc(45:60:10)
     %% -- ($(Centrale.south two half) + (0,2*\offset)$)
     -- (Centrale.two half)
     -- (Viale Lunigiana.south two half)
     -- (Viale Lunigiana.two half)
     -- (Viale Lunigiana.north two half)
-    -- \centerarc(65:80:9.4)
+    -- \centerarc(61:78:12.1)
     %% {[rounded corners=0.2cm]
     %%   -- ($(Marche.south one half) - (0,\line)$)
     %% }
@@ -586,19 +753,36 @@
     -- (Marche.one half)
     -- (Ca Granda.one half)
     -- (Ca Granda.north one half)
+    \makeAlternatingStations(-1.4,0)(north, south, 0){
+      Viale Ca Granda |Viale Suzzani/Viale Ca Granda |Via Val Furva
+    }
+    -- ++(-1.4,0) \makeStation(north, south, 0)(0,0){Viale Ca Granda |Via Cherasco}
     -- (Ospedale Niguarda)
     ;
 
     \draw[line, seven]
     (Piazzale Lagosta.two half)
+    -- ++(0,1.3) \makeStation(east, west, 0)(0,0){Zara}
     -- (Marche.two half)
+    \makeShapes[stop2][two half](0,.63)(east, west, 0){
+      Viale Zara |Via Laurana,
+      Istria,
+      Viale Testi |Via Dolcebuono
+    }
     -- (Ca Granda.two half)
-    -- (Bicocca.two half)
-    -- (Bicocca.north two half)
-    {[rounded corners=.6cm]
-    -- ($(Bicocca.north two half) + (0,.5)$)
+    -- ++(0,.8) \makeStation(east, west, 0)(0,0){Viale Testi |Via Pianelli}
+    -- (Viale Testi Via S Marcellina.two half)
+    {[rounded corners=.3cm]
+    -- ++(0,1)
+    }
+    -- ++(.3,.3) \makeStation(north, south west, 0)(0:-.5){Via Pulci |Viale Serca}
+    \makeAlternatingStations(0:1)(south, north, 0){
+      Università |Bicocca Scienza/Stazione |Greco Pirelli,
+      Arcimboldi |Ateneo Nuovo/Largo Mattei,
+      Precotto/Parmenide
     }
-    -- (Precotto Interno Deposito)
+    -- ++(0:1) \makeStation(south, north, 0)(0,0){Anassagora}
+    -- ++(0:1) node[stop1] (Precotto Interno Deposito) {}
     ;
 
     \draw[line, nine]
@@ -608,7 +792,7 @@
     %% -- (Monte Santo.east)
     -- (Monte Santo.west)
     %% -- (Repubblica.north center)
-    -- \centerarc(68:-113:\rad)
+    -- \centerarc(61:-123:\rad)
     %% -- (Vittorio Veneto.center)
     %% -- (Porta Venezia)
     %% -- (Viale Piave.one half)
@@ -622,20 +806,23 @@
     %% -- (Via Vigenavo.two half)
     -- (Piazzale Cantore.north two half)
     -- (Piazzale Cantore.two half)
-    -- (Porta Genoa.two half)
+    -- (Porta Genova.two half)
     ;
 
     \draw[line, ten]
     (24 Maggio.one half)
-    -- \centerarc(-100:-108:5.2)
-    -- (Via Vigenavo.one half)
-    -- (Via Vigenavo.north one half)
-    -- ($(Porta Genoa.east) + (.4,0)$)
-    -- (Porta Genoa.east)
-    -- ($(Porta Genoa.west) + .1*(-.7,.7)$)
+    -- \centerarc(-109:-113:6.2)
+    -- (Via Vigenavo Viale Gorizia.one half)
+    -- (Via Vigenavo Viale Gorizia.north one half)
+    {[rounded corners=0.2cm]
+    -- ++(-.5,-.25) \makeStation(south, north, 0)(0,0.1){Via Vigenavo |Via Corsico}
+    -- ($(Porta Genova.east) + (.4,-.1)$)
+    }
+    -- (Porta Genova.east)
+    -- ($(Porta Genova.west) + .1*(-.7,.7)$)
     -- (Piazzale Cantore.two quarter)
     %% -- ($(Piazzale Cantore.north one half) - \offset*(1,1)$)
-    -- \centerarc(-123:-195:\rad)
+    -- \centerarc(-131:-190:\rad)
     %% -- (Piazzale Cantore.north one half)
     %% -- (Piazzale Cantore.one half)
     %% -- (Piazzale Coni Zugna Via Solari.south two half)
@@ -643,14 +830,15 @@
     %% -- (Piazzale Aquileia)
     %% -- (Piazzale Baracca)
     -- (Quinto Alpini.center)
-    -- (Quinto Alpini.east)
+    -- ($(Quinto Alpini.east) + (0,2*\offset)$)
     %% {[rounded corners=.5cm]
     %% -- \polar{(152:4.8)}
     %% }
-    -- ($(Arco della Pace.two half) - (0,\offset)$)
+    -- (Via Pagano Via Canova.two half)
     -- (Arco della Pace.two half)
+    -- (Corso Sempione Via Canova.two half)
     {[rounded corners=0.3cm]
-    -- ($(Arco della Pace.north two half) + \line*(.7,.7)$)
+    -- ($(Corso Sempione Via Canova.north two half) + (45:\line)$)
     }
     -- (Corso Sempione Via Procaccini.two half)
     %% {[rounded corners=0.3cm]
@@ -663,28 +851,33 @@
     %% }
     %% -- (Via Farini Via Ferrari.west)
     %% -- (Via Farini Via Ferrari.east)
-    -- \centerarc(139:72:5.4)
+    -- \centerarc(139:72:6.4)
     -- (Monte Santo.two half)
     -- ($(Monte Santo.south two half) + (0,2*\offset)$)
+    -- ++(61:.2)
+    \makeShapes[stop2, rotate=-30][two half](61:.8)(two half, west, 0){
+      Piazza |San Giachimo, Via Filzi |Via Pirelli, Via Filzi |Via Galvani
+    }
     -- ($(Centrale.south center) $)
     -- (Centrale.center)
     -- (Viale Lunigiana.one half)
     ;
 
     \draw[line, twelve]
-    % TODO
     (Viale Molise)
-    -- (Via Arconati)
-    {[rounded corners=0.3cm]
-    -- ($(Via Arconati.west) - (.5,0)$)
+    \makeStations(-1,0)(north, south, 0){
+      Piazzale |Martini,Via |Arconati
+    }
+    {[rounded corners=.3cm]
+    -- ++(-.6,0)
+    -- ($(Piazza Emilia.south one half) + (.1,0)$)
     }
-    -- (Piazza Emilia.south one half)
     -- (Piazza Emilia.one half)
     -- (Piazza 5 Giornate.center)
     -- (Augusto.center)
     -- (Via Larga.center)
-    -- ++(-0.2,0)
-    -- ($(Missori.two half) + (.2,0)$)
+    -- ($(Via Larga.north center) - tan(30/2)*(.2,0)$)
+    -- ($(Missori.south two half)$)
     -- (Missori.two half)
     -- ($(DuomoN.four sixth) - (0,.2)$)
     -- (DuomoN.four sixth)
@@ -692,167 +885,272 @@
     -- (Cusani.one half)
     -- (Lanza.one half)
     -- ($(Lanza.north one half)$)
+    -- (Arena.south one half)
+    -- (Arena.one half)
     -- (Lega Lombarda.one half)
     -- (Lega Lombarda.north one half)
-    -- ($(Via Bramante.south one half) - (0,\offset)$)
-    -- (Via Bramante.one half)
-    -- (Via Bramante.north one half)
+    -- (Via Bramante Via Sarpi.one half)
+    %% -- ($(Via Bramante.south one half) - (0,\offset)$)
+    -- (Piazzale Cimitero Monumentale Via Bramante.one half)
+    %% -- (Via Bramante.north one half)
     -- (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)$)
+    -- ++(140:.8)
+    \makeStations(140:1.3)(north east, west, 0){
+      Via Mac Mahon |Via Principe Eugenio,
+      Via Mac Mahon |Via Caracciolo,
+      Via Mac Mahon |Viale Monte Ceneri
     }
     -- (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)
+    \makeAlternatingStations(180:1)(north, south, 0){
+      Via Console |Marcello |Via Grugnola/Via Console |Marcello |Villapizzone
     }
+    -- ++(180:1) \makeStation(north, south, 0)(0,0){Via Console |Marcello |Via Monte Altissimo}
     -- (Piazzale Santorre di Santarosa.two half)
     -- (Piazzale Santorre di Santarosa.north two half)
-    {[rounded corners=0.2cm]
-    -- ($(Certosa.south two half) + 4*\offset*(-20:1)$)
+    -- ++(-0.7,0)
+    -- (Viale Espinasse Via Palizzi.two half)
+    \makeShapes[stop2, rotate=50][two half](140:.8)(east, west, 0){
+      Certosa, Via Palazzi Via Mambretti, Via Mambretti, Largo Boccioni, Via Grassi
     }
-    -- (Certosa.two half)
     -- (Roserio.two half)
     ;
 
     \draw[line, fourteen]
     % TODO
     (Piazzale Cimitero Maggiore)
+    \makeAlternatingStations(1,0)(south, north, 0){
+      Viale Certosa |Cimitero Maggiore/Viale Certosa |Via Cormons,
+      Viale Certosa |Via Gradisca/Viale Certosa |Via Tibullo
+    }
+    \makeStations(1.2,0)(south, north, 0){
+      Viale Certosa |Via Giannini
+    }
+    \makeStations(1.7,0)(south, north, 0){
+      Viale Certosa |Via Casella
+    }
     -- (Piazzale Accursio.two half)
+    \makeShapes[stop2, rotate=90][two half](1.3,0)(west, north, 0){
+      Viale Certosa |Via Grosotto
+    }
+    \makeShapes[stop2, rotate=90][two half](1,0)(east, south, 0){
+      Viale Certosa |Viale Serra
+    }
     -- (Piazza Firenze.two half)
+    -- ++(2,0) \makeStation(south, north, 0)(0,0){Piazza Caneva}
     -- (Piazza Diocleziano.north two half)
     -- (Piazza Diocleziano.two half)
+    \makeShapes[stop2, rotate=50][two half](140:-.7)(center, south west, 0){
+      Via Cenisio |Via Induno
+    }
     -- (Cenisio.two half)
-    -- ($(Cenisio.south two half) + (2*\offset,0)$)
-    -- ($(Via Bramante.north two half)$)
-    -- (Via Bramante.two half)
-    -- (Via Bramante.south two half)
+    %% -- ($(Via Bramante.north two half)$)
+    -- (Piazzale Cimitero Monumentale Via Bramante.two half)
+    %% -- (Via Bramante.south two half)
+    -- (Via Bramante Via Sarpi.two half)
     -- (Lega Lombarda.north two quarter)
     -- (Lega Lombarda.two quarter)
+    -- (Arena.two quarter)
+    -- (Arena.south two quarter)
     -- ($(Lanza.north two quarter) + (0,\offset)$)
     -- (Lanza.two quarter)
     -- (Cusani.two quarter)
     -- (Cordusio.four sixth)
     -- (DuomoN.one half)
     -- ($(Duomo.south one half)$)
+    -- (Via Torino Via Palla.one half)
     -- (Via Torino Via S Maria Valle.one half)
+    -- (Carrobbio.one half)
+    -- (Corso Genova Via Sapeto.one half)
     -- ($(Piazzale Cantore.north two quarter) + \offset*(2,2)$)
     -- (Piazzale Cantore.one half)
-    -- \centerarc(-122:-135:5.2)
+    -- \centerarc(-132:-140:6.2)
     %% -- ($(Piazzale Cantore.south two quarter) + (0,-\offset)$)
     %% -- ($(Piazzale Cantore.south one half) + (-\offset,-\offset)$)
     -- (Piazzale Coni Zugna Via Solari.one half)
     {[rounded corners=0.2cm]
     -- ($(Piazzale Coni Zugna Via Solari.north one half) + (-.1,.1)$)
     }
-    -- (Lorenteggio)
+    -- ++(30:-0.8)
+    \makeStations(35:-.8)(north west, east, 0){
+      Via Montevideo,
+      Piazza del Rosario,
+      Via Solari Via Stendhal,
+      Piazza Napoli,
+      Via Giambellino Via Tolstoj,
+      Via Giambellino Via Vignoli,
+      Via Brunelleschi,
+      Largo Gelsomini Largo Giambellino,
+      Via Giambellino Via Odazio,
+      San Cristoforo,
+      Via Gonin Via Guirdani,
+      Via Gonin Via M di Lorenteggio
+    }
+    -- ++(35:-0.8) node[stop1] (Lorenteggio) {}
     ;
 
     \draw[line, fifteen]
     (Duomo.two half)
     -- (Duomo.south two half)
+    -- ++ (0,-.5)
+    \makeStations(0,-0.9)(east, west, 0){Corso |Italia |Missori, Corso Italia |Via S Sofia, Corso Italia |Via Lusardi}
     -- (Porta Lodovica)
-    -- (Agrippa)
-    -- (Agrippa.south)
-    {[rounded corners=0.2cm]
-      -- ($(Agrippa.south) - (0,.2)$)
-      -- ($(Piazza Abbiategrasso.north two half) + (0,.2)$)
+    -- ++(0,-.6)
+    \makeStations(0,-.6)(east, west, 0){
+      Castelbarco,
+      Giambologna,
+      Tibaldi,
+      Pezzotti,
+      Giovanni |da Cermanate,
+      Volvinio
     }
+    (current.south)
+    -- ++(0,-.3)
+    \makeStations(35:-.9)(east, west, 0){Agrippa, Medeghino}
     -- (Piazza Abbiategrasso.north two half)
     -- (Piazza Abbiategrasso.two half)
-    -- (Via dei Missaglie Via Baroni.two half)
+    \makeShapes[stop2, rotate=-55][two half](35:-.7)(east, west, 0){
+      Via dei Missaglie Via Boifava,
+      Via dei Missaglie Via S Abbondio,
+      Via dei Missaglie Isola Anita,
+      Via dei Missaglie De Ruggiero,
+      Via dei Missaglie Via Feraboli,
+      Via dei Missaglie Via Saponaro,
+      Via dei Missaglie Scuola Santarosa
+    }
+    -- ++(35:-.7) node[stop2, rotate=-55, anchor=two half] (Via dei Missaglie Via Baroni) {}
     -- (Via dei Missaglie Via Baroni.south two half)
-    {[rounded corners=0.5cm]
-    -- ($(Via Grandi Via Bouzzi Rozzano) + (.5,0)$)
-    -- (Via Grandi Via Bouzzi Rozzano)
+    \makeAlternatingStations(-.8,0)(south, north, 0){
+      Via Curiel |Via Maggi/Via Curiel |Via Lambro,
+      Via Curiel |Viale Isonzo/Via Grandi |Via Bouzzi,
+      Viale |Romagna/Via |Cabrini,
+      Viale |Don Lonni/Viale Liguria |Via delle Mimose
     }
-    -- (Via G Rossa)
+    -- ++(-1,0) \makeStation(south, north, 0)(0,0){Viale Liguria |Via Guido Rossa}
+    -- ++(-1,0) node[stop1] (Via Guido Rossa) {}
     ;
 
     \draw[line, sixteen]
     (San Siro Stadio)
-    -- (Segesta)
-    -- (Segesta.east)
-    {[rounded corners=0.3cm]
-    -- ($(Segesta.east) + (.2,0)$)
-    -- ($(De Angeli.west) - (.2,0)$)
+    \makeStations(140:-.9)(west, east, 0){
+      Piazza Axum |Stadio Meazza,San Siro |Ippodromo,
+      Piazza |Esquilino,Segesta,
+      Piazza |Monte Falterona,
+      Via Dolci |Via Ricciarelli
+    }
+    ++(0,0)
+    {[rounded corners=.5cm]
+    -- ++(140:-.9)
+    }
+    \makeAlternatingStations(1,0)(south, north, 0){
+      Piazzale Brescia |Ospedale San Luca/Via Faruffini |Via Corregio,
+      De Angeli/Piazza |Piemonte,
+      Corso Vercelli |Via Cherubini/Corso Vercelli |Largo Settimio Severo
     }
-    -- (De Angeli.west)
-    -- (De Angeli)
     -- (Piazzale Baracca)
-    -- (Ancona.one half)
+    -- ++(1.4,0) \makeStation(south, north, 0)(0,.1){S Maria delle Grazie |Cenacolo Vinciano}
+    {[rounded corners=.2cm]
+    -- ++(.5,0)
+    -- ($(Largo d'Ancona.north one half) - (.1,0)$)
+    }
+    -- (Largo d'Ancona.north one half)
+    -- (Via Meravigli.one half)
     -- (Cordusio.one half)
     -- (DuomoN.six tenth)
     {[rounded corners=0.5cm]
     -- ($(DuomoN.six tenth) - (0,0.6)$)
     }
     -- (Missori.one half)
-    -- ++(0.2,0)
+    -- ($(Missori.south one half) - tan(35/2)*(.1,0)$)
+    -- (Corso Porta Romana Via S Sofia.north two half)
+    -- (Corso Porta Romana Via S Sofia.south two half)
     -- (Crocetta.two half)
     -- (Crocetta.south two half)
+    -- ++(-50:.3)
+    -- ++(1,0) \makeStation(south, north, 0)(90:0.1){Via Lamarmora |Via Commenda}
+    -- ++(.9,0) \makeStation(north, south, 0)(-90:.1){Via |Lamamora}
     -- (Viale Monte Nero Via Bergamo.west)
     -- (Viale Monte Nero Via Bergamo)
-    {[rounded corners=0.2cm]
-    -- ($(Viale Monte Nero Via Bergamo) + (.1,0)$)
-    -- (Via Comelico)
-    -- ($(Via Comelico) + (-30:0.3)$)
+    -- ++(1.7,0)
+    \makeStations(-50:.7)(east, west, 0){
+      Via Bergamo,Via Cadore |Via Bergamo,
+      Via Comelico,Viale Umbria |Via Comelico
     }
-    -- (Piazza Salgari)
-    -- (Piazza Salgari.east)
-    {[rounded corners=0.3cm]
-      -- ($(Piazza Salgari.east) + (.5,0)$)
+    -- ++(-50:.8)
+    -- ++(0.4,0)
+    \makeAlternatingStations(0.8,0)(south, north, 0){
+      Via Tito |Livio/Piazza |Salgari,
+      Piazzale |Cuoco/Via Del Turchino |Via Maspero
     }
-    -- (Via Monte Velino)
+    -- ++(1,0) node[stop1] (Via Monte Velino) {}
     ;
 
     \draw[line, nineteen]
     (Stazione Lambrate)
-    arc (10:8.5:30)
-    -- (Valvassori Peroni.south one half)
-    -- (Valvassori Peroni.one half)
+    %% arc (10:8.5:30)
+    -- ($(Via Valvassori Peroni.south one half) + (40:.3)$)
+    -- (Via Valvassori Peroni.one half)
     {[rounded corners=0.2cm]
-    -- ($(Adalaide di Savoia.south one half) + (2*\offset,0)$)
+    -- ($(Adalaide di Savoia.south one half) + tan(40/2)*(.2,0)$)
     }
     -- (Adalaide di Savoia.one half)
+    -- ++(-1.3,0) \makeStation(south, north, 0)(0,+.1){Via |Bixio}
     -- (Viale Piave.north two half)
     -- (Viale Piave.two half)
-    -- \centerarc(19:0:5.2)
+    -- \centerarc(19:0:6.2)
     -- ($(Piazza 5 Giornate.one half) + (\line,0)$)
     -- (Piazza 5 Giornate.one half)
     -- (Augusto.one half)
     -- (Via Larga.one half)
-    -- ++(-0.1,0)
-    -- ($(Missori.two quarter) + (.3,0)$)
-    -- (Missori.two quarter)
+    -- (Via Larga.north one half)
+    -- ($(Missori.south center) + tan(30/2) *(.2,0)$)
+    -- (Missori.center)
     {[rounded corners=0.3cm]
     -- ($(DuomoN.five eighth) - (0,0.4)$)
     }
     -- (DuomoN.five eighth)
     -- (Cordusio.two quarter)
     -- ($(Cordusio.north two quarter)$)
-    -- (Ancona.two half)
-    -- (Cadorna.two half)
+    -- (Via Meravigli.two half)
+    {[rounded corners=0.3cm]
+    -- (Largo d'Ancona.north two half)
+    -- ($(Piazza Virgilio.north two half) + (0.1,0)$)
+    }
     -- (Quinto Alpini.one half)
     -- (Quinto Alpini.north one half)
-    -- (6 Febbraio.south)
+    \makeStations(143:1)(south, east, 0){Via Monti Via Savoia Cavalleria, Via Monti Via Comerio}
+    {[rounded corners=.2cm]
+    -- ($(6 Febbraio.south) - (0,.2)$)
     -- (6 Febbraio)
     -- (Viale Boezio)
-    -- (Viale Boezio.north)
+    -- ($(Viale Boezio) + (0,.2)$)
+    }
     -- (Domodossola.south one half)
     -- (Domodossola.one half)
+    \makeShapes[stop2, rotate=50][one half](139:.7)(west, east, 0){
+      Corso Sempione Via Arona,Corso Sempione Via E Filiberto
+    }
     -- (Piazza Firenze.west)
-    -- (Piazza Firenze.east)
-    {[rounded corners=0.3cm]
-    -- ($(Piazza Firenze.east) + (-.1,\line)$)
-    -- ($(Via Mac Mahon Via Artieri.south one half) + (\line,0)$)
+    -- ($(Piazza Firenze.east)$)
+    {[rounded corners=0.4cm]
+    -- ++(-.5,0.2)
+    }
+    -- ++(90:.5) \makeStation(east, west, 0)(0,0){Via Bartolini |Viale Monte Ceneri}
+    \makeStations(90:.7)(east, west, 0){
+      Via da Panicale,
+      Piazza |Prealpi
+    }
+    {[rounded corners=0.4cm]
+    -- ($(Via Mac Mahon Via Artieri.one half) + (.5,0)$)
     }
-    -- (Via Mac Mahon Via Artieri.south one half)
     -- (Via Mac Mahon Via Artieri.one half)
+    \makeShapes[stop2, rotate=90][one half](-.8,0)(west, north, 0){
+      Via Mac Mahon |Via Bramantino
+    }
     -- (Piazza Castelli.one half)
     ;
 
@@ -863,30 +1161,62 @@
     }
     -- ($(Via Larga.two half) + (.1,0)$)
     -- (Via Larga.two half)
-    -- ++(-0.3,0)
-    -- ($(Missori.two half) + (0,.1)$)
-    -- ($(Missori.one half) - (0,.1)$)
+    -- ($(Via Larga.north two half) - tan(30/2)*(.4,0)$)
+    -- ($(Missori.south two half) + (0,.2) - tan(30/2)*(.2,0)$)
+    -- (Missori.east)
+    -- ($(Missori.west)$)
+    -- (Corso Porta Romana Via S Sofia.north one half)
+    -- (Corso Porta Romana Via S Sofia.one half)
     -- (Crocetta.one half)
     -- (Crocetta.south one half)
-    {[rounded corners=0.2cm]
-      -- ($(Crocetta.south one half) + (-40:.2)$)
-      -- ($(Via Ripamonti Viale Sabotino.west) - (-50:.2)$)
+    {[rounded corners=0.3cm]
+      -- ++(-50:.4)
     }
-    -- (Via Ripamonti Viale Sabotino.west)
+    -- ++(-75:1) \makeStation(east, west, 0)(-.15,0){Corso Porta |Vigentina}
     -- (Via Ripamonti Viale Sabotino)
-    -- (Via Ripamonti Viale Sabotino.east)
-    -- (Vigentino)
+    -- ++(-70:.5)
+    \makeStations(-70:0.6)(east, west, 0){
+      Via Ripamonti Via Bellezza,
+      Viale Isonzo Via Ripamonti,
+      Via Ripamonti Via Lorenzini,
+      Via Ripamonti Via Rutilia,
+      Via Ripamonti Via Quaranta,
+      Via Ripamonti Via dell'Assunta,
+      Via Ripamonti Via Noto,
+      Via Ripamonti Via Val di Sole,
+      Via Ripamonti Via Chopin
+    }
+    -- ++(-70:0.6) node[stop1] (Vigentino) {}
     ;
 
     \draw[line, twentyseven]
     (Viale Ungheria)
-    -- (Viale Ungheria Via Mercante)
+    \makeStations(0,.9)(east, west, 0){
+      Viale Ungheria |Largo Guerrieri |Gonzaga,
+      Viale Ungheria |Via Mecente,
+      Via Mecenate |Via Quintiliano,
+      Via Mecenate |Via Fantoli,
+      Via Mecanate |Via Zante,
+      Via Mecanate |Via Maderna,
+      Piazza |Ovidio
+    }
+    ++(0,0)
     {[rounded corners=.3cm]
-    -- ($(Viale Ungheria Via Mercante) + (0,.5)$)
-    -- ($(Repetti.east) + (0,-.5)$)
+    -- ($(Repetti.east) + (.7,0)$)
     }
     -- (Repetti)
+    \makeAlternatingStations(-.9,0)(south, north, 0){
+      Stazione |Forlanini/Viale Corsica |Via Negroli,
+      Viale Corsica |Via Lomellina/Viale Campania |Viale Corsica
+    }
+    -- ++(-.8,0) \makeStation(south, north, 0)(0,0){Piazza |Grandi}
     -- (Piazza Emilia.two half)
+    \makeShapes[stop2, rotate=90][two half](-1.2,0)(west, north, 0){
+      Via Cadore |Corso 22 Marzo
+    }
+    \makeShapes[stop2, rotate=90][two half](-1.2,0)(east, south, 0){
+      Piazza Santa Maria |del Suffragio
+    }
     -- (Piazza 5 Giornate.two half)
     -- (Augusto.two half)
     -- ++(-.1,0)
@@ -898,17 +1228,42 @@
 
     \draw[line, thirtyone]
     (Viale Testi Via S Marcellina.one half)
-    -- (Bicocca.one half)
-    -- (Primo Maggio)
+    -- ++(0,1.3) \makeStation(west, east, 0)(0,0){Bicocca}
+    \makeStations(90:0.8)(west, east, 0){
+      Viale Testi |Via La Farina,
+      Viale Testi |Via S Glicerio
+    }
+    {[rounded corners=0.5cm]
+    -- ++(0,1)
+    }
+    \makeAlternatingStations(0:-1)(south, north, 0){
+      Ponale/Bigami,
+      Parco Nord |Torretta/Parco Nord |Clerici Sesto S G,
+      Parco Nord |Instituto Tecnico/Parco Nord |Ospedale Bassini,
+      Gorky |Monfalcone/Garmsci,
+      Villa |Ghirlanda/Monte |Ortigara
+    }
+    -- ++(-1,0) node[stop1] (Primo Maggio) {}
     ;
 
     \draw[line, thirtythree]
     (Rimembranze di Lambrate)
-    -- (Valvassori Peroni.south two half)
-    -- (Valvassori Peroni.two half)
+    -- ($(Via Valvassori Peroni.south two half) + (40:.3)$)
+    -- (Via Valvassori Peroni.two half)
+    \makeShapes[stop2, rotate=-50][one half](40:-.8)(south east, west, 0){
+      Via Bassini Via Golgi,
+      Via Bassini Via Ponzio,
+      Piazza Leonardo da Vinci (Politecnico),
+      Via Pascoli Piazza Leonardo da Vinci,
+      Viale Romagna Via Pascoli,
+      Piazza Carlo Erba,
+      Piazza Ascoli
+    }
     -- (Adalaide di Savoia.south center)
     -- (Adalaide di Savoia.center)
     -- ($(Adalaide di Savoia.north center) + (-2*\offset,0)$)
+    -- (Piazza 8 Novembre.one half)
+    -- (Porta Venezia Viale Tunisia.one half)
     -- (Viale Tunisia.one half)
     -- (Viale Tunisia.north one half)
     -- ($(Vittorio Veneto.south two half)$)
@@ -916,12 +1271,16 @@
     %% -- (Repubblica.two half)
     %% -- (Monte Santo.south one half)
     %% -- (Monte Santo.north one half)
-    -- \centerarc(50:95:5.2)
+    -- \centerarc(46:90:6.2)
     -- (Via Farini Via Ferrari.south two half)
     -- ++(0,.7)
+    {[rounded corners=.3cm]
+    -- ($(Via Ugo Bassi) + (-.3,0)$)
+    }
     -- (Via Ugo Bassi)
+    -- ++(.7,0) \makeStation(south, north, 0)(0,0){Via Porro |Lambertenghi}
     {[rounded corners=.3cm]
-    -- ++(1.8,0)
+    -- ++(.8,0)
     }
     -- ($(Piazzale Lagosta.south one half)$)
     -- (Piazzale Lagosta.one half)
@@ -930,42 +1289,42 @@
 
   \begin{pgfonlayer}{labels}
 
+
     \foreach \stop/\stopanchor/\line/\anchor/\name in {
       Greco Rovereto/center/one/south/1,
-      Roserio/one half/one/east/1,
-      Roserio-one-label/center/twelve/east/12,
-      Bausan/center/two/north/2,
-      Piazzale Negrelli/center/two/north east/2,
+      Roserio/north two half/one/south/1,
+      Roserio-one-label/center/twelve/west/12,
+      Bausan/center/two/south/2,
+      Piazzale Negrelli/south/two/north/2,
       Duomo/two half/fifteen/north west/15,
       Duomo-fifteen-label/center/three/north/3,
-      Via dei Missaglie Via Baroni/two half/three/west/3,
-      Niguarda Parco Nord/center/four/west/4,
+      Via dei Missaglie Via Baroni/two half/three/south east/3,
+      Niguarda Parco Nord/center/four/south/4,
       Ricasoli/center/four/east/4, % TODO
-      Ortica/center/five/south/5,
+      Ortica/center/five/west/5,
       Ospedale Niguarda/center/five/east/5,
       Piazzale Lagosta/center/seven/east/7,
       Piazzale Lagosta-seven-label/center/thirtythree/east/33,
-      Precotto Interno Deposito/center/seven/west/7,
-      Centrale/four eighth/nine/west/9,
-      % TODO rest of centrale
-      Porta Genoa/center/nine/north east/9,
+      Precotto Interno Deposito/center/seven/north/7,
+      Centrale/west/nine/east/9,
+      Porta Genova/center/nine/north/9,
       24 Maggio/center/ten/north east/10,
-      Viale Lunigiana/center/ten/west/10,
-      Viale Molise/center/twelve/north/12,
-      Piazzale Cimitero Maggiore/center/fourteen/south/14,
+      Viale Lunigiana/two half/ten/west/10,
+      Viale Molise/center/twelve/west/12,
+      Piazzale Cimitero Maggiore/center/fourteen/east/14,
       Lorenteggio/center/fourteen/north east/14,
-      Via G Rossa/center/fifteen/north/15,
-      San Siro Stadio/center/sixteen/north/16,
-      Via Monte Velino/center/sixteen/west/16,
-      Stazione Lambrate/east/nineteen/west/19,
-      Piazza Castelli/one half/nineteen/north east/19,
+      Via Guido Rossa/center/fifteen/east/15,
+      San Siro Stadio/center/sixteen/south/16,
+      Via Monte Velino/east/sixteen/west/16,
+      Stazione Lambrate/center/nineteen/south/19,
+      Piazza Castelli/west/nineteen/north/19,
       Piazza Fontana/one half/twentyfour/east/24,
-      Vigentino/center/twentyfour/north east/24,
+      Vigentino/center/twentyfour/east/24,
       Piazza Fontana/two half/twentyseven/west/27,
-      Viale Ungheria/center/twentyseven/west/27,
-      Viale Testi Via S Marcellina/two half/thirtyone/west/31,
-      Primo Maggio/center/thirtyone/east/31,
-      Rimembranze di Lambrate/center/thirtythree/north/33
+      Viale Ungheria/center/twentyseven/north/27,
+      Primo Maggio/north/thirtyone/south/31,
+      Viale Testi Via S Marcellina/one half/thirtyone/east/31,
+      Rimembranze di Lambrate/east/thirtythree/west/33
     } {
       \node[label, line name, fill=\line, anchor=\anchor] (\stop-\line-label)
         at ($(\stop.\stopanchor)$)
@@ -973,80 +1332,51 @@
     };
 
     \foreach\stop/\stopanchor/\direction/\distance/\anchor/\rotate in {
-      Piazzale Cantore/west/190/0/north east/0,
-      Via Vigenavo/east/50/.3/center/0,
-      Cenisio/east/180/.3/south west/0,
+      Cenisio/west/190/-.2/north east/0,
       Quinto Alpini/west/30/-.1/east/0,
-      Missori/south center/-45/.2/west/0,
-      Monte Santo/north west/-45/.1/east/0,
-      Cordusio/south two half/140/.2/north west/0
+      Missori/east/135/.2/south/0,
+      Cordusio/north east/-90/.1/south west/0
     } {
       \node[label, rotate=\rotate, anchor=\anchor]
       at ($(\stop.\stopanchor) + (\direction:\distance)$)
            {\contour{white}{\stop}};
     };
 
-    \node[label, anchor=west] at ($(DuomoN.east) + (0,.1)$)
+    \node[label, anchor=east] at ($(DuomoN.west) + (-0.5,-.3)$)
          {\contour{white} {Duomo}};
 
     \foreach\stop/\stopanchor/\anchor/\rotate in {
-      Via G Rossa/north/south/0,
       Cusani/east/west/0,
       Lanza/east/west/0,
-      Via Larga/west/west/-45,
-      Augusto/west/west/-45,
-      Ancona/west/north/0,
-      Cadorna/east/north east/0,
-      Crocetta/east/south west/0,
+      Crocetta/north east/west/0,
       Ricasoli/north/south/0,
-      Lega Lombarda/east/west/0,
+      Arena/east/west/0,
       Piazza Fontana/north/south/0,
-      Piazza 5 Giornate/one half/north west/0,
+      Via Torino Via Palla/west/south east/0,
+      Via Torino Via S Maria Valle/west/south east/0,
+      Carrobbio/west/south east/0,
+      Tricolore/west/east/0,
       % west
-      San Siro Stadio/north/south/0,
-      Segesta/north/south/0,
-      De Angeli/south/north/0,
+      San Siro Stadio/west/east/0,
       6 Febbraio/west/east/0,
       Viale Boezio/west/east/0,
       Domodossola/west/east/0,
-      Piazza Firenze/west/east/20,
-      Piazzale Accursio/west/east/20,
       % north
-      Certosa/east/south/0,
-      Bausan/north/south/0,
+      Bausan/west/east/0,
       Niguarda Parco Nord/west/east/0,
-      Primo Maggio/east/west/0,
-      Bicocca/west/east/0,
       Ca Granda/east/west/0,
       Marche/west/east/0,
-      Via Ugo Bassi/north/south west/0,
       Greco Rovereto/east/west/0,
       Via Vitruvio/east/west/0,
       Viale Tunisia/south east/west/0,
       % east
-      Piazza Ferravilla/south/north/0,
-      Viale Piave/west/east/0,
-      Porta Venezia/west/east/0,
-      Stazione Lambrate/west/east/0,
-      Valvassori Peroni/east/east/0,
-      Piazza Emilia/east/south/0,
-      Via Arconati/south/north/0,
-      Viale Molise/north/south/0,
+      Stazione Lambrate/east/west/0,
       % south east
-      Via Comelico/west/north east/0,
-      Piazza Salgari/south/north/0,
-      Via Monte Velino/west/east/0,
-      Repetti/center/south west/0,
-      Viale Ungheria/west/east/0,
-      % south
-      Agrippa/east/west/0,
+      Repetti/north/south/0,
+      Viale Ungheria/east/west/0,
       % ring
-      Via Bramante/north west/east/0,
-      24 Maggio/one half/north west/0,
-      Porta Lodovica/south east/north west/0,
       Porta Romana/east/west/0,
       Repubblica/two half/south west/0,
-      Piazzale Baracca/south/north west/0,
       Piazzale Aquileia/west/east/0
     } {
       \node[label, rotate=\rotate, anchor=\anchor]
@@ -1055,61 +1385,108 @@
     };
 
     \foreach \stop/\suffix/\position/\anchor/\rotate in {
-      Centrale/nine-label/.2/west/0,
       Viale Lunigiana/ten-label/.2/west/0,
-      Lorenteggio/fourteen-label/.2/west/0,
-      Piazzale Negrelli/two-label/.2/west/0,
-      Porta Genoa/nine-label/.2/west/0,
-      Ospedale Niguarda/five-label/-.2/east/0,
-      Ortica/five-label/-.2/east/0,
-      Vigentino/twentyfour-label/.2/west/0
+      Ospedale Niguarda/five-label/-.2/east/0
     } {
-      \node[label, rotate=\rotate, anchor=\anchor]
+      \node[label, rotate=\rotate, anchor=\anchor, align=center]
       at ($(\stop-\suffix) + (\position,0)$)
            {\contour{white}{\stop}};
     };
 
-    \node[label, anchor=south east] at ($(Roserio-one-label) + (.35,.2)$) {\contour{white}{Roserio}};
-
-
-    \def\mlabel(#1, #2, #3, #4, #5)#6{
-      \tlset\nodename{#6}
-      \tlremove\nodename{/}
-      \node[label, align=center, anchor=#2, rotate=#3] at ($(\nodename.#1) + (#4:#5)$) {%
-        \seqsetsplit\nodeseq{ /}{#6}%
-        \seqMapInline\temp\nodeseq{\contour{white}{##1}}%
-        \seqUse\temp{\\}
-      };
-    }
-    \def\slabel(#1, #2)#3{\mlabel(#1, #2, 0, 0, 0){#3}}
-
-    \mlabel(north west, south east, 0, 180, .1){Piazzale Coni Zugna /Via Solari}
-    \slabel(north west, south east){Via Torino /Via S Maria Valle}
-    \slabel(north west, east){Via Valenza Alzaia /Nav Grande}
-    \slabel(west, east){Piazzale Santorre /di Santarosa}
-    \mlabel(east, south, 0, 0, -.2){Via Mac Mahon /Via Artieri}
-    \slabel(south, north){Piazzale /Cimitero Maggiore}
-    \mlabel(east, west, 0, -40, .2){Corso Sempione /Via Procaccini}
-    \slabel(west, east){Via Farini /Viale Stelvio}
-    \slabel(west, east){Viale Testi /Via S Marcellina}
-    \slabel(east, west){Piazzale /Lagosta}
-    \slabel(east, south){Piazza /Diocleziano}
-    \slabel(north west, east){Via Farini /Via Valtellina}
-    \slabel(one half, south east){Via Farini /Via Ferrari}
-    \slabel(east, west){Rimembranze /di Lambrate}
-    \slabel(west, east){Viale Ungheria /Via Mercante}
-    \slabel(east, west){Monte Nero /Via Spartaco}
-    \slabel(north east, west){Viale Monte Nero /Via Bergamo}
-    \mlabel(west, east, 0, 180, .2){Via Ripamonti /Viale Sabotino}
-    \slabel(west, east){Piazza /Abbiategrasso}
-    \slabel(west, east){Via dei Missaglie /Via Baroni}
-    \slabel(south, north){Via Grandi /Via Bouzzi Rozzano}
-    \mlabel(east, south, 0, 70, .2){Adalaide di /Savoia}
-    \mlabel(east, west, 0, 0, .5){Precotto /Interno Deposito}
-    \mlabel(west, north west, 0, 0, -.2){Piazza /Castelli}
-    \mlabel(north, south, 0, -180, 0.1){Castello /Cairoli}
-    \mlabel(south west, east, 0, -90, 0.1){Arco della /Pace}
-    \mlabel(south west, north, 0, 0, 0){Vittorio /Veneto}
+    \mlabel(north west, south east, 0, 180, .1){Piazzale Coni Zugna |Via Solari}
+    \mlabel(east, south, 0, 0, -.3){Piazzale |Santorre |di Santarosa}
+    \mlabel(east, south, 0, 0, 0){Via Mac Mahon |Via Artieri}
+    \slabel(north, south){Piazzale |Cimitero Maggiore}
+    \mlabel(west, north east, 0, 110, .5){Corso Sempione |Via Procaccini}
+    \slabel(west, east){Via Farini |Viale Stelvio}
+    \slabel(east, west){Viale Testi |Via S Marcellina}
+    \slabel(east, west){Piazzale |Lagosta}
+    \mlabel(west, north, 0, 0, -.4){Piazza |Diocleziano}
+    \slabel(north west, east){Via Farini |Via Valtellina}
+    \mlabel(one half, south east, 0, 45, 0){Via Farini |Via Ferrari}
+    \slabel(north, south){Rimembranze |di Lambrate}
+    \slabel(east, west){Monte Nero |Via Spartaco}
+    \mlabel(north east, south west, 0, -45, .2){Viale Monte Nero |Via Bergamo}
+    \mlabel(east, west, 0, -40, .2){Via Ripamonti |Viale Sabotino}
+    \slabel(east, west){Piazza Abbiategrasso}
+    \slabel(east, west){Via dei Missaglie Via Baroni}
+    \mlabel(west, north, 0, 90, 0.05){Adalaide |di Savoia}
+    \mlabel(north, south, 0, 0, 0){Precotto |Interno Deposito}
+    \mlabel(north, south, 0, -180, 0){Castello |Cairoli}
+    \mlabel(east, north, 0, 15, 0.3){Arco |della Pace}
+    \mlabel(west, east, 0, -90, 0.15){Corso Sempione Via Canova}
+    \mlabel(west, east, 0, 90, 0.05){Corso Sempione Via Villasanta}
+    \mlabel(west, east, 0, -60, .4){Vittorio |Veneto}
+    \slabel(west, north){Largo |d'Ancona}
+    \mlabel(west, north, 0, 90, .05){Via |Meravigli}
+    \mlabel(west, south east, 0, -45, .2){Corso Genova |Via Sapeto}
+    \mlabel(east, west, 0, 0, 0){Corso Porta Romana |Via S Sofia}
+    \mlabel(west, north, 0, 0, 0){Palazzo |di Guistizia}
+    \mlabel(east, south, 0, 0, 0){Corso |Porta Vittoria |Camera |del Lavoro}
+    \mlabel(west, north, 0, 0, .3){Via Larga}
+    \mlabel(east, south, 0, 0, .3){Augusto}
+    \mlabel(east, north, 0, 0, 0){Via 20 |Settembre}
+    \mlabel(east, north, 0, 0, 0){Piazza |Virgilio}
+    \mlabel(east, south west, 0, -70, .4){Lega |Lombarda}
+
+    \slabel(east, west){Piazzale |Baiamonti}
+    \slabel(east, west){Viale |Montello}
+    \mlabel(west, north east, 0, 45, .4){Via |Bramante |Via Sarpi}
+    \mlabel(north west, east, 0, -45, .1){Porta |Venezia}
+    \mlabel(south two half, south west, 0, -45, 0.2){Monte |Santo}
+    \mlabel(south east, south, 0, 90, .2){Via Vigenavo |Viale Gorizia}
+    \mlabel(south east, north east, 0, 0, -.3){Porta |Genova}
+    \mlabel(one half, north west, 0, 0, 0){24 |Maggio}
+    \mlabel(north, south, 0, 0, 0){Viale Col |di Lana}
+    \mlabel(north, south, 0, 0, -.2){Via |Bocconi}
+    \mlabel(south, north, 0, 0, 0.2){Viale |Bligny}
+    \mlabel(south east, north west, 0, -45, -0.1){Porta |Lodovica}
+    \mlabel(east, west, 0, 0, 0){Viale Monte Nero |Via Pier Lombardo}
+    \mlabel(east, west, 0, 0, 0){Viale Sabotino}
+    \mlabel(one half, north west, 0, 70, 0.2){Piazza |5 Giornate}
+    \mlabel(west, east, 0, 0, 0){Viale Coni Zugna |Via Foppa}
+    \mlabel(west, east, 0, 0, 0){Viale San Michele del Carso |Piazza De Meis}
+    \mlabel(south west, north east, 0, 0, 0){Piazzale |Baracca}
+    \slabel(east, west){Conciliazone}
+    \slabel(west, east){Via Arosto}
+    \mlabel(west, south east, 0, -90, 0.1){Via Pagano |Via Canova}
+    \mlabel(west, south east, 0, 40, 0){Piazza |Gramsci}
+    \mlabel(south, north west, 0, -25, -.5){Via |Procaccini |Via Lomazzo}
+    \mlabel(north west, south east, 0, -25, 0.3){Via Procaccini |Via Nono}
+    \mlabel(south, north, 0, -40, 0.2){Monumentale}
+    \mlabel(north east, south, 0, 90, 0.3){Piazzale |Cimitero |Monumentale |Via Bramante}
+
+    \mlabel(east, south, 0, 0, 0){Stazione |Garibaldi}
+    \mlabel(west, north, 0, 0, 0){Viale Monte |Grappa |Via Gioia}
+    \mlabel(east, south, 0, 90, 0.2){Piazzale |Principessa |Clotilde |Ospedale |Fatebenefratelli}
+    \mlabel(north, south, 0, 90, .1){Via |Guido Rossa}
+    \slabel(east, west){Vigentino}
+    \mlabel(west, north east, 0, -45, -.2){Piazzale |Cantore}
+    \mlabel(north, south, 0, 90, .1){Viale |Molise}
+    \slabel(east, south){Piazza |Emilia}
+    \slabel(south, north){Via Monte |Velino}
+    \slabel(east, west){Viale |Premuda}
+    \slabel(south, north){Ortica}
+    \mlabel(west, west, 0, 0, 0){Via Valvassori Peroni}
+    \mlabel(east, west, 0, 0, 0){Porta Venezia |Viale Tunisia}
+    \mlabel(west, east, 0, 0, 0){Piazza 8 |Novembre}
+    \slabel(west, east){Viale |Piave}
+    \slabel(east, west){Piazza Cincinnato}
+    \mlabel(north, south, 0, 0, 0.3){Piazza Duca |d'Aosta}
+    \mlabel(east, west, 0, 0, 0){Centrale |Via Tonale}
+    \mlabel(north, south, 0, 0, 0){Via Ugo |Bassi}
+    \mlabel(north, south, 0, 0, .1){Piazza |Carbonari}
+    \mlabel(north, south, 0, 0, .2){Viale Lunigiana |Via Gioia}
+    \slabel(south, north){Primo |Maggio}
+    \slabel(east, south){Piazza |Castelli}
+    \mlabel(west, north, 0, 0, -.4){Piazza |Firenze}
+    \mlabel(east, south, 0, 0, 0){Piazzale |Accursio}
+    \slabel(east, west){Roserio}
+    \mlabel(west, east, 0, -90, .2){Viale Espinasse |Via Palizzi}
+    \slabel(west, east){Lorenteggio}
+    \slabel(south east, west){Piazzale Negrelli}
+    \mlabel(north west, south, 0, -30, -.3){Centrale}
+
 
   \end{pgfonlayer}
 \end{tikzpicture}
-- 
cgit v1.2.3

