From 469e1f71601559cb77dbceb090ea88363cbf2846 Mon Sep 17 00:00:00 2001 From: stuebinm Date: Sat, 28 Sep 2024 01:59:41 +0200 Subject: milano: all lines have not made commits so far. will try a circular circle line now, want this state saved. --- milano/metro.tex | 557 +++++++++++++++++++++++++++++++++++++++ milano/trams.tex | 780 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 1337 insertions(+) create mode 100644 milano/metro.tex create mode 100644 milano/trams.tex (limited to 'milano') 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 -- cgit v1.2.3