diff --git a/paths/de/b/d4.osm b/paths/de/b/d4.osm
index 780f47ab..df3ea09f 100644
--- a/paths/de/b/d4.osm
+++ b/paths/de/b/d4.osm
@@ -101,13 +101,13 @@
-
+
-
+
@@ -116,14 +116,14 @@
-
+
-
+
@@ -135,13 +135,8 @@
-
-
-
-
-
-
-
+
+
@@ -150,7 +145,6 @@
-
@@ -159,7 +153,7 @@
-
+
@@ -176,13 +170,13 @@
-
+
-
+
@@ -198,7 +192,7 @@
-
+
@@ -210,17 +204,9 @@
-
-
-
-
-
-
-
-
-
+
@@ -231,11 +217,11 @@
-
+
-
+
@@ -246,16 +232,15 @@
-
-
-
+
+
-
+
@@ -268,40 +253,24 @@
-
-
+
+
-
+
-
-
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
@@ -361,6 +330,225 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -419,30 +607,13 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
@@ -454,11 +625,7 @@
-
-
-
-
-
+
@@ -469,8 +636,7 @@
-
-
+
@@ -498,15 +664,18 @@
+
+
+
+
+
+
-
-
-
-
-
-
+
+
+
@@ -600,12 +769,458 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -623,21 +1238,43 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -656,4 +1293,171 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/rules/de/b/d1/61.map b/rules/de/b/d1/61.map
index 362fd8eb..6268a842 100644
--- a/rules/de/b/d1/61.map
+++ b/rules/de/b/d1/61.map
@@ -130,7 +130,7 @@ with detail = 1 {
with link = "point.de.Berlin-Hbf-Lehrter-Bf" {
label(path("d1.de.b.6118")[:wan] + (0dt, -2.5km),
- hbox(:right:bottom :small :bold :cat:ac15 :pax, "Berlin")
+ hbox(:right:bottom :medium :bold :cat:ac15 :pax, "Berlin")
);
}
diff --git a/rules/de/b/d3/60/6022.map b/rules/de/b/d3/60/6022.map
new file mode 100644
index 00000000..02f5c4a8
--- /dev/null
+++ b/rules/de/b/d3/60/6022.map
@@ -0,0 +1,45 @@
+# DE 6022. Berlin Jungfernheide - Berlin-Gartenfeld
+#
+let jg = path("d4.de.6022");
+
+with detail = 3 {
+ # point.de.Berlin-Jungfernheide: de.6020
+
+ with link = "line.de.6022" {
+ track(:first :double :exrail:rc75 :removed,
+ jg[:chg.yn, :chg.yn + 0.1dl] >> 2dt
+ .. jg[:wer - 0.1sw, :wer]
+ );
+ }
+
+ with link = "point.de.Berlin-Wernerwerk" {
+ track(:first:station :double :exrail:rc75 :removed,
+ jg[:wer, :sie - 1sw]
+ );
+ marker(:left :de.hp :exrail:rc75 :removed, jg[:wer + 0.5sw] << 0.5dt);
+ }
+
+ with link = "point.de.Berlin-Siemensstadt" {
+ track(:first:station :double :exrail:rc75 :removed,
+ jg[:sie - 1sw, :sie + 1sw]
+ );
+ marker(:left :de.hp :exrail:rc75 :removed, jg[:sie] << 0.5dt);
+ }
+
+ with link = "line.de.6022" {
+ track(:first :double :exrail:rc75 :removed,
+ jg[:sie + 1sw, :gar - 0.5sw]
+ );
+ }
+
+ with link = "point.de.Berlin-Gartenfeld" {
+ track(:first:station :double :exrail:rc75 :removed,
+ jg[:gar - 0.5sw, :gar]
+ );
+ marker(:top :de.bf :exrail:rc75 :removed, jg[:gar]);
+ slabel(:top :exrail:rc75 :removed, jg[:gar] + (-1.0dt, -2.3dt),
+ span(:bold, "B.-Gartenfeld")
+ );
+ }
+}
+
diff --git a/rules/de/b/d3/61/6100.map b/rules/de/b/d3/61/6100.map
index 399fc5ea..e6e46e59 100644
--- a/rules/de/b/d3/61/6100.map
+++ b/rules/de/b/d3/61/6100.map
@@ -6,7 +6,7 @@ with detail = 3 {
# point.de.Berlin-Spandau de.6107
with link = "line.de.6100" {
- track(:first :double :cat:ac15 :pax, ba[:sdu + 1ssw, :alb - 1ssw]);
+ track(:first :double :cat:ac15 :pax, ba[:spa + 1ssw, :alb - 1ssw]);
}
with link = "point.de.Berlin-Albrechtshof" {
diff --git a/rules/de/b/d4/60/6020.map b/rules/de/b/d4/60/6020.map
new file mode 100644
index 00000000..70cafe48
--- /dev/null
+++ b/rules/de/b/d4/60/6020.map
@@ -0,0 +1,243 @@
+# DE 6020. Berlin-Moabit - Berlin-Moabit
+#
+let mm = path("d4.de.6170");
+
+with detail = [4, 5] {
+ with link = "line.de.6020" {
+ track(:first :double :rail:rc75 :pax,
+ mm[:beu + 150m, :weh.a] << 2dt
+ );
+ }
+
+
+ with link = "point.de.Berlin-Westhafen" {
+ # Ri. Gesundbrunnen
+ track(:first:station :rail:rc75 :pax,
+ mm[:weh.a, :weh.a + 0.1dl] << 1.5dt
+ .. mm[:weh, :weh + 380m] << 2.5dt
+ );
+
+ # Ri. Hbf
+ track(:first:station :rail:rc75 :pax,
+ mm[:weh + 169m, :weh + 170m] << 2.5dt
+ -- mm[:weh + 270m, :weh + 380m] << 3.5dt
+ );
+
+ # aus Ri. Hbf
+ track(:first:station :rail:rc75 :pax,
+ mm[:weh + 169m, :weh + 170m] << 5.5dt
+ -- mm[:weh + 270m, :weh + 380m] << 4.5dt
+ );
+
+ # Ri. Jungfernheide
+ track(:first:station :rail:rc75 :pax,
+ mm[:weh.a, :weh.a + 0.1dl] << 2.5dt
+ .. mm[:weh, :weh + 380m] << 5.5dt
+ );
+
+ platform(:rail:rc75 :pax,
+ mm[:weh, :weh + 150m] << 2.5dt
+ -- mm[:weh + 150m, :weh] >> 3.2dt
+ );
+ platform(:rail:rc75 :pax,
+ mm[:weh, :weh + 150m] << 5.5dt
+ -- mm[:weh + 150m, :weh] >> 4.8dt
+ );
+
+ marker(:left :de.bf :rail:rc75 :pax, mm[:weh] << 5.5dt);
+ station(:top :rail:rc75 :pax, mm[:weh] << 5.5dt << 1.4sh,
+ hbox(:center:base, "B.-", span(:bold, "Westhafen")),
+ hbox(:center:top,
+ vbox(:right:top, "6020: ", "6017: "),
+ vbox(:right:top, "0,", "?"),
+ vbox(:left:top, "67", "?")
+ )
+ );
+ }
+
+
+ with link = "line.de.6020" {
+ with layer = -1 track(:first :rail:rc75 :pax :flip:tight,
+ mm[:wea.a, :wea.a - 250m] >> 1.5dt
+ .. mm[:weh + 420m, :weh + 380m] >> 2.5dt
+ );
+ with layer = -1 track(:first :rail:rc75 :pax :tight,
+ mm[:wea.a, :wea.a - 250m] >> 2.5dt
+ .. mm[:weh + 420m, :weh + 380m] >> 5.5dt
+ );
+ }
+
+
+ with link = "point.de.Berlin-Wedding" {
+ # Ri. Gesundbrunnen
+ track(:first:station :rail:rc75 :pax, mm[:wea.a, :wed.f] << 1.5dt);
+ track(:station :rail:rc75,
+ mm[:wed + 350m] << 1.5dt
+ -- mm[:wed + 450m] << 2.5dt
+ );
+
+ # aus Ri. Hbf
+ track(:first:station :rail:rc75 :pax,
+ mm[:wea.y, :wed - 350m] << 2.5dt
+ -- mm[:wed - 230m, :wed - 229m] << 1.5dt
+ );
+
+ # Ri. Hbf
+ track(:first:station :rail:rc75 :pax,
+ mm[:wea.y, :wed - 350m] << 3.5dt
+ -- mm[:wed - 230m, :wed - 229m] << 4.5dt
+ );
+
+ # Ri. Moabit
+ track(:first:station :rail:rc75 :pax,
+ mm[:wea.a, :wea.a + 0.1dl] << 2.5dt
+ .. mm[:wea.y, :wed + 50m] << 4.5dt
+ .. mm[:wed + 300m, :wed.f] << 2.5dt
+ );
+ track(:station :rail:rc75,
+ mm[:wed + 470m] << 2.5dt
+ -- mm[:wed + 570m] << 1.5dt
+ );
+
+ platform(:rail:rc75 :pax,
+ mm[:wed - 130m, :wed + 20m] << 1.5dt
+ -- mm[:wed + 20m, :wed - 130m] >> 2.2dt
+ );
+ platform(:rail:rc75 :pax,
+ mm[:wed - 130m, :wed + 20m] << 4.5dt
+ -- mm[:wed + 20m, :wed - 130m] >> 3.8dt
+ );
+
+ marker(:left :de.bf :rail:rc75 :pax, mm[:wed] << 4.5dt);
+ station(:top :rail:rc75 :pax, mm[:wed] << 4.5dt << 1.4sh,
+ span(:bold, "Berlin-Wedding"),
+ hbox(:center:top,
+ vbox(:right:top, "6020: ", "6019: "),
+ vbox(:right:top, "2,", "?"),
+ vbox(:left:top, "52", "?")
+ )
+ );
+ }
+
+
+ with link = "line.de.6020" {
+ let jg = path("d4.de.6022");
+
+ track(:first :rail:rc75 :pax :tight :casing,
+ mm[:wee.f, :chg.ys] >> 2.5dt
+ .. jg[:chg.yn - 80m, :jun.a] << 1.5dt
+ );
+ track(:first :rail:rc75 :pax :flip:tight :casing,
+ mm[:wee.f, :chg.ys] >> 1.5dt
+ .. jg[:chg.yn - 80m, :jun.a] << 3.5dt
+ );
+ }
+
+
+ with link = "point.de.Berlin-Jungfernheide" {
+ # aus Siemensstadt
+ track(:first :station :removed,
+ mm[:jun.a, :jun - 460m] << 4.5dt
+ -- mm[:jun - 400m, :jun - 399m] << 3.5dt
+ );
+
+ # Gl. 1
+ track(:first:station :rail:rc75 :pax,
+ mm[:jun.a, :jun + 300m] << 3.5dt
+ .. mm[:jun.f - 0.1dl, :jun.f] << 2.5dt
+ );
+ track(:station :removed,
+ mm[:jun + 50m] << 3.5dt
+ -- mm[:jun + 100m] << 2.5dt
+ );
+
+ # Gl. 3/2
+ track(:first:station :removed,
+ mm[:jun.a, :jun + 280m] << 2.5dt
+ );
+ track(:station :removed,
+ mm[:jun + 75m] << 2.5dt
+ -- mm[:jun + 125m] << 1.5dt
+ );
+
+ # Gl. 4
+ track(:first:station :rail:rc75 :pax, mm[:jun.a, :jun.f] << 1.5dt);
+ track(:station :removed,
+ mm[:jun + 75m] << 1.5dt
+ -- mm[:jun + 125m] << 2.5dt
+ );
+
+ platform(:rail:rc75 :pax,
+ mm[:jun - 75m, :jun + 75m] << 3.5dt
+ -- mm[:jun + 75m, :jun - 75m] >> 3.0dt
+ );
+ platform(:removed,
+ mm[:jun - 75m, :jun + 75m] << 2.5dt
+ -- mm[:jun + 75m, :jun - 75m] >> 2.0dt
+ );
+ platform(:rail:rc75 :pax,
+ mm[:jun - 75m, :jun + 75m] << 1.5dt
+ -- mm[:jun + 75m, :jun - 75m] >> 2.0dt
+ );
+ platform(:removed,
+ mm[:jun + 125m, :jun + 275m] << 3.5dt
+ -- mm[:jun + 275m, :jun + 125m] >> 2.5dt
+ );
+
+ marker(:left :de.hp :rail:rc75 :pax, mm[:jun] << 3.5dt);
+ marker(:left :de.exbf :rail:rc75 :pax, mm[:jun] << 3.5dt);
+ station(:top :rail:rc75 :pax, mm[:jun] << 4.0dt << 1.3sh,
+ vbox(:center:bottom,
+ hbox(:center:base, "B. ", span(:bold, "Jungfernheide ")),
+ "(S-Bahn)"
+ ),
+ hbox(:center:top,
+ vbox(:right:top, span(:removed, "6022: "), "6020: "),
+ vbox(:right:top, span(:removed, "0,"), "34,"),
+ vbox(:left:top, span(:removed, "00"), "62")
+ )
+ );
+ }
+
+
+ with link = "line.de.6020" {
+ track(:first :double :rail:rc75 :pax,
+ mm[:jun.f, :beu - 510m] << 2dt
+ );
+ }
+
+
+ with link = "point.de.Berlin-Markthalle" {
+ marker(:left :de.bk :removed, mm[:mar] << 2.5dt);
+ station(:top :removed, mm[:mar] << 2.5dt << 1.0sh,
+ "Markthalle ", "35,88"
+ );
+ }
+
+
+ with link = "point.de.Berlin-Beusselstraße" {
+ track(:first:station :double :rail:rc75 :pax,
+ mm[:beu - 510m, :beu + 150m] << 2dt
+ );
+ track(:station :rail:rc75,
+ mm[:beu - 460m] << 1.5dt
+ -- mm[:beu - 380m] << 2.5dt
+ );
+ track(:station :rail:rc75,
+ mm[:beu - 360m] << 2.5dt
+ -- mm[:beu - 280m] << 1.5dt
+ );
+
+ platform(:rail:rc75 :pax,
+ mm[:beu - 50m, :beu + 100m] << 2.5dt
+ -- mm[:beu + 100m, :beu - 50m] >> 1.5dt
+ );
+ marker(:left :de.bf :rail:rc75 :pax, mm[:beu] << 2.5dt);
+ station(:top :rail:rc75 :pax, mm[:beu] << 2.5dt << 1.4sh,
+ hbox(:center:base,
+ span(:light, "B.-"), "Beusselstraße "
+ ),
+ "36,69"
+ );
+ }
+}
diff --git a/rules/de/b/d4/60/6022.map b/rules/de/b/d4/60/6022.map
new file mode 100644
index 00000000..b1065a72
--- /dev/null
+++ b/rules/de/b/d4/60/6022.map
@@ -0,0 +1,133 @@
+# DE 6022. Berlin Jungfernheide - Berlin-Gartenfeld
+#
+let jg = path("d4.de.6022");
+
+with detail = [4, 5] {
+ # point.de.Berlin-Jungfernheide: de.6020
+
+
+ with link = "line.de.6022" {
+ with layer = -1 track(:first :exrail:rc75 :removed :tight,
+ jg[:wer - 150m, :jun.yyg + 3dt] >> 0.5dt
+ .. jg[:jun.yg, :jun.a] << 2.5dt
+ );
+ track(:first :exrail:rc75 :removed :flip:tight,
+ jg[:wer - 150m, :jun.yyg + 3dt] << 0.5dt
+ .. jg[:jun.yg, :jun.yg - 0.1dl] << 3.5dt
+ .. jg[:chg.yn, :jun.a] << 4.5dt
+ );
+ }
+
+
+ with link = "point.de.Berlin-Wernerwerk" {
+ track(:first:station :double :exrail:rc75 :removed,
+ jg[:wer - 150m, :wer + 100m]
+ );
+ platform(:exrail:rc75 :removed,
+ jg[:wer - 100m, :wer + 50m] >> 0.5dt
+ -- jg[:wer + 50m, :wer - 100m] >> 0.5dt
+ );
+ marker(:left :de.hp :removed, jg[:wer] << 0.5dt);
+ station(:left :removed, jg[:wer - 0.3sw] << 0.5dt << 1.4sh,
+ "Wernerwerk", "1,94"
+ );
+ }
+
+
+ with link = "line.de.6022" {
+ track(:first :double :exrail:rc75 :removed,
+ jg[:wer + 100m, :sie - 200m]
+ );
+ line_label(:right:s :exrail:rc75 :removed, jg[:wer + 600m] >> 0.5dt,
+ "6022"
+ );
+ }
+
+
+ with link = "point.de.Berlin-Siemensstadt" {
+ track(:first:station :double :exrail:rc75 :removed,
+ jg[:sie - 200m, :gar.a]
+ );
+ platform(:exrail:rc75 :removed,
+ jg[:sie - 150m, :sie] >> 0.5dt
+ -- jg[:sie, :sie - 150m] >> 0.5dt
+ );
+ marker(:left :de.hp :removed, jg[:sie] << 0.5dt);
+ station(:left :removed,
+ jg[:sie + 0.5sw] << 0.5dt << 1.2sh + (-0.5dt, 0dt),
+ hbox(:right :base, span(:light, "B.-"), "Siemenswerk"),
+ "3,12"
+ );
+ }
+
+
+ with link = "point.de.Berlin-Gartenfeld" {
+ # Gl. 1
+ track(:first:station :exrail:rc75 :removed,
+ jg[:gar.a, :gar - 900m] >> 0.5dt
+ .. jg[:gar - 740m, :gar - 380m] >> 1.5dt
+ -- jg[:gar - 330m, :gar] >> 0.5dt
+ );
+ # W28 - W26
+ track(:station :exrail:rc75 :removed,
+ jg[:gar - 900m] >> 0.5dt
+ -- jg[:gar - 850m] << 0.5dt
+ );
+ # W11 - W2
+ track(:station :exrail:rc75 :removed,
+ jg[:gar - 330m] >> 0.5dt
+ -- jg[:gar - 180m] << 2.5dt
+ );
+
+ # Gl. 2
+ track(:station :exrail:rc75 :removed,
+ jg[:gar - 841m, :gar - 840m] << 1.5dt
+ -- jg[:gar - 740m, :gar - 380m - 0.7dl] >> 0.5dt
+ -- jg[:gar - 330m - 0.7dl, :gar - 299m - 0.7dl] << 0.5dt
+ );
+
+ # Gl. 4
+ track(:station :exrail:rc75 :removed,
+ jg[:gar - 1000m, :gar - 160m] << 0.5dt
+ );
+
+ # Gl. 5
+ track(:station :exrail:rc75 :removed,
+ jg[:gar - 1000m, :gar - 230m] << 1.5dt
+ );
+
+ # Gl. 6
+ track(:station :exrail:rc75 :removed,
+ jg[:gar - 841m, :gar - 840m] << 0.5dt
+ -- jg[:gar - 740m, :gar - 380m - 0.7dl] << 2.5dt
+ -- jg[:gar - 330m - 0.7dl, :gar - 299m - 0.7dl] << 1.5dt
+ );
+
+ # Gl. 8
+ track(:first:station :exrail:rc75 :removed,
+ jg[:gar.a, :gar.a + 0.1dl] << 0.5dt
+ .. jg[:gar - 780m, :gar - 380m] << 3.5dt
+ -- jg[:gar - 330m, :gar] << 2.5dt
+ );
+ # W8 - W3
+ track(:station :exrail:rc75 :removed,
+ jg[:gar - 330m] << 2.5dt
+ -- jg[:gar - 180m] >> 0.5dt
+ );
+
+ platform(:exrail:rc75 :removed,
+ jg[:gar - 150m, :gar] >> 0.5dt
+ -- jg[:gar, :gar - 150m] >> 0.2dt
+ );
+ platform(:exrail:rc75 :removed,
+ jg[:gar - 150m, :gar] << 2.5dt
+ -- jg[:gar, :gar - 150m] >> 1.8dt
+ );
+
+ marker(:top :de.bf :exrail:rc75 :removed, jg[:gar] << 1dt);
+ station(:left :exrail:rc75 :removed, jg[:gar] + (-1.5sw, -0.1sw),
+ span(:bold, "Berlin-Gartenfeld"), "6022: 4,46"
+ );
+ }
+}
+
diff --git a/rules/de/b/d4/60/6024.map b/rules/de/b/d4/60/6024.map
new file mode 100644
index 00000000..8960da8f
--- /dev/null
+++ b/rules/de/b/d4/60/6024.map
@@ -0,0 +1,38 @@
+# DE 6024. Berlin Ostbahnhof - Potsdam Stadt
+#
+let op = path("d4.de.6024");
+
+with detail = 4 {
+ # ...
+
+
+ with layer = 2, link = "point.de.Berlin-Hbf-Lehrter-Bf-S-Bahn" {
+ # Gl. 15
+ track(:first:station :rail:rc75 :pax :casing,
+ op[:hbf.a, :hbf.a + 0.1dl] >> 1.5dt
+ .. op[:hbf - 140m, :hbf + 290m] >> 2.5dt
+ .. op[:hbf.f - 0.1dl, :hbf.f] >> 1.5dt
+ );
+
+ # Gl. 16
+ track(:first:station :rail:rc75 :pax :casing,
+ op[:hbf.a, :hbf.a + 0.1dl] >> 2.5dt
+ .. op[:hbf - 140m, :hbf + 290m] >> 3.5dt
+ .. op[:hbf.f - 0.1dl, :hbf.f] >> 2.5dt
+ );
+
+ with layer = 3 platform(:rail:rc75 :pax,
+ op[:hbf - 70m, :hbf + 80m] >> 2.5dt
+ -- op[:hbf + 80m, :hbf - 70m] << 3.5dt
+ );
+
+ marker(:right :de.hp :rail:rc75 :pax, op[:hbf] >> 3.5dt);
+ with layer = 1 {
+ marker(:right :de.hp.casing :rail:rc75 :pax, op[:hbf] >> 3.5dt);
+ }
+ }
+
+
+ # ...
+}
+
diff --git a/rules/de/b/d4/60/6025.map b/rules/de/b/d4/60/6025.map
new file mode 100644
index 00000000..d30f925d
--- /dev/null
+++ b/rules/de/b/d4/60/6025.map
@@ -0,0 +1,157 @@
+# DE 6025. Westkreuz - Berlin-Spandau
+#
+let ws = path("d4.de.6025");
+
+with detail = [4, 5] {
+ # ...
+
+
+ with link = "point.de.Berlin-Olympiastadion" {
+ track(:station :rail:rc75 :pax,
+ ws[:oly - 75m, :oly + 75m] >> 8.5dt
+ );
+
+ track(:station :rail:rc75 :pax,
+ ws[:oly - 75m, :oly + 75m] >> 7.5dt
+ );
+ track(:station :rail:rc75 :pax,
+ ws[:oly - 75m, :oly + 75m] >> 6.5dt
+ );
+
+ track(:station :rail:rc75 :pax,
+ ws[:oly - 75m, :oly + 75m] >> 5.5dt
+ );
+ track(:station :rail:rc75 :pax,
+ ws[:oly - 75m, :oly + 75m] >> 4.5dt
+ );
+
+ track(:station :rail:rc75 :pax,
+ ws[:oly - 75m, :oly + 75m] >> 3.5dt
+ );
+ track(:station :rail:rc75 :pax,
+ ws[:oly - 75m, :oly + 75m] >> 2.5dt
+ );
+
+ track(:first:station :rail:rc75 :pax,
+ ws[:oly.a, :oly + 75m] >> 1.5dt
+ );
+ track(:first:station :rail:rc75 :pax,
+ ws[:oly.a, :oly + 400m] >> 0.5dt
+ );
+ track(:first:station :rail:rc75 :pax,
+ ws[:oly.a, :oly + 400m] << 0.5dt
+ );
+ }
+
+
+ with link = "line.de.6025" {
+ track(:first :double :rail:rc75 :pax,
+ ws[:oly + 400m, :pic - 350m]
+ );
+ }
+
+
+ with link = "point.de.Berlin-Pichelsberg" {
+ track(:first:station :rail:rc75 :pax,
+ ws[:pic - 350m, :pic + 80m] >> 0.5dt
+ -- ws[:pic + 160m, :pic + 420m] >> 1.0dt
+ .. ws[:pic + 579m, :pic + 580m] >> 0.5dt
+ );
+ track(:station :rail:rc75,
+ ws[:pic + 79m, :pic + 80m] >> 0.5dt
+ -- ws[:pic + 160m, :pic + 350m]
+ );
+ track(:first:station :rail:rc75 :pax,
+ ws[:pic - 350m, :pic + 80m] << 0.5dt
+ -- ws[:pic + 160m, :pic + 420m] << 1.0dt
+ .. ws[:pic + 579m, :pic + 580m] << 0.5dt
+ );
+ track(:station :rail:rc75,
+ ws[:pic + 80m] << 0.5dt
+ -- ws[:pic + 160m]
+ );
+
+ platform(:rail:rc75 :pax,
+ ws[:pic - 120m, :pic + 30m] >> 0.5dt
+ -- ws[:pic + 30m, :pic - 120m] >> 0.5dt
+ );
+
+ marker(:left :de.bf :rail:rc75 :pax, ws[:pic] << 0.5dt);
+ station(:bottom :rail:rc75 :pax,
+ ws[:pic] << 0.5dt << 1.4sh + (-5dt, 0dt),
+ hbox(:center:base, span(:light, "B. "), "Pichelsberg"),
+ "17,33"
+ );
+ }
+
+
+ with link = "line.de.6025" {
+ with layer = 1 track(:first :double :rail:rc75 :pax :casing,
+ ws[:pic + 580m, :srw.yyo]
+ .. ws[:srw.yo, :srw - 250m] >> 3dt
+ );
+
+ line_label(:left:e :rail:rc75 :pax, ws[:pic + 1000m], "6025");
+ }
+
+
+ with link = "point.de.Berlin-Stresow" {
+ # Gl. 1/2
+ track(:first:station :double :rail:rc75 :pax,
+ ws[:srw - 250m, :spa - 300m] >> 3dt
+ );
+ # W751 - W752
+ track(:station :rail:rc75,
+ ws[:srw + 180m] >> 3.5dt
+ -- ws[:srw + 270m] >> 2.5dt
+ );
+
+ platform(:rail:rc75 :pax,
+ ws[:srw - 60m, :srw + 90m] >> 3.5dt
+ -- ws[:srw + 90m, :srw - 60m] << 2.5dt
+ );
+ marker(:right :de.hp.bft :rail:rc75 :pax, ws[:srw] >> 3.5dt);
+ }
+
+
+ with link = "point.de.Berlin-Spandau-S-Bahn" {
+ # Gl. 1
+ track(:first:station :rail:rc75 :pax,
+ ws[:spa - 300m, :spa + 150m] >> 3.5dt
+ );
+ track(:station :rail:rc75,
+ ws[:spa + 150m, :spa + 151m] >> 3.5dt
+ -- ws[:spa + 220m, :spa + 360m] >> 4.5dt
+ );
+
+ # Gl. 2
+ track(:first:station :rail:rc75 :pax,
+ ws[:spa - 300m, :spa + 150m] >> 2.5dt
+ );
+ track(:station :rail:rc75,
+ ws[:spa + 150m, :spa + 635m] >> 2.5dt
+ );
+ # W753 - W754
+ track(:station :rail:rc75,
+ ws[:spa - 200m] >> 2.5dt
+ -- ws[:spa - 100m] >> 3.5dt
+ );
+ # W761 - W763
+ track(:station :rail:rc75,
+ ws[:spa + 150m + 0.7dl] >> 2.5dt
+ -- ws[:spa + 220m + 0.7dl] >> 3.5dt
+ );
+
+ # Gl. 8
+ track(:station :rail:rc75,
+ ws[:spa + 150m, :spa + 380m] >> 3.5dt
+ );
+
+ platform(:rail:rc75 :pax,
+ ws[:spa - 15m, :spa + 135m] >> 3.5dt
+ -- ws[:spa + 135m, :spa - 15m] << 2.5dt
+ );
+ marker(:right :de.bf :rail:rc75 :pax, ws[:spa] >> 3.5dt);
+ }
+}
+
diff --git a/rules/de/b/d4/61/6100.map b/rules/de/b/d4/61/6100.map
index 854a1a1a..386a71f6 100644
--- a/rules/de/b/d4/61/6100.map
+++ b/rules/de/b/d4/61/6100.map
@@ -6,15 +6,71 @@ with detail = [4, 5] {
# point.de.Berlin-Spandau-Ost de.6107
# point.de.Berlin-Spandau-Mitte de.6107
# point.de.Berlin-Spandau de.6107
- # point.de.Berlin-Spandau-West de.6107
+
+
+ with link = "point.de.Berlin-Spandau-West" {
+ # Gl. 3
+ track(:first:station :cat:ac15 :pax,
+ ba[:spa + 600m, :spa.f] >> 1.5dt
+ );
+ # W702 - W703
+ track(:station :cat:ac15 :pax,
+ ba[:spw - 350m] >> 1.5dt
+ -- ba[:spw - 215m] >> 0.5dt
+ );
+
+ # Gl. 4
+ track(:first:station :cat:ac15 :pax,
+ ba[:spa + 600m, :spa.f] >> 0.5dt
+ );
+ # W706 - W707
+ track(:station :cat:ac15 :pax,
+ ba[:spw - 180m] >> 0.5dt
+ -- ba[:spw - 70m] << 0.5dt
+ );
+ # W712 - W713
+ track(:station :cat:ac15 :pax,
+ ba[:spw + 190m] >> 0.5dt
+ -- ba[:spw + 330m] >> 1.5dt
+ );
+
+ # Gl. 5
+ track(:first:station :cat:ac15 :pax,
+ ba[:spa + 600m, :spa.f] << 0.5dt
+ );
+ # W708 - W709
+ track(:station :cat:ac15 :pax,
+ ba[:spw + 35m] << 0.5dt
+ -- ba[:spw + 145m] >> 0.5dt
+ );
+ # W710 - W711
+ track(:station :cat:ac15 :pax,
+ ba[:spw + 95m] << 0.5dt
+ -- ba[:spw + 235m] << 1.5dt
+ );
+
+ # Gl. 6
+ track(:first:station :cat:ac15 :pax,
+ ba[:spa + 600m, :spa.f] << 1.5dt
+ );
+ # W704 - W705
+ track(:station :cat:ac15 :pax,
+ ba[:spw - 260m] << 1.5dt
+ -- ba[:spw - 135m] << 0.5dt
+ );
+
+ marker(:right :de.bft :cat:ac15, ba[:spw] >> 1.5dt);
+
+ }
+
with link = "line.de.6100" {
track(:first :cat:ac15 :pax :tight:flip,
ba[:szw - 0.2sw, :szw - 0.21sw] << 0.5dt
- .. ba[:sdu.yn, :sdu.f] << 1.5dt
+ .. ba[:spa.yn, :spa.f] << 1.5dt
);
- track(:first :cat:ac15 :pax :tight,
- ba[:szw - 0.2sw, :sdu.f] >> 0.5dt
+ with layer = -2 track(:first :cat:ac15 :pax :tight,
+ ba[:szw - 0.2sw, :spa.f] >> 0.5dt
);
track(:first :double :cat:ac15 :pax, ba[:szw - 0.2sw, :gahs - 0.5sw]);
with layer = 1 line_badge(:cat:ac15 :pax, ba[:szw + 0.8km], "6100");
diff --git a/rules/de/b/d4/61/6106.map b/rules/de/b/d4/61/6106.map
new file mode 100644
index 00000000..76212cc1
--- /dev/null
+++ b/rules/de/b/d4/61/6106.map
@@ -0,0 +1,38 @@
+# DE 6106. Berlin Hamb u Lehrt Bf - Berlin-Spandau Gbf
+#
+let ls = path("d4.de.6106");
+
+with detail = [4, 5] {
+ # XXX
+
+
+ # point.de.Berlin-Moabit: de.6170
+
+
+ with link = "line.de.6106" {
+ track(:first :double :removed, ls[:moa.a, :vlr - 100m] << 2dt);
+ }
+
+
+ # point.de.Berlin-Vlr de.6107
+ # point.de.Berlin-Siemensstadt-Fürstenbrunn de.6107
+
+
+ with link = "line.de.6106" {
+ track(:first :removed, ls[:fub + 150m, :wie - 350m] << 1.5dt);
+ }
+
+
+ # point.de.Berlin-Wiesendamm de.6107
+
+
+ with link = "line.de.6106" {
+ track(:first :double :gone,
+ ls[:wie + 350m, :sre.ys + 600m] << 2dt
+ .. ls[:sre.xs, :spa]
+ );
+ }
+
+
+}
+
diff --git a/rules/de/b/d4/61/6107.map b/rules/de/b/d4/61/6107.map
new file mode 100644
index 00000000..29cd12e5
--- /dev/null
+++ b/rules/de/b/d4/61/6107.map
@@ -0,0 +1,313 @@
+# DE 6107. Berlin Lehrt Bf - Lehrte
+#
+let bl = path("d4.de.b.6107");
+
+with detail = 4 {
+ # point.de.Berlin-Lehrter-Bf: de.6171
+
+ # point.de.Berlin-Moabit: de.6170
+
+
+ with link = "line.de.6107" {
+ track(:first :double :cat:ac15 :pax, bl[:moa.a, :jun - 450m]);
+ }
+
+
+ with link = "point.de.Berlin-Jungfernheide-Fernbahn" {
+ track(:first:station :double :cat:ac15 :pax,
+ bl[:jun - 450m, :jun + 260m]
+ );
+ platform(:cat:ac15 :pax,
+ bl[:jun - 130m, :jun + 80m] >> 0.5dt
+ -- bl[:jun + 80m, :jun - 130m] >> 0.5dt
+ );
+
+ with layer = 2 marker(:left :de.hp :cat:ac15 :pax, bl[:jun] << 0.5dt);
+ with layer = 1 marker(:left :de.hp.casing :cat:ac15 :pax, bl[:jun] << 0.5dt);
+ }
+
+
+ with link = "line.de.6107" {
+ with layer = -1 track(:first :double :cat:ac15 :pax,
+ bl[:jun + 260m, :vlr - 100m]
+ );
+ }
+
+
+ with link = "point.de.Berlin-Vlr" {
+ track(:first:station :double :cat:ac15 :pax,
+ bl[:vlr - 100m, :vlr + 100m]
+ );
+ track(:first:station :double :removed,
+ bl[:vlr - 100m, :vlr + 100m] << 2dt
+ );
+ track(:first:station :cat:ac15,
+ bl[:vlr - 100m, :vlr + 100m] << 3.5dt
+ );
+ track(:first:station :removed,
+ bl[:vlr - 100m, :vlr + 100m] << 4.5dt
+ );
+
+ marker(:right :de.abzw :removed, bl[:vlr] >> 0.5dt);
+ }
+
+
+ with link = "point.de.Berlin-Siemensstadt-Fürstenbrunn" {
+ track(:first:station :double :cat:ac15 :pax,
+ bl[:vlr + 100m, :fub + 150m]
+ );
+ track(:first:station :removed,
+ bl[:vlr + 100m, :fub + 150m] << 1.5dt
+ );
+ track(:first:station :removed,
+ bl[:vlr + 100m, :fub] << 2.5dt
+ );
+ track(:first:station :cat:ac15,
+ bl[:vlr + 100m, :fub - 50m] << 3.5dt
+ -- bl[:fub, :fub + 150m] << 2.5dt
+ );
+ track(:station :removed,
+ bl[:fub] << 2.5dt
+ -- bl[:fub + 50m] << 1.5dt
+ );
+ track(:first:station :removed,
+ bl[:vlr + 100m, :fub - 100m] << 4.5dt
+ -- bl[:fub - 50m, :fub - 49m] << 3.5dt
+ );
+
+ marker(:right :de.bf :removed, bl[:fub] >> 0.5dt);
+ }
+
+
+ with link = "line.de.6107" {
+ track(:first :double :cat:ac15 :pax, bl[:fub + 150m, :wie - 350m]);
+ }
+
+
+ with link = "point.de.Berlin-Wiesendamm" {
+ # Gl. 1
+ track(:first:station :cat:ac15 :pax,
+ bl[:wie - 350m, :wie + 350m] >> 0.5dt
+ );
+ # W3 - W4
+ track(:station :cat:ac15,
+ bl[:wie - 280m] >> 0.5dt
+ -- bl[:wie - 130m] << 0.5dt
+ );
+
+ # Gl. 2
+ track(:first:station :cat:ac15 :pax,
+ bl[:wie - 350m, :wie + 350m] << 0.5dt
+ );
+ # W7 - W8
+ track(:station :cat:ac15,
+ bl[:wie + 30m] << 0.5dt
+ -- bl[:wie + 170m] << 2.5dt
+ );
+ # W9 - W10
+ track(:station :cat:ac15,
+ bl[:wie + 130m] << 0.5dt
+ -- bl[:wie + 280m] >> 0.5dt
+ );
+
+ track(:first:station :removed,
+ bl[:wie - 350m, :wie + 350m] << 1.5dt
+ );
+
+ # Gl. 3
+ track(:first:station :cat:ac15,
+ bl[:wie - 350m, :wie + 350m] << 2.5dt
+ );
+ # W5 - W6
+ track(:station :cat:ac15,
+ bl[:wie - 170m] << 2.5dt
+ -- bl[:wie - 30m] << 0.5dt
+ );
+
+ marker(:left :de.abzw :cat:ac15, bl[:wie] << 2.5dt);
+ station(:bottom :cat:ac15, bl[:wie] << 2.5dt << 1.2sh,
+ hbox(:center:base, span(:light, "B.-"), "Wiesendamm"),
+ hbox(:center:top,
+ vbox(:right:top, "6107: ", "6179: "),
+ vbox(:right:top, "8,", "8,"),
+ vbox(:left:top, "66", "66")
+ )
+ );
+ }
+
+
+ with link = "line.de.6107" {
+ track(:first :cat:ac15 :pax :tight,
+ bl[:wie + 350m, :sdo.xo] >> 0.5dt
+ .. bl[:sdo.yo, :sdo - 450m] >> 1.5dt
+ );
+ track(:first :cat:ac15 :pax :flip:tight,
+ bl[:wie + 350m, :sdo.xo] << 0.5dt
+ .. bl[:sdo.yo, :sdo - 450m] << 1.5dt
+ );
+ }
+
+
+ with link = "point.de.Berlin-Spree" {
+ marker(:right :de.bk :removed, bl[:sre] >> 0.5dt);
+ station(:top :removed, bl[:sre] >> 0.5dt >> 1.0sh,
+ "Spree", "8,75"
+ );
+ }
+
+
+ with link = "point.de.Berlin-Spandau-Ost" {
+ # Gl. 3
+ track(:first:station :cat:ac15 :pax,
+ bl[:sdo - 450m, :sdo + 500m] >> 1.5dt
+ );
+ # W21 - W22
+ track(:station :cat:ac15,
+ bl[:sdo - 350m] >> 1.5dt
+ -- bl[:sdo - 210m] >> 0.5dt
+ );
+
+ # Gl. 4
+ track(:first:station :cat:ac15 :pax,
+ bl[:sdo - 450m, :sdo + 500m] >> 0.5dt
+ );
+ # W31 - W32
+ track(:station :cat:ac15,
+ bl[:sdo - 170m] >> 0.5dt
+ -- bl[:sdo + 30m] >> 1.5dt
+ );
+ # W27 - W28
+ track(:station :cat:ac15,
+ bl[:sdo + 15m] >> 0.5dt
+ -- bl[:sdo + 130m] << 0.5dt
+ );
+
+ # Gl. 5
+ track(:first:station :cat:ac15 :pax,
+ bl[:sdo - 450m, :sdo + 500m] << 0.5dt
+ );
+ # W25 - W26
+ track(:station :cat:ac15,
+ bl[:sdo - 110m] << 0.5dt
+ -- bl[:sdo] >> 0.5dt
+ );
+
+ # Gl. 6
+ track(:first:station :cat:ac15 :pax,
+ bl[:sdo - 450m, :sdo + 500m] << 1.5dt
+ );
+ # W23 - W24
+ track(:station :cat:ac15,
+ bl[:sdo - 270m] << 1.5dt
+ -- bl[:sdo - 130m] << 0.5dt
+ );
+
+ marker(:right :de.bft :cat:ac15, bl[:sdo] >> 1.5dt);
+ slabel(:top :cat:ac15 :medium, bl[:sdo] >> 1.5dt >> 1.1sh,
+ "B.-S. Ost"
+ );
+ }
+
+
+ with link = "point.de.Berlin-Spandau-Mitte" {
+ # Gl. 3
+ track(:first:station :cat:ac15 :pax,
+ bl[:sdo + 500m, :spa - 300m] >> 1.5dt
+ );
+ # Gl. W540
+ track(:station,
+ bl[:spm + 40m] >> 1.5dt
+ -- bl[:spm + 120m] >> 2.5dt
+ );
+
+ # Gl. 4
+ track(:first:station :cat:ac15 :pax,
+ bl[:sdo + 500m, :spa - 300m] >> 0.5dt
+ );
+
+ # Gl. 5
+ track(:first:station :cat:ac15 :pax,
+ bl[:sdo + 500m, :spa - 300m] << 0.5dt
+ );
+ # W546 - W547
+ track(:station :cat:ac15,
+ bl[:spm + 90m] << 0.5dt
+ -- bl[:spm + 225m] << 1.5dt
+ );
+
+ # Gl. 6
+ track(:first:station :cat:ac15 :pax,
+ bl[:sdo + 500m, :spa - 300m] << 1.5dt
+ );
+ # W539 - W633
+ track(:station :cat:ac15,
+ bl[:spm] << 1.5dt
+ -- bl[:spm + 120m] << 2.5dt
+ );
+
+ # Gl. 7
+ track(:first:station :cat:ac15,
+ bl[:spm - 460m, :spa - 300m] << 2.5dt
+ );
+ # W632 - W535
+ track(:station :cat:ac15,
+ bl[:spm - 445m] << 2.5dt
+ -- bl[:spm - 300m] << 1.5dt
+ );
+
+ marker(:left :de.bft :cat:ac15, bl[:spm] << 2.5dt);
+ slabel(:bottom :cat:ac15 :medium, bl[:spm] << 2.5dt << 1.2sh,
+ "B.-S. Mitte"
+ );
+ }
+
+
+ with link = "point.de.Berlin-Spandau" {
+ let cw = path("d4.de.6179");
+
+ # Gl. 3
+ track(:first:station :cat:ac15 :pax,
+ bl[:spa - 300m, :spa + 600m] >> 1.5dt
+ );
+
+ # Gl. 4
+ track(:first:station :cat:ac15 :pax,
+ bl[:spa - 300m, :spa + 600m] >> 0.5dt
+ );
+
+ # Gl. 5
+ track(:first:station :cat:ac15 :pax,
+ bl[:spa - 300m, :spa + 600m] << 0.5dt
+ );
+
+ # Gl. 6
+ track(:first:station :cat:ac15 :pax,
+ bl[:spa - 300m, :spa + 600m] << 1.5dt
+ );
+
+ # Gl. 7
+ track(:first:station :cat:ac15,
+ bl[:spa - 300m, :spa + 380m] << 2.5dt
+ .. cw[:spg - 290m, :spg - 150m] << 2.5dt
+ );
+
+ # Gl. 17
+ track(:station :cat:ac15,
+ bl[:spa + 379m, :spa + 380m] << 1.5dt
+ .. cw[:spg - 290m, :spg - 289m] << 1.5dt
+ -- cw[:spg - 200m, :spg - 199m] << 2.5dt
+ );
+
+ platform(:cat:ac15 :pax,
+ bl[:spa - 15m, :spa + 380m] >> 1.5dt
+ -- bl[:spa + 380m, :spa - 15m] << 0.5dt
+ );
+ platform(:cat:ac15 :pax,
+ bl[:spa - 15m, :spa + 380m] << 1.5dt
+ -- bl[:spa + 380m, :spa - 15m] >> 0.5dt
+ );
+
+ marker(:left :de.bf :cat:ac15 :pax, bl[:spa] << 2.5dt);
+ }
+}
+
diff --git a/rules/de/b/d4/61/6109.map b/rules/de/b/d4/61/6109.map
new file mode 100644
index 00000000..e8677937
--- /dev/null
+++ b/rules/de/b/d4/61/6109.map
@@ -0,0 +1,55 @@
+# DE 6109. Berlin Ostbahnhof - Berlin-Spandau
+#
+let os = path("d4.de.6109");
+
+with detail = 4 {
+ # ...
+
+
+ with layer = 2, link = "point.de.Berlin-Hbf-Stadtb" {
+ # Gl. 11
+ track(:station :cat:ac15 :pax :casing,
+ os[:hbf - 361m, :hbf - 360m] << 0.5dt
+ -- os[:hbf - 140m, :hbf + 290m] << 1.5dt
+ -- os[:hbf + 440m, :hbf + 441m] << 0.5dt
+ );
+
+ # Gl. 12
+ track(:first:station :cat:ac15 :pax :casing,
+ os[:hbf.a, :hbf.f] << 0.5dt
+ );
+
+ # Gl. 13
+ track(:first:station :cat:ac15 :pax :casing,
+ os[:hbf.a, :hbf.f] >> 0.5dt
+ );
+
+ # Gl. 14
+ track(:station :cat:ac15 :pax :casing,
+ os[:hbf - 361m, :hbf - 360m] >> 0.5dt
+ -- os[:hbf - 140m, :hbf + 290m] >> 1.5dt
+ -- os[:hbf + 440m, :hbf + 441m] >> 0.5dt
+ );
+
+ # Bahnsteig 11/12
+ with layer = 3 platform(:cat:ac15 :pax,
+ os[:hbf - 140m, :hbf + 290m] << 1.5dt
+ -- os[:hbf + 290m, :hbf - 140m] >> 0.5dt
+ );
+
+ # Bahnsteig 13/14
+ with layer = 3 platform(:cat:ac15 :pax,
+ os[:hbf - 140m, :hbf + 280m] >> 1.5dt
+ -- os[:hbf + 280m, :hbf - 140m] << 0.5dt
+ );
+
+ marker(:left :de.bf :cat:ac15 :pax, os[:hbf] << 1.5dt);
+ with layer = 1 {
+ marker(:left :de.bf.casing :cat:ac15 :pax, os[:hbf] << 1.5dt);
+ }
+ }
+
+
+ # ...
+}
+
diff --git a/rules/de/b/d4/61/6170.map b/rules/de/b/d4/61/6170.map
new file mode 100644
index 00000000..aca00707
--- /dev/null
+++ b/rules/de/b/d4/61/6170.map
@@ -0,0 +1,221 @@
+# DE 6170. Berlin-Moabit - Berlin-Moabit
+#
+let mm = path("d4.de.6170");
+
+with detail = [4, 5] {
+ with link = "point.de.Berlin-Moabit" {
+ let bl = path("d4.de.b.6107");
+
+ # Gl. 331
+ track(:first:station :removed,
+ mm[:moa.a, :moa - 1020m] >> 2.5dt
+ );
+ track(:station :cat:ac15,
+ mm[:moa - 1020m, :moa + 200m] >> 2.5dt
+ );
+ # W351 - W352
+ track(:station :cat:ac15,
+ mm[:moa + 70m] >> 2.5dt
+ -- mm[:moa + 160m] >> 0.5dt
+ );
+ # W353 - W354
+ track(:station :cat:ac15,
+ mm[:moa + 140m] >> 2.5dt
+ -- mm[:moa + 210m] >> 3.5dt
+ );
+
+ # „Gl. 332“
+ track(:first:station :removed,
+ mm[:moa.a, :moa.yl] >> 1.5dt
+ );
+
+ # Gl. 314 - 333
+ with layer = 2 track(:first:station :cat:ac15 :pax,
+ mm[:moa.a, :moa.xr + 0.7dl] >> 4.5dt
+ .. mm[:moa.xs + 0.7dl, :wea.a] >> 0.5dt
+ );
+ with layer = 1 casing(:first:station :cat:ac15 :pax,
+ mm[:moa.xr + 0.6dl, :moa.xr + 0.7dl] >> 4.5dt
+ .. mm[:moa.xs + 0.7dl, :moa.xs + 0.8dl] >> 0.5dt
+ );
+ # W312 - W313
+ track(:station :cat:ac15,
+ mm[:moa - 1720m] >> 4.5dt
+ -- mm[:moa - 1620m] >> 3.5dt
+ );
+ # W333 - W401
+ track(:station,
+ mm[:moa - 910m] >> 4.5dt
+ -- mm[:moa - 830m] >> 5.5dt
+ );
+
+ # Gl. 313 - 334
+ with layer = 3 track(:first:station :cat:ac15 :pax,
+ mm[:moa.a, :moa.xr] >> 3.5dt
+ .. mm[:moa.xs, :wea.a] << 0.5dt
+ );
+ with layer = 1 casing(:first:station :cat:ac15 :pax,
+ mm[:moa.xr - 0.1dl, :moa.xr] >> 3.5dt
+ .. mm[:moa.xs, :moa.xs + 0.1dl] << 0.5dt
+ );
+ # W314 - W315
+ track(:station :cat:ac15,
+ mm[:moa - 1550m] >> 3.5dt
+ -- mm[:moa - 1410m] >> 0.5dt
+ );
+ # W331 - W332
+ track(:station :cat:ac15,
+ mm[:moa - 1100m] >> 3.5dt
+ -- mm[:moa - 1000m] >> 4.5dt
+ );
+ # W334 - W335
+ track(:station :cat:ac15,
+ mm[:moa - 1020m] >> 3.5dt
+ -- mm[:moa - 950m] >> 2.5dt
+ );
+
+ # Gl. 502 - 335 - 395
+ track(:first:station :cat:ac15 :pax,
+ mm[:moa.a, :moa.xr] >> 0.5dt
+ .. mm[:moa.xs, :moa.yl] >> 4.5dt
+ .. bl[:hbn.y, :hbn.y - 0.1dl] >> 1.5dt
+ );
+ # W318 - W319
+ track(:station :cat:ac15,
+ mm[:moa - 1350m] >> 0.5dt
+ -- mm[:moa - 1220m] >> 3.5dt
+ );
+ # W321 - W322
+ track(:station :cat:ac15,
+ mm[:moa - 1240m] >> 0.5dt
+ -- mm[:moa - 1140m] << 0.5dt
+ );
+ # W336 - W337
+ track(:station :cat:ac15,
+ mm[:moa - 1000m] >> 0.5dt
+ -- mm[:moa - 910m] >> 2.5dt
+ );
+
+ # Gl. 501 - 336 - 396
+ track(:first:station :cat:ac15 :pax,
+ mm[:moa.a, :moa.xr + 0.7dl] << 0.5dt
+ .. mm[:moa.xs + 0.7dl, :moa.yl] >> 3.5dt
+ .. bl[:hbn.y - 1dl, :hbn.y - 1.1dl] << 1.5dt
+ );
+ # W316 - W317
+ track(:station :cat:ac15,
+ mm[:moa - 1540m] << 0.5dt
+ -- mm[:moa - 1470m] >> 0.5dt
+ );
+
+ # Gl. 374
+ with layer = 3 track(:first:station :cat:ac15 :pax,
+ mm[:moa + 119m, :moa + 120m] << 0.5dt
+ -- mm[:moa + 200m, :moa.xs - 80m] << 1.5dt
+ -- mm[:moa.xs, :moa.xs + 0.1dl] << 0.5dt
+ );
+
+ # Gl. 442
+ track(:station,
+ mm[:moa - 890m, :moa] >> 5.5dt
+ -- mm[:moa + 80m, :moa + 81m] >> 7.5dt
+ );
+
+ # Gl. 443
+ track(:station,
+ mm[:moa - 661m, :moa - 660m] >> 5.5dt
+ -- mm[:moa - 610m, :moa + 40m] >> 6.5dt
+ );
+
+ # Gl. 444
+ with layer = 3 track(:station,
+ mm[:moa - 711m - 0.7dl, :moa - 710m - 0.7dl] >> 5.5dt
+ -- mm[:moa - 610m - 0.7dl, :moa.xr] >> 7.5dt
+ .. mm[:moa.xs + 1dl, :moa.yl] >> 2.5dt
+ );
+ with layer = 2 casing(:station,
+ mm[:moa.xr - 0.1dl, :moa.xr] >> 7.5dt
+ .. mm[:moa.xs + 1dl, :moa.xs + 1.1dl] >> 2.5dt
+ );
+
+ # Gl. 445/446
+ track(:station,
+ mm[:moa - 610m - 1.4dl, :moa - 140m] >> 8.5dt
+ );
+
+ # Gl. 447/448
+ track(:station,
+ mm[:moa - 761m - 1.4dl, :moa - 760m - 1.4dl] >> 5.5dt
+ -- mm[:moa - 560m - 1.4dl, :moa - 180m] >> 9.5dt
+ -- mm[:moa - 100m, :moa - 99m] >> 7.5dt
+ );
+
+ marker(:right :de.bbf :cat:ac15, mm[:moa] >> 8.0dt);
+ station(:bottom :cat:ac15, mm[:moa - 1km] >> 9.0dt,
+ span(:bold, "Berlin-Moabit"),
+ hbox(:center:top,
+ vbox(:right:top, "6097: ", "6107: ", "6170: ", "6106: "),
+ vbox(:right:top, "2,", "2,", "0,", "2,"),
+ vbox(:left:top, "74", "88", "33", "87")
+ )
+ );
+ }
+
+
+ with link = "point.de.Moabit-Ost" {
+ marker(
+ :left :de.bft :cat:ac15, mm[:moa.xs + 0.5dt] << 0.5dt
+ );
+ with layer = -0.5 marker(
+ :left :de.bft.casing :cat:ac15, mm[:moa.xs + 0.5dt] << 0.5dt
+ );
+ }
+
+
+ with link = "point.de.Berlin-Wedding-Abzw" {
+ # Ri. Moabit
+ track(:first:station :cat:ac15 :pax, mm[:wea.a, :wea.f] << 0.5dt);
+
+ # Ri. Hbf
+ track(:first:station :cat:ac15 :pax,
+ mm[:wea.y, :wea - 125m] >> 0.5dt
+ -- mm[:wea - 25m, :wea - 24m] << 0.5dt
+ );
+
+ # aus Ri. Hbf
+ track(:first:station :cat:ac15 :pax,
+ mm[:wea.y, :wea - 125m + 0.7dl] >> 1.5dt
+ );
+
+ # aus Ri. Moabit
+ track(:first:station :cat:ac15 :pax,
+ mm[:wea.a, :wea.a + 0.1dl] >> 0.5dt
+ .. mm[:wea - 250m, :wea - 225m + 0.7dl] >> 2.5dt
+ -- mm[:wea - 25m + 0.7dl, :wea.f] >> 0.5dt
+ );
+
+ marker(:right :de.abzw :cat:ac15, mm[:wea + 0.5dt] >> 0.5dt);
+ station(:right :cat:ac15, mm[:wea] >> 0.5dt >> 1.8sh,
+ hbox(:center:base, "B.-", span(:bold, "Wedding "), "Abzw"),
+ hbox(:center:top,
+ vbox(:right:top, "6170: ", "6171: "),
+ vbox(:right:top, "2,", "0,"),
+ vbox(:left:top, "35", "00")
+ )
+ );
+ }
+
+
+ with link = "line.de.6170" {
+ track(:first :double :cat:ac15 :pax, mm[:wea.f, :ges.a]);
+ }
+
+
+
+
+
+ with link = "line.de.6170" {
+ track(:first :double :cat:ac15 :pax, mm[:chg.f, :moa.a] >> 4dt);
+ }
+}
+
diff --git a/rules/de/b/d4/61/6171.map b/rules/de/b/d4/61/6171.map
new file mode 100644
index 00000000..ee47cb58
--- /dev/null
+++ b/rules/de/b/d4/61/6171.map
@@ -0,0 +1,185 @@
+# DE 6171. Berlin-Wedding Abzw - Berlin Südkreuz Südende
+#
+let ws = path("d4.de.6171");
+
+with detail = 4 {
+ # point.de.Berlin-Wedding-Abzw: de.6170
+
+
+ with link = "line.de.6171" {
+ with layer = 1 track(:first :double :cat:ac15 :pax :casing,
+ ws[:wea.y, :wea.y + 0.1dl] << 1dt
+ .. ws[:hbn.y, :hbn.y + 0.1dl]
+ );
+ }
+
+
+ with link = "point.de.Berlin-Hbf-Lehrter-Bf" {
+ # Gl. 1
+ track(:first:station :cat:ac15 :pax,
+ ws[:hbn.y, :hbf - 460m] >> 1.5dt
+ -- ws[:hbf - 300m, :hbf + 300m + 0.7dl] >> 3.5dt
+ -- ws[:hbf + 460m + 0.7dl, :hbf.f] >> 1.5dt
+ );
+ # W103 - W104
+ track(:station :cat:ac15 :pax,
+ ws[:hbf - 880m] >> 1.5dt
+ -- ws[:hbf - 760m] >> 0.5dt
+ );
+
+ # Gl. 2
+ track(:station :cat:ac15 :pax,
+ ws[:hbf - 380m, :hbf + 380m + 0.7dl] >> 2.5dt
+ );
+ # W133 - W134
+ track(:station :cat:ac15 :pax,
+ ws[:hbf + 300m] >> 2.5dt
+ -- ws[:hbf + 360m] >> 1.5dt
+ );
+
+ # Gl. 3
+ track(:station :cat:ac15 :pax,
+ ws[:hbf - 341m, :hbf - 340m] >> 2.5dt
+ -- ws[:hbf - 280m, :hbf + 460m + 0.7dl] >> 1.5dt
+ );
+ # W123 - W124
+ track(:station :cat:ac15 :pax,
+ ws[:hbf - 220m] >> 1.5dt
+ -- ws[:hbf - 160m] >> 2.5dt
+ );
+ # W136 - W138
+ track(:station :cat:ac15 :pax,
+ ws[:hbf + 360m + 0.7dl] >> 1.5dt
+ -- ws[:hbf + 420m + 0.7dl] >> 0.5dt
+ );
+ # W144 - W145
+ track(:station :cat:ac15 :pax,
+ ws[:hbf + 500m + 0.7dl] >> 1.5dt
+ -- ws[:hbf + 560m + 0.7dl] >> 0.5dt
+ );
+
+ # Gl. 4
+ track(:first:station :cat:ac15 :pax, ws[:hbn.y, :hbf.f] >> 0.5dt);
+ # W107 - W108
+ track(:station :cat:ac15 :pax,
+ ws[:hbf - 680m] >> 0.5dt
+ -- ws[:hbf - 600m] << 0.5dt
+ );
+ # W109 - W110
+ track(:station :cat:ac15 :pax,
+ ws[:hbf - 620m] >> 0.5dt
+ -- ws[:hbf - 540m] >> 1.5dt
+ );
+ # W120 - W122
+ track(:station :cat:ac15 :pax,
+ ws[:hbf - 310m] >> 0.5dt
+ -- ws[:hbf - 250m] >> 1.5dt
+ );
+ # W144 - W145
+ track(:station :cat:ac15 :pax,
+ ws[:hbf + 600m + 0.7dl] >> 0.5dt
+ -- ws[:hbf + 680m + 0.7dl] << 0.5dt
+ );
+ track(:station :cat:ac15 :pax,
+ ws[:hbf + 700m + 0.7dl] >> 0.5dt
+ -- ws[:hbf + 780m + 0.7dl] >> 1.5dt
+ );
+
+ # Gl. 5
+ track(:first:station :cat:ac15 :pax, ws[:hbn.y, :hbf.f] << 0.5dt);
+ # W105 - W106
+ track(:station :cat:ac15 :pax,
+ ws[:hbf - 780m] << 0.5dt
+ -- ws[:hbf - 700m] >> 0.5dt
+ );
+ # W111 - W112
+ track(:station :cat:ac15 :pax,
+ ws[:hbf - 580m] << 0.5dt
+ -- ws[:hbf - 500m] << 1.5dt
+ );
+ # W117 - W118
+ track(:station :cat:ac15 :pax,
+ ws[:hbf - 310m] << 0.5dt
+ -- ws[:hbf - 250m] << 1.5dt
+ );
+ # W144 - W145
+ track(:station :cat:ac15 :pax,
+ ws[:hbf + 600m + 0.7dl] << 0.5dt
+ -- ws[:hbf + 680m + 0.7dl] >> 0.5dt
+ );
+ track(:station :cat:ac15 :pax,
+ ws[:hbf + 700m + 0.7dl] << 0.5dt
+ -- ws[:hbf + 780m + 0.7dl] << 1.5dt
+ );
+
+ # Gl. 6
+ track(:station :cat:ac15 :pax,
+ ws[:hbf - 341m, :hbf - 340m] << 2.5dt
+ -- ws[:hbf - 280m, :hbf + 460m + 0.7dl] << 1.5dt
+ );
+ # W117 - W118
+ track(:station :cat:ac15 :pax,
+ ws[:hbf - 220m] << 1.5dt
+ -- ws[:hbf - 160m] << 2.5dt
+ );
+ # W139 - W141
+ track(:station :cat:ac15 :pax,
+ ws[:hbf + 360m + 0.7dl] << 1.5dt
+ -- ws[:hbf + 420m + 0.7dl] << 0.5dt
+ );
+ # W142 - W143
+ track(:station :cat:ac15 :pax,
+ ws[:hbf + 500m + 0.7dl] << 1.5dt
+ -- ws[:hbf + 560m + 0.7dl] << 0.5dt
+ );
+
+ # Gl. 7
+ track(:station :cat:ac15 :pax,
+ ws[:hbf - 380m, :hbf + 380m + 0.7dl] << 2.5dt
+ );
+ # W133 - W134
+ track(:station :cat:ac15 :pax,
+ ws[:hbf + 300m] << 2.5dt
+ -- ws[:hbf + 360m] << 1.5dt
+ );
+
+ # Gl. 8
+ track(:first:station :cat:ac15 :pax,
+ ws[:hbn.y, :hbf - 460m] << 1.5dt
+ -- ws[:hbf - 300m, :hbf + 300m + 0.7dl] << 3.5dt
+ -- ws[:hbf + 460m + 0.7dl, :hbf.f] << 1.5dt
+ );
+ # W101 - W102
+ track(:station :cat:ac15 :pax,
+ ws[:hbf - 930m] << 1.5dt
+ -- ws[:hbf - 810m] << 0.5dt
+ );
+
+ # Bahnsteig 1/2
+ platform(:cat:ac15 :pax,
+ ws[:hbf - 150m, :hbf + 280m] >> 3.5dt
+ -- ws[:hbf + 280m, :hbf - 150m] << 2.5dt
+ );
+
+ # Bahnsteig 3/4
+ platform(:cat:ac15 :pax,
+ ws[:hbf - 150m, :hbf + 280m] >> 0.5dt
+ -- ws[:hbf + 280m, :hbf - 150m] << 1.5dt
+ );
+
+ # Bahnsteig 5/6
+ platform(:cat:ac15 :pax,
+ ws[:hbf - 150m, :hbf + 280m] << 0.5dt
+ -- ws[:hbf + 280m, :hbf - 150m] >> 1.5dt
+ );
+
+ # Bahnsteig 7/8
+ platform(:cat:ac15 :pax,
+ ws[:hbf - 150m, :hbf + 280m] << 3.5dt
+ -- ws[:hbf + 280m, :hbf - 150m] >> 2.5dt
+ );
+
+ marker(:right :de.bf :cat:ac15 :pax, ws[:hbf - 1.5sw] >> 3.5dt);
+ }
+}
+
diff --git a/rules/de/b/d4/61/6179.map b/rules/de/b/d4/61/6179.map
new file mode 100644
index 00000000..ebabedb0
--- /dev/null
+++ b/rules/de/b/d4/61/6179.map
@@ -0,0 +1,198 @@
+# DE 6179. Berlin-Charlottenburg Gbf - Wustermark Rbf
+#
+let cw = path("d4.de.6179");
+
+with detail = [4, 5] {
+ # XXX
+
+ # point.de.Berlin-Vlr de.6107
+ # point.de.Berlin-Siemensstadt-Fürstenbrunn de.6107
+
+
+ with link = "line.de.6179" {
+ track(:first :cat:ac15 :flip:tight,
+ cw[:fub + 150m, :wie - 350m] << 2.5dt
+ );
+ }
+
+
+ # point.de.Berlin-Wiesendamm de.6107
+
+
+ with link = "line.de.6179" {
+ track(:first :cat:ac15 :flip:tight,
+ cw[:wie + 350m, :wie + 401m] << 2.5dt
+ .. cw[:sdo.xo - 0.1dl, :sdo.xo] << 1.5dt
+ .. cw[:sdo.yo, :sdo.yo + 0.1dl] << 2.5dt
+ );
+ }
+
+
+ with link = "point.de.Berlin-Ruhleben" {
+ # Gl. 637
+ track(:first:station :cat:ac15,
+ cw[:sdo.yo + 0.1dl, :spm - 460m] << 2.5dt
+ );
+ }
+
+
+ with link = "point.de.Berlin-Spandau-Gbf" {
+ let spg = path("d4.de.6179.spg");
+
+ # Gl. 21 (?)
+ track(:station,
+ cw[:spg - 210m, :spg.yb + 60m + 0.7dl] << 1.5dt
+ );
+
+ # Gl. 22 (?)
+ track(:station,
+ cw[:spg - 161m, :spg - 160m] << 1.5dt
+ -- cw[:spg - 120m, :spg] << 0.5dt
+ -- cw[:spg + 40m, :spg + 41m] << 1.5dt
+ );
+
+ # Gl. 23 (?)
+ track(:third:station,
+ cw[:spg.yb - 0.1dl, :spg.yb] << 1.5dt
+ -- cw[:spg.yb + 40m, :spg.yb + 60m] << 0.5dt
+ );
+
+ # GL. 31
+ track(:station :cat:ac15,
+ cw[:spg.yb - 0.1dl, :spg.yb + 0.7dl] << 2.5dt
+ -- cw[:spg.yb + 60m + 0.7dl, :spg.fw - 210m] << 1.5dt
+ -- cw[:spg.fw - 110m, :spg.fw - 109m] << 2.5dt
+ );
+ track(:first:station :removed, cw[:spg.fw - 210m, :spg.fw] << 1.5dt);
+
+ # Gl. 32
+ track(:first:station :cat:ac15,
+ cw[:spg - 150m, :spg.fw] << 2.5dt
+ );
+
+ # Ladegleise
+ track(:station :removed, spg[:a, :spg] << 3.5dt);
+ track(:station :removed,
+ spg[:a, :spg - 40m] << 4.5dt
+ -- spg[:spg + 40m, :spg + 41m] << 2.5dt
+ );
+
+ marker(:left :de.gbf :removed, cw[:spg] << 4.5dt);
+ }
+
+ with link = "line.de.6179" {
+ track(:first :removed, cw[:spg.fw, :bra] << 1.5dt);
+ track(:first :cat:ac15 :flip, cw[:spg.fw, :bra] << 2.5dt);
+ }
+
+ # point.de.Berlin-Nennhauser-Damm: de.6185
+
+ with link = "point.de.Berlin-Staaken-Bstg" {
+ track(:first:station :double :cat:ac15 :pax,
+ cw[:ned + 300m, :stb + 420m] << 2dt
+ );
+
+ platform(:cat:ac15 :pax,
+ cw[:stb - 60m, :stb + 60m] << 1.5dt
+ -- cw[:stb + 60m, :stb - 60m] >> 2.5dt
+ );
+
+ marker(:left :de.hp :cat:ac15 :pax, cw[:stb] << 2.5dt);
+ }
+
+ with link = "point.de.Berlin-Staaken" {
+ track(:station,
+ cw[:stw - 740m, :stw - 430m] << 5.5dt
+ -- cw[:stw - 350m, :stw - 349m] << 4.5dt
+ );
+
+ track(:station,
+ cw[:stw - 1000m, :stw - 320m] << 4.5dt
+ .. cw[:stw - 180m, :stw + 265m] << 3.5dt
+ -- cw[:stw + 365m, :stw + 366m] << 2.5dt
+ );
+ track(:station,
+ cw[:stw + 265m] << 3.5dt -- cw[:stw + 300m] << 4dt
+ );
+
+ track(:station,
+ cw[:stw - 751m, :stw - 750m] << 4.5dt
+ -- cw[:stw - 670m, :stw - 400m] << 3.5dt
+ -- cw[:stw - 320m, :stw - 319m] << 4.5dt
+ );
+
+ track(:first:station :double :cat:ac15 :pax,
+ cw[:stb + 420m, :stw.f] << 2dt
+ );
+ track(:station :cat:ac15,
+ cw[:stw.f - 565m] << 2.5dt
+ -- cw[:stw.f - 475m] << 1.5dt
+ );
+ track(:station :cat:ac15,
+ cw[:stw.f - 460m] << 1.5dt
+ -- cw[:stw.f - 370m] << 2.5dt
+ );
+
+ marker(:left :de.gbf :cat:ac15, cw[:stw] << 3.5dt);
+ marker(:left :de.exbf :cat:ac15, cw[:stw] << 3.5dt);
+ station(:bottom :cat:ac15, cw[:stw] << 4.5dt << 1.1sh + (-0.5sw, 0dt),
+ "B.-Staaken", "6179: 18,40"
+ );
+ }
+
+ with link = "line.de.6179" {
+ track(:first :double :cat:ac15 :pax, cw[:stw.f, :dal.a] << 2dt);
+ line_label(:left:n :cat:ac15 :pax, cw[:stw.f + 600m] << 2.5dt, "6179");
+ }
+
+ with link = "point.de.Dallgow-Döberitz" {
+ track(:station :removed,
+ cw[:dal - 311m, :dal - 310m] << 2.5dt
+ -- cw[:dal - 150m, :dal - 40m] << 6.5dt
+ );
+ track(:station :removed, cw[:dal - 190m, :dal - 40m] << 5.5dt);
+ track(:station :removed, cw[:dal - 230m, :dal - 40m] << 4.5dt);
+ track(:station :removed, cw[:dal - 270m, :dal - 40m] << 3.5dt);
+
+ track(:first:station :double :cat:ac15 :pax,
+ cw[:dal.a, :dal.f] << 2dt
+ );
+
+ platform(:cat:ac15 :pax,
+ cw[:dal - 140m, :dal + 30m] << 1.5dt
+ -- cw[:dal + 30m, :dal - 140m] >> 2.5dt
+ );
+
+ marker(:left :de.hp :cat:ac15 :pax, cw[:dal] << 6.5dt);
+ marker(:left :de.exbf :cat:ac15 :pax, cw[:dal] << 6.5dt);
+ station(:top :cat:ac15 :pax, cw[:dal - 0.4sw] >> 2.0dt,
+ vbox(:center:bottom,
+ span(:italic :removed, "Dallgow-Döberitz"),
+ hbox(:center:base :italic :removed,
+ "Dallgow", span(:light, " (b Berlin)")
+ ),
+ "Dallgow-Döberitz"
+ ),
+ hbox(:center:base, span(:removed, "22,67 → "), "22,20")
+ );
+ }
+
+ with link = "line.de.6179" {
+ track(:first :double :cat:ac15 :pax, cw[:dal.f, :wot.a] << 2dt);
+ }
+
+ with link = "point.de.Wustermark-Rbf-Wot" {
+ # Gl. 5
+ track(:station :cat:ac15,
+ cw[:wot + 9m, :wot + 10m] << 2.5dt
+ -- cw[:wot + 90m, :wot.f] << 3.5dt
+ );
+
+ # Gl. 24
+ track(:first:station :cat:ac15 :pax, cw[:wot.a, :wot.f] << 2.5dt);
+
+ # Gl. 33
+ track(:first:station :cat:ac15 :pax, cw[:wot.a, :wot.f] << 1.5dt);
+ }
+}
+
diff --git a/rules/de/b/d4/61/6185.map b/rules/de/b/d4/61/6185.map
new file mode 100644
index 00000000..7810d896
--- /dev/null
+++ b/rules/de/b/d4/61/6185.map
@@ -0,0 +1,87 @@
+# DE 6185. Berlin-Spandau Ost - Oebisfelde
+#
+let bl = path("d4.de.b.6107");
+
+with detail = [4, 5] {
+ # point.de.Berlin-Spandau-Ost de.6107
+ # point.de.Berlin-Spandau-Mitte de.6107
+ # point.de.Berlin-Spandau de.6107
+ # point.de.Berlin-Spandau-West de.6100
+
+
+ with link = "line.de.6185" {
+ track(:first :cat:ac15 :pax :flip:tight :casing,
+ bl[:ned - 300m, :spa.f] << 0.5dt
+ );
+ track(:first :cat:ac15 :pax :tight,
+ bl[:ned - 300m, :ned - 800m] >> 0.5dt
+ .. bl[:spa.yn, :spa.f] >> 1.5dt
+ );
+ }
+
+
+ with link = "point.de.Berlin-Nennhauser-Damm" {
+ track(:first:station :cat:ac15 :pax,
+ bl[:ned - 300m, :ned + 300m] >> 0.5dt
+ );
+ track(:station :cat:ac15,
+ bl[:ned - 160m] >> 0.5dt
+ -- bl[:ned - 25m] << 0.5dt
+ );
+
+ track(:first:station :cat:ac15 :pax,
+ bl[:ned - 300m, :ned + 300m] << 0.5dt
+ );
+ track(:station :cat:ac15,
+ bl[:ned - 205m] << 0.5dt
+ -- bl[:ned - 40m] << 2.5dt
+ );
+
+ track(:first:station :removed,
+ bl[:ned - 300m, :ned + 100m] << 1.5dt
+ );
+ track(:first:station :cat:ac15 :pax,
+ bl[:ned + 9m, :ned + 10m] << 0.5dt
+ -- bl[:ned + 100m, :ned + 300m] << 1.5dt
+ );
+
+ track(:first:station :cat:ac15,
+ bl[:ned - 300m, :ned - 40m] << 2.5dt
+ );
+ track(:first:station :cat:ac15 :pax,
+ bl[:ned - 206m, :ned - 205m] << 0.5dt
+ -- bl[:ned - 40m, :ned + 300m] << 2.5dt
+ );
+
+ marker(:left :de.abzw :cat:ac15, bl[:ned] << 2.5dt);
+ station(:bottom :cat:ac15, bl[:ned] << 2.5dt << 1.2sh,
+ "B. Nennhauser Damm",
+ hbox(:center:top,
+ vbox(:right:top, "6185: ", "6179: "),
+ vbox(:right:top, "115,", "16,"),
+ vbox(:left:top, "90", "06")
+ )
+ );
+ }
+
+
+ with link = "line.de.6185" {
+ track(:first :double :cat:ac15 :pax, bl[:ned + 300m, :wus.a]);
+ line_label(:right:s :cat:ac15 :pax, bl[:stw.f + 600m] >> 0.5dt,
+ hbox(:center:base, span(:removed, "6107 → "), "6185")
+ );
+ }
+
+ with link = "point.de.Staaken-Flugplatz" {
+ marker(:right :de.bk :removed, bl[:flu] >> 0.5dt);
+ station(:top :removed, bl[:flu] >> 0.5dt >> 1.0sh,
+ "Flugplatz", "18,78"
+ );
+ }
+
+
+ # point.de.Wustermark de.6107
+ # point.de.Wustermark-Awn de.6107
+}
+
+
diff --git a/rules/de/b/d5/60/6024.map b/rules/de/b/d5/60/6024.map
new file mode 100644
index 00000000..12da1f79
--- /dev/null
+++ b/rules/de/b/d5/60/6024.map
@@ -0,0 +1,39 @@
+# DE 6024. Berlin Ostbahnhof - Potsdam Stadt
+#
+let op = path("d4.de.6024");
+
+with detail = 5 {
+ # ...
+
+
+ with layer = 2, link = "point.de.Berlin-Hbf-Lehrter-Bf-S-Bahn" {
+ # Gl. 15
+ track(:first:station :rail:rc75 :pax :casing,
+ op[:hbf.a, :hbf - 360m] >> 1.5dt
+ .. op[:hbf - 140m, :hbf + 290m] >> 3.5dt
+ .. op[:hbf + 440m, :hbf.f] >> 1.5dt
+ );
+
+ # Gl. 16
+ track(:first:station :rail:rc75 :pax :casing,
+ op[:hbf.a, :hbf - 360m] >> 2.5dt
+ .. op[:hbf - 70m, :hbf + 80m] >> 5.5dt
+ .. op[:hbf + 289m, :hbf + 290m] >> 4.5dt
+ .. op[:hbf + 440m, :hbf.f] >> 2.5dt
+ );
+
+ platform(:rail:rc75 :pax,
+ op[:hbf - 70m, :hbf + 80m] >> 3.9dt
+ -- op[:hbf + 80m, :hbf - 70m] << 5.1dt
+ );
+
+ marker(:right :de.hp :rail:rc75 :pax, op[:hbf] >> 5.5dt);
+ with layer = 1 {
+ marker(:right :de.hp.casing :rail:rc75 :pax, op[:hbf] >> 5.5dt);
+ }
+ }
+
+
+ # ...
+}
+
diff --git a/rules/de/b/d5/61/6107.map b/rules/de/b/d5/61/6107.map
new file mode 100644
index 00000000..258a313f
--- /dev/null
+++ b/rules/de/b/d5/61/6107.map
@@ -0,0 +1,317 @@
+# DE 6107. Berlin Lehrt Bf - Lehrte
+#
+let bl = path("d4.de.b.6107");
+
+with detail = 5 {
+ # point.de.Berlin-Lehrter-Bf: de.6171
+
+ # point.de.Berlin-Moabit: de.6170
+
+
+ with link = "line.de.6107" {
+ track(:first :double :cat:ac15 :pax, bl[:moa.a, :jun - 450m]);
+ }
+
+
+ with link = "point.de.Berlin-Jungfernheide-Fernbahn" {
+ track(:first:station :double :cat:ac15 :pax,
+ bl[:jun - 450m, :jun + 260m]
+ );
+ platform(:cat:ac15 :pax,
+ bl[:jun - 130m, :jun + 80m] >> 0.5dt
+ -- bl[:jun + 80m, :jun - 130m] >> 0.5dt
+ );
+
+ with layer = 2 marker(:left :de.hp :cat:ac15 :pax, bl[:jun] << 0.5dt);
+ with layer = 1 marker(:left :de.hp.casing :cat:ac15 :pax, bl[:jun] << 0.5dt);
+ }
+
+
+ with link = "line.de.6107" {
+ with layer = -1 track(:first :double :cat:ac15 :pax,
+ bl[:jun + 260m, :vlr - 100m]
+ );
+ }
+
+
+ with link = "point.de.Berlin-Vlr" {
+ track(:first:station :double :cat:ac15 :pax,
+ bl[:vlr - 100m, :vlr + 100m]
+ );
+ track(:first:station :double :removed,
+ bl[:vlr - 100m, :vlr + 100m] << 2dt
+ );
+ track(:first:station :cat:ac15,
+ bl[:vlr - 100m, :vlr + 100m] << 3.5dt
+ );
+ track(:first:station :removed,
+ bl[:vlr - 100m, :vlr + 100m] << 4.5dt
+ );
+
+ marker(:right :de.abzw :removed, bl[:vlr] >> 0.5dt);
+ }
+
+
+ with link = "point.de.Berlin-Siemensstadt-Fürstenbrunn" {
+ track(:first:station :double :cat:ac15 :pax,
+ bl[:vlr + 100m, :fub + 150m]
+ );
+ track(:first:station :removed,
+ bl[:vlr + 100m, :fub + 150m] << 1.5dt
+ );
+ track(:first:station :removed,
+ bl[:vlr + 100m, :fub] << 2.5dt
+ );
+ track(:first:station :cat:ac15,
+ bl[:vlr + 100m, :fub - 50m] << 3.5dt
+ -- bl[:fub, :fub + 150m] << 2.5dt
+ );
+ track(:station :removed,
+ bl[:fub] << 2.5dt
+ -- bl[:fub + 50m] << 1.5dt
+ );
+ track(:first:station :removed,
+ bl[:vlr + 100m, :fub - 100m] << 4.5dt
+ -- bl[:fub - 50m, :fub - 49m] << 3.5dt
+ );
+
+ marker(:right :de.bf :removed, bl[:fub] >> 0.5dt);
+ }
+
+
+ with link = "line.de.6107" {
+ track(:first :double :cat:ac15 :pax, bl[:fub + 150m, :wie - 350m]);
+ }
+
+
+ with link = "point.de.Berlin-Wiesendamm" {
+ # Gl. 1
+ track(:first:station :cat:ac15 :pax,
+ bl[:wie - 350m, :wie + 350m] >> 0.5dt
+ );
+ # W3 - W4
+ track(:station :cat:ac15,
+ bl[:wie - 280m] >> 0.5dt
+ -- bl[:wie - 130m] << 0.5dt
+ );
+
+ # Gl. 2
+ track(:first:station :cat:ac15 :pax,
+ bl[:wie - 350m, :wie + 350m] << 0.5dt
+ );
+ # W7 - W8
+ track(:station :cat:ac15,
+ bl[:wie + 30m] << 0.5dt
+ -- bl[:wie + 170m] << 2.5dt
+ );
+ # W9 - W10
+ track(:station :cat:ac15,
+ bl[:wie + 130m] << 0.5dt
+ -- bl[:wie + 280m] >> 0.5dt
+ );
+
+ track(:first:station :removed,
+ bl[:wie - 350m, :wie + 350m] << 1.5dt
+ );
+
+ # Gl. 3
+ track(:first:station :cat:ac15,
+ bl[:wie - 350m, :wie + 350m] << 2.5dt
+ );
+ # W5 - W6
+ track(:station :cat:ac15,
+ bl[:wie - 170m] << 2.5dt
+ -- bl[:wie - 30m] << 0.5dt
+ );
+
+ marker(:left :de.abzw :cat:ac15, bl[:wie] << 2.5dt);
+ station(:bottom :cat:ac15, bl[:wie] << 2.5dt << 1.2sh,
+ hbox(:center:base, span(:light, "B.-"), "Wiesendamm"),
+ hbox(:center:top,
+ vbox(:right:top, "6107: ", "6179: "),
+ vbox(:right:top, "8,", "8,"),
+ vbox(:left:top, "66", "66")
+ )
+ );
+ }
+
+
+ with link = "line.de.6107" {
+ track(:first :cat:ac15 :pax :tight,
+ bl[:wie + 350m, :sdo.xo] >> 0.5dt
+ .. bl[:sdo.yo, :sdo - 450m] >> 1.5dt
+ );
+ track(:first :cat:ac15 :pax :flip:tight,
+ bl[:wie + 350m, :sdo.xo] << 0.5dt
+ .. bl[:sdo.yo, :sdo - 450m] << 1.5dt
+ );
+ }
+
+
+ with link = "point.de.Berlin-Spree" {
+ marker(:right :de.bk :removed, bl[:sre] >> 0.5dt);
+ station(:top :removed, bl[:sre] >> 0.5dt >> 1.0sh,
+ "Spree", "8,75"
+ );
+ }
+
+
+ with link = "point.de.Berlin-Spandau-Ost" {
+ # Gl. 3
+ track(:first:station :cat:ac15 :pax,
+ bl[:sdo - 450m, :sdo + 500m] >> 1.5dt
+ );
+ # W21 - W22
+ track(:station :cat:ac15,
+ bl[:sdo - 351m, :sdo - 350m] >> 1.5dt
+ .. bl[:sdo - 210m, :sdo - 209m] >> 0.5dt
+ );
+
+ # Gl. 4
+ track(:first:station :cat:ac15 :pax,
+ bl[:sdo - 450m, :sdo + 500m] >> 0.5dt
+ );
+ # W31 - W32
+ track(:station :cat:ac15,
+ bl[:sdo - 170m] >> 0.5dt
+ -- bl[:sdo + 30m] >> 1.5dt
+ );
+ # W27 - W28
+ track(:station :cat:ac15,
+ bl[:sdo + 15m] >> 0.5dt
+ -- bl[:sdo + 130m] << 0.5dt
+ );
+
+ # Gl. 5
+ track(:first:station :cat:ac15 :pax,
+ bl[:sdo - 450m, :sdo + 500m] << 0.5dt
+ );
+ # W25 - W26
+ track(:station :cat:ac15,
+ bl[:sdo - 110m] << 0.5dt
+ -- bl[:sdo] >> 0.5dt
+ );
+
+ # Gl. 6
+ track(:first:station :cat:ac15 :pax,
+ bl[:sdo - 450m, :sdo + 500m] << 1.5dt
+ );
+ # W23 - W24
+ track(:station :cat:ac15,
+ bl[:sdo - 270m] << 1.5dt
+ -- bl[:sdo - 130m] << 0.5dt
+ );
+
+ marker(:right :de.bft :cat:ac15, bl[:sdo] >> 1.5dt);
+ station(:top :cat:ac15, bl[:sdo] >> 1.5dt >> 1.2sh,
+ "B.-Spandau Ost",
+ hbox(:center:top,
+ vbox(:right:top, "6100: ", "6185: "),
+ vbox(:right:top, "10,", "110,"),
+ vbox(:left:top, "01", "33"),
+ vbox(:center:top, " • ", " • "),
+ vbox(:right:top, "6107: ", "6109: "),
+ vbox(:right:top, "10,", "18,"),
+ vbox(:left:top, "33", "32")
+ )
+ );
+ }
+
+
+ with link = "point.de.Berlin-Spandau-Mitte" {
+ # Gl. 3
+ track(:first:station :cat:ac15 :pax,
+ bl[:sdo + 500m, :spa - 300m] >> 1.5dt
+ );
+ # Gl. W540
+ track(:station,
+ bl[:spm + 40m] >> 1.5dt
+ -- bl[:spm + 120m] >> 2.5dt
+ );
+
+ # Gl. 4
+ track(:first:station :cat:ac15 :pax,
+ bl[:sdo + 500m, :spa - 300m] >> 0.5dt
+ );
+
+ # Gl. 5
+ track(:first:station :cat:ac15 :pax,
+ bl[:sdo + 500m, :spa - 300m] << 0.5dt
+ );
+ # W546 - W547
+ track(:station :cat:ac15,
+ bl[:spm + 90m] << 0.5dt
+ -- bl[:spm + 225m] << 1.5dt
+ );
+
+ # Gl. 6
+ track(:first:station :cat:ac15 :pax,
+ bl[:sdo + 500m, :spa - 300m] << 1.5dt
+ );
+ # W539 - W633
+ track(:station :cat:ac15,
+ bl[:spm] << 1.5dt
+ -- bl[:spm + 120m] << 2.5dt
+ );
+
+ # Gl. 7
+ track(:first:station :cat:ac15,
+ bl[:spm - 460m, :spa - 300m] << 2.5dt
+ );
+ # W632 - W535
+ track(:station :cat:ac15,
+ bl[:spm - 445m] << 2.5dt
+ -- bl[:spm - 300m] << 1.5dt
+ );
+
+ marker(:left :de.bft :cat:ac15, bl[:spm] << 2.5dt);
+ station(:bottom :cat:ac15, bl[:spm] << 2.5dt << 1.2sh,
+ "B.-S. Mitte",
+ hbox(:center:top,
+ vbox(:right:top, "6100: ", "6185: ", "6179: "),
+ vbox(:right:top, "11,", "111,", "11,"),
+ vbox(:left:top, "40", "40", "76")
+ )
+ );
+ }
+
+
+ with link = "point.de.Berlin-Spandau" {
+ # Gl. 3
+ track(:first:station :cat:ac15 :pax,
+ bl[:spa - 300m, :spa + 600m] >> 1.5dt
+ );
+
+ # Gl. 4
+ track(:first:station :cat:ac15 :pax,
+ bl[:spa - 300m, :spa + 600m] >> 0.5dt
+ );
+
+ # Gl. 5
+ track(:first:station :cat:ac15 :pax,
+ bl[:spa - 300m, :spa + 600m] << 0.5dt
+ );
+
+ # Gl. 6
+ track(:first:station :cat:ac15 :pax,
+ bl[:spa - 300m, :spa + 600m] << 1.5dt
+ );
+
+ # Gl. 7
+ track(:first:station :cat:ac15,
+ bl[:spa - 300m, :spa + 600m] << 2.5dt
+ );
+
+ platform(:cat:ac15 :pax,
+ bl[:spa - 15m, :spa + 380m] >> 1.5dt
+ -- bl[:spa + 380m, :spa - 15m] << 0.5dt
+ );
+ platform(:cat:ac15 :pax,
+ bl[:spa - 15m, :spa + 380m] << 1.5dt
+ -- bl[:spa + 380m, :spa - 15m] >> 0.5dt
+ );
+
+ marker(:left :de.bf :cat:ac15 :pax, bl[:spa] << 2.5dt);
+ }
+}
+
diff --git a/rules/de/b/d5/61/6109.map b/rules/de/b/d5/61/6109.map
new file mode 100644
index 00000000..cdb33405
--- /dev/null
+++ b/rules/de/b/d5/61/6109.map
@@ -0,0 +1,55 @@
+# DE 6109. Berlin Ostbahnhof - Berlin-Spandau
+#
+let os = path("d4.de.6109");
+
+with detail = 5 {
+ # ...
+
+
+ with layer = 2, link = "point.de.Berlin-Hbf-Stadtb" {
+ # Gl. 11
+ track(:station :cat:ac15 :pax :casing,
+ os[:hbf - 361m, :hbf - 360m] << 0.5dt
+ .. os[:hbf - 140m, :hbf + 290m] << 2.5dt
+ .. os[:hbf + 440m, :hbf + 441m] << 0.5dt
+ );
+
+ # Gl. 12
+ track(:first:station :cat:ac15 :pax :casing,
+ os[:hbf.a, :hbf.f] << 0.5dt
+ );
+
+ # Gl. 13
+ track(:first:station :cat:ac15 :pax :casing,
+ os[:hbf.a, :hbf.f] >> 0.5dt
+ );
+
+ # Gl. 14
+ track(:station :cat:ac15 :pax :casing,
+ os[:hbf - 361m, :hbf - 360m] >> 0.5dt
+ .. os[:hbf - 140m, :hbf + 290m] >> 2.5dt
+ .. os[:hbf + 440m, :hbf + 441m] >> 0.5dt
+ );
+
+ # Bahnsteig 11/12
+ platform(:cat:ac15 :pax,
+ os[:hbf - 140m, :hbf + 290m] << 2.1dt
+ -- os[:hbf + 290m, :hbf - 140m] >> 0.9dt
+ );
+
+ # Bahnsteig 13/14
+ platform(:cat:ac15 :pax,
+ os[:hbf - 140m, :hbf + 280m] >> 2.1dt
+ -- os[:hbf + 280m, :hbf - 140m] << 0.9dt
+ );
+
+ marker(:left :de.bf :cat:ac15 :pax, os[:hbf] << 2.5dt);
+ with layer = 1 {
+ marker(:left :de.bf.casing :cat:ac15 :pax, os[:hbf] << 2.5dt);
+ }
+ }
+
+
+ # ...
+}
+
diff --git a/rules/de/b/d5/61/6171.map b/rules/de/b/d5/61/6171.map
new file mode 100644
index 00000000..507bc7cb
--- /dev/null
+++ b/rules/de/b/d5/61/6171.map
@@ -0,0 +1,213 @@
+# DE 6171. Berlin-Wedding Abzw - Berlin Südkreuz Südende
+#
+let ws = path("d4.de.6171");
+
+with detail = 5 {
+ # point.de.Berlin-Wedding-Abzw: de.6170
+
+
+ with link = "line.de.6171" {
+ with layer = 1 track(:first :double :cat:ac15 :pax :casing,
+ ws[:wea.y, :wea.y + 0.1dl] << 1dt
+ .. ws[:hbn.y, :hbn.y + 0.1dl]
+ );
+ }
+
+
+ with link = "point.de.Berlin-Hbf-Lehrter-Bf" {
+ # Gl. 1
+ track(:first:station :cat:ac15 :pax,
+ ws[:hbn.y, :hbf - 440m] >> 1.5dt
+ .. ws[:hbf - 170m, :hbf + 300m] >> 5.5dt
+ .. ws[:hbf + 425m] >> 2.95dt -- ws[:hbf + 430m] >> 2.8dt
+ .. ws[:hbf + 500m, :hbf.f] >> 1.5dt
+ );
+ # W103 - W104
+ track(:station :cat:ac15 :pax,
+ ws[:hbn.y + 279m, :hbn.y + 280m] >> 1.5dt
+ .. ws[:hbn.y + 405m, :hbn.y + 406m] >> 0.5dt
+ );
+ # W144 - W145
+ track(:station :cat:ac15 :pax,
+ ws[:hbf + 519m, :hbf + 520m] >> 1.5dt
+ .. ws[:hbf + 600m, :hbf + 601m] >> 0.5dt
+ );
+
+ # Gl. 2
+ track(:station :cat:ac15 :pax,
+ ws[:hbf - 461m, :hbf - 340m] >> 1.5dt
+ .. ws[:hbf - 170m, :hbf + 300m] >> 3.5dt
+ .. ws[:hbf + 395m] >> 2.05dt -- ws[:hbf + 400m] >> 1.95dt
+ .. ws[:hbf + 500m, :hbf + 510m] >> 0.5dt
+ );
+ # W121 - W122
+ track(:station :cat:ac15 :pax,
+ ws[:hbf - 341m, :hbf - 340m] >> 1.5dt
+ .. ws[:hbf - 255m] >> 1.5dt -- ws[:hbf - 250m] >> 1.6dt
+ );
+ # W133 - W135
+ track(:station :cat:ac15 :pax,
+ ws[:hbf + 299m, :hbf + 300m] >> 3.5dt
+ .. ws[:hbf + 425m] >> 2.95dt -- ws[:hbf + 430m] >> 2.8dt
+ );
+ # W136 - W137
+ track(:station :cat:ac15 :pax,
+ ws[:hbf + 395m] >> 2.05dt -- ws[:hbf + 400m] >> 1.95dt
+ .. ws[:hbf + 500m, :hbf + 501m] >> 1.5dt
+ );
+
+ # Gl. 3
+ track(:station :cat:ac15 :pax,
+ ws[:hbf - 341m, :hbf - 340m + 0.5dl] >> 0.5dt
+ .. ws[:hbf - 255m] >> 1.5dt -- ws[:hbf - 250m] >> 1.6dt
+ .. ws[:hbf - 170m + 0.5dl, :hbf + 300m] >> 2.5dt
+ .. ws[:hbf + 395m] >> 2.05dt -- ws[:hbf + 400m] >> 1.95dt
+ );
+ # W123 - W124
+ track(:station :cat:ac15 :pax,
+ ws[:hbf - 255m] >> 1.5dt -- ws[:hbf - 250m] >> 1.6dt
+ .. ws[:hbf - 170m, :hbf - 169m] >> 3.5dt
+ );
+
+ # Gl. 4
+ track(:first:station :cat:ac15 :pax, ws[:hbn.y, :hbf.f] >> 0.5dt);
+ # W107 - W108
+ track(:station :cat:ac15 :pax,
+ ws[:hbn.y + 474m, :hbn.y + 475m] >> 0.5dt
+ .. ws[:hbn.y + 555m, :hbn.y + 556m] << 0.5dt
+ );
+ # W109 - W110
+ track(:station :cat:ac15 :pax,
+ ws[:hbn.y + 539m, :hbn.y + 540m] >> 0.5dt
+ .. ws[:hbn.y + 665m, :hbn.y + 666m] >> 1.5dt
+ );
+ # W147 - W148
+ track(:station :cat:ac15 :pax,
+ ws[:hbf + 599m, :hbf + 600m] >> 0.5dt
+ .. ws[:hbf + 680m, :hbf + 681m] << 0.5dt
+ );
+ # W150 - W151
+ track(:station :cat:ac15 :pax,
+ ws[:hbf + 679m, :hbf + 680m] >> 0.5dt
+ .. ws[:hbf + 760m, :hbf + 761m] >> 1.5dt
+ );
+
+ # Gl. 5
+ track(:first:station :cat:ac15 :pax, ws[:hbn.y, :hbf.f] << 0.5dt);
+ # W105 - W106
+ track(:station :cat:ac15 :pax,
+ ws[:hbn.y + 384m, :hbn.y + 385m] << 0.5dt
+ .. ws[:hbn.y + 460m, :hbn.y + 461m] >> 0.5dt
+ );
+ # W111 - W112
+ track(:station :cat:ac15 :pax,
+ ws[:hbf - 580m] << 0.5dt
+ -- ws[:hbf - 500m] << 1.5dt
+ );
+ # W115 - W116
+ track(:station :cat:ac15 :pax,
+ ws[:hbf - 351m, :hbf - 350m] << 0.5dt
+ .. ws[:hbf - 260m] << 1.95dt -- ws[:hbf - 250m] << 2.05dt
+ );
+ # W146 - W149
+ track(:station :cat:ac15 :pax,
+ ws[:hbf + 599m, :hbf + 600m] << 0.5dt
+ .. ws[:hbf + 680m, :hbf + 681m] >> 0.5dt
+ );
+ # W152 - W153
+ track(:station :cat:ac15 :pax,
+ ws[:hbf + 679m, :hbf + 680m] << 0.5dt
+ .. ws[:hbf + 760m, :hbf + 761m] << 1.5dt
+ );
+
+ # Gl. 6
+ track(:station :cat:ac15 :pax,
+ ws[:hbf - 440m, :hbf - 340m] << 1.5dt
+ .. ws[:hbf - 260m] << 1.95dt -- ws[:hbf - 250m] << 2.05dt
+ .. ws[:hbf - 170m, :hbf + 300m] << 2.5dt
+ .. ws[:hbf + 395m] << 2.05dt -- ws[:hbf + 400m] << 1.95dt
+ );
+ # W117 - W118
+ track(:station :cat:ac15 :pax,
+ ws[:hbf - 260m] << 1.95dt -- ws[:hbf - 250m] << 2.05dt
+ .. ws[:hbf - 170m, :hbf - 169m] << 3.5dt
+ );
+
+ # Gl. 7
+ track(:station :cat:ac15 :pax,
+ ws[:hbf - 371m, :hbf - 370m] << 1.5dt
+ .. ws[:hbf - 210m, :hbf + 300m] << 3.5dt
+ .. ws[:hbf + 395m] << 2.05dt -- ws[:hbf + 400m] << 1.95dt
+ .. ws[:hbf + 500m, :hbf + 510m] << 0.5dt
+ );
+ # W130 - W131
+ track(:station :cat:ac15 :pax,
+ ws[:hbf + 299m, :hbf + 300m] << 3.5dt
+ .. ws[:hbf + 425m] << 2.95dt -- ws[:hbf + 430m] << 2.8dt
+ );
+ # W139 - W140
+ track(:station :cat:ac15 :pax,
+ ws[:hbf + 395m] << 2.05dt -- ws[:hbf + 400m] << 1.95dt
+ .. ws[:hbf + 500m, :hbf + 501m] << 1.5dt
+ );
+
+ # Gl. 8
+ track(:first:station :cat:ac15 :pax,
+ ws[:hbn.y, :hbf - 440m] << 1.5dt
+ .. ws[:hbf - 170m, :hbf + 300m] << 5.5dt
+ .. ws[:hbf + 425m] << 2.95dt -- ws[:hbf + 430m] << 2.8dt
+ .. ws[:hbf + 500m, :hbf.f] << 1.5dt
+ );
+ # W101 - W102
+ track(:station :cat:ac15 :pax,
+ ws[:hbn.y + 229m, :hbn.y + 230m] << 1.5dt
+ .. ws[:hbn.y + 355m, :hbn.y + 356m] << 0.5dt
+ );
+ # W142 - W143
+ track(:station :cat:ac15 :pax,
+ ws[:hbf + 519m, :hbf + 520m] << 1.5dt
+ .. ws[:hbf + 600m, :hbf + 601m] << 0.5dt
+ );
+
+ # Bahnsteig 1/2
+ platform(:cat:ac15 :pax,
+ ws[:hbf - 150m, :hbf + 280m] >> 5.1dt
+ -- ws[:hbf + 280m, :hbf - 150m] << 3.9dt
+ );
+
+ # Bahnsteig 3/4
+ platform(:cat:ac15 :pax,
+ ws[:hbf - 150m, :hbf + 280m] >> 0.9dt
+ -- ws[:hbf + 280m, :hbf - 150m] << 2.1dt
+ );
+
+ # Bahnsteig 5/6
+ platform(:cat:ac15 :pax,
+ ws[:hbf - 150m, :hbf + 280m] << 0.9dt
+ -- ws[:hbf + 280m, :hbf - 150m] >> 2.1dt
+ );
+
+ # Bahnsteig 7/8
+ platform(:cat:ac15 :pax,
+ ws[:hbf - 150m, :hbf + 280m] << 5.1dt
+ -- ws[:hbf + 280m, :hbf - 150m] >> 3.9dt
+ );
+
+ marker(:right :de.bf :cat:ac15 :pax, ws[:hbf - 1sw] >> 5.5dt);
+ label(:cat:ac15 :pax, ws[:hbf - 0.5sw] >> 5.5dt >> 1.8sh,
+ hbox(:right:bottom,
+ vbox(:center:bottom,
+ hbox(:center:bottom :xsmall,
+ vbox(:right:bottom, "6107: ", "6171: ", " 6134: "),
+ vbox(:right:bottom, "1,", "2,", "2,"),
+ vbox(:left:bottom, "30", "20", "20")
+ ),
+ span(:medium :bold, "Berlin Hauptbahnhof-Lehrter Bf.")
+ )
+ )
+ );
+
+
+ }
+}
+