Files
JGA-2026/tourenplan-mit-tram.html
T

713 lines
68 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="de">
<head>
<link rel="icon" href="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'><text y='.9em' font-size='90'>🧭</text></svg>">
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>JGA Prag Tourenplan mit Tram & Metro</title>
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.4/dist/leaflet.css"
integrity="sha256-p4NxAoJBhIIN+hmNHrzRCf9tD/miZyoHS5obTRR9BMY="
crossorigin=""/>
<style>
html, body { margin: 0; padding: 0; height: 100%; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; background: #1a1a1a; color: #eee; }
#header { padding: 16px 20px; background: linear-gradient(135deg, #2d2d2d 0%, #1a1a1a 100%); border-bottom: 2px solid #444; }
#header h1 { margin: 0 0 4px 0; font-size: 22px; }
#header .sub { color: #aaa; font-size: 13px; }
#map { height: calc(100vh - 80px); width: 100%; }
.legend { background: rgba(30,30,30,0.95); padding: 10px 12px; border-radius: 8px; color: #eee; font-size: 13px; box-shadow: 0 2px 8px rgba(0,0,0,0.4); border: 1px solid #444; max-width: 240px; }
.legend h4 { margin: 0 0 8px 0; font-size: 14px; }
.legend .item { display: flex; align-items: center; gap: 8px; margin: 4px 0; }
.legend .emoji { font-size: 18px; }
.legend .dot { width: 14px; height: 14px; border-radius: 50%; border: 2px solid white; }
.popup-content { font-family: -apple-system, BlinkMacSystemFont, sans-serif; min-width: 220px; }
.popup-content .emoji-big { font-size: 28px; margin-right: 8px; }
.popup-content h3 { margin: 0 0 6px 0; font-size: 16px; color: #1a1a1a; }
.popup-content .meta { font-size: 12px; color: #555; margin: 4px 0; }
.popup-content .desc { font-size: 13px; color: #333; margin: 6px 0; }
.popup-content .price { display: inline-block; background: #ffeb3b; color: #1a1a1a; padding: 2px 8px; border-radius: 4px; font-weight: 600; font-size: 12px; margin-top: 4px; }
.popup-content a { display: inline-block; margin-top: 8px; padding: 5px 10px; background: #1976d2; color: white; text-decoration: none; border-radius: 4px; font-size: 12px; }
.popup-content a:hover { background: #1565c0; }
.leaflet-popup-content-wrapper { border-radius: 8px; }
.marker-label { background: rgba(30,30,30,0.9); color: white; padding: 3px 8px; border-radius: 4px; font-size: 11px; font-weight: 600; white-space: nowrap; box-shadow: 0 1px 4px rgba(0,0,0,0.4); border: none; }
.marker-label::before { display: none; }
.tram-popup .leaflet-popup-content-wrapper {
background: rgba(30,30,30,0.95) !important;
color: #eee !important;
}
.tram-popup .popup-content h3 { color: #fff !important; }
.tram-popup .popup-content .desc,
.tram-popup .popup-content .meta { color: #ccc !important; }
.lines-toggle {
background: rgba(30,30,30,0.95);
padding: 10px 12px;
border-radius: 8px;
color: #eee;
font-size: 13px;
box-shadow: 0 2px 8px rgba(0,0,0,0.4);
border: 1px solid #444;
max-width: 220px;
max-height: 60vh;
overflow-y: auto;
}
.lines-toggle h4 { margin: 0 0 8px 0; font-size: 14px; }
.lines-toggle label {
display: flex;
align-items: center;
gap: 6px;
margin: 3px 0;
cursor: pointer;
user-select: none;
}
.lines-toggle input { cursor: pointer; }
.lines-toggle .swatch {
display: inline-block;
width: 22px;
height: 4px;
border-radius: 2px;
}
.lines-toggle .group-header {
margin-top: 8px;
font-weight: 600;
font-size: 12px;
color: #aaa;
text-transform: uppercase;
letter-spacing: 0.5px;
}
.tram-stop-label-wrapper { background: none !important; border: none !important; }
.tram-stop-label {
background: rgba(255,255,255,0.95);
color: #1a1a1a;
padding: 2px 6px;
border-radius: 3px;
font-size: 10px;
font-weight: 600;
white-space: nowrap;
box-shadow: 0 1px 3px rgba(0,0,0,0.5);
transform: translate(8px, -8px);
border: 1px solid #333;
}
/* ============================================================ */
/* TICKET-MODAL */
/* ============================================================ */
.ticket-btn {
background: rgba(30,30,30,0.95);
padding: 10px 14px;
border-radius: 8px;
color: #eee;
font-size: 14px;
font-weight: 600;
cursor: pointer;
border: 1px solid #444;
box-shadow: 0 2px 8px rgba(0,0,0,0.4);
display: inline-flex;
align-items: center;
gap: 6px;
transition: transform 0.15s, background 0.15s;
user-select: none;
}
.ticket-btn:hover {
background: rgba(50,50,50,0.95);
transform: translateY(-1px);
}
.ticket-btn:active { transform: translateY(0); }
.modal-overlay {
position: fixed;
top: 0; left: 0; right: 0; bottom: 0;
background: rgba(0,0,0,0.7);
display: none;
align-items: center;
justify-content: center;
z-index: 9999;
padding: 20px;
}
.modal-overlay.active { display: flex; }
.modal {
background: #1c1c1f;
color: #eee;
border-radius: 12px;
padding: 24px 28px;
max-width: 720px;
width: 100%;
max-height: 90vh;
overflow-y: auto;
box-shadow: 0 10px 40px rgba(0,0,0,0.6);
border: 1px solid #444;
}
.modal h2 { margin: 0 0 6px 0; font-size: 22px; }
.modal .modal-sub { color: #aaa; font-size: 13px; margin-bottom: 20px; }
.modal-close {
float: right;
background: none;
border: 1px solid #555;
color: #ccc;
width: 32px; height: 32px;
border-radius: 6px;
font-size: 18px;
cursor: pointer;
margin: -8px -8px 0 0;
}
.modal-close:hover { background: #333; color: white; }
.ticket-option {
background: #252528;
border-radius: 8px;
padding: 16px 18px;
margin-bottom: 14px;
border-left: 4px solid #3b82f6;
}
.ticket-option.recommended { border-left-color: #22c55e; }
.ticket-option.basic { border-left-color: #f59e0b; }
.ticket-option h3 {
margin: 0 0 6px 0;
font-size: 16px;
display: flex;
align-items: center;
gap: 8px;
}
.ticket-option .badge {
display: inline-block;
font-size: 10px;
font-weight: 700;
padding: 2px 8px;
border-radius: 4px;
text-transform: uppercase;
letter-spacing: 0.5px;
}
.ticket-option.recommended .badge { background: #22c55e; color: #052e10; }
.ticket-option.basic .badge { background: #f59e0b; color: #1c1c1f; }
.ticket-option.prepaid .badge { background: #3b82f6; color: white; }
.ticket-option .price-row {
display: flex;
flex-wrap: wrap;
gap: 12px;
margin: 8px 0;
font-size: 13px;
color: #ccc;
}
.ticket-option .price-row strong { color: #fff; font-size: 15px; }
.ticket-option ul {
margin: 6px 0 6px 0;
padding-left: 20px;
font-size: 13px;
color: #ccc;
}
.ticket-option ul li { margin: 3px 0; }
.ticket-option .btn-link {
display: inline-block;
margin-top: 8px;
padding: 7px 14px;
background: #3b82f6;
color: white;
text-decoration: none;
border-radius: 6px;
font-size: 13px;
font-weight: 600;
}
.ticket-option .btn-link:hover { background: #2563eb; }
.ticket-option .btn-link.green { background: #22c55e; color: #052e10; }
.ticket-option .btn-link.green:hover { background: #16a34a; }
.gruppe-tipp {
background: rgba(59,130,246,0.1);
border: 1px solid rgba(59,130,246,0.3);
border-radius: 8px;
padding: 12px 16px;
margin: 16px 0;
font-size: 13px;
color: #cbd5e1;
}
.gruppe-tipp strong { color: #93c5fd; }
</style>
</head>
<body>
<div id="header">
<h1>🥳 JGA Prag Tourenplan mit ÖPNV</h1>
<div class="sub">25.26. Juli 2026 · 8 Personen · Hotel Uno Prague als Basis · Tram + Metro für JGA</div>
</div>
<div id="map"></div>
<script src="https://unpkg.com/leaflet@1.9.4/dist/leaflet.js"
integrity="sha256-20nQCchB9co0qIjJZRGuk2/Z9VM+kNiyxNV1lvTlZBo="
crossorigin=""></script>
<script>
const locations = [
{
name: "Hotel Uno Prague",
emoji: "🏨",
color: "#4fc3f7",
lat: 50.0676, lon: 14.4906,
address: "Průběžná 96/2059, Praha 10 (Strašnice) · Eure Basis",
desc: "4-Sterne Hotel · idealer Ausgangspunkt · Tram 4/13/26 'Na Hroudě' vor der Tür.",
price: "8 Pers. · ca. 95 €/Nacht",
url: "https://www.hoteluno.cz",
category: "hotel"
},
{
name: "Endorfin Escape Room",
emoji: "🔐",
color: "#e91e63",
lat: 50.0639744, lon: 14.4516643,
address: "Petrohradská 216/3, Praha 10 Vinohrady",
desc: "Premium Escape Rooms mit 60-Min Abenteuern. Mehrere Themes.",
price: "ca. 25 € p.P.",
url: "https://endorfin.cz",
category: "fun"
},
{
name: "KartPlanet Praha",
emoji: "🏎️",
color: "#ff9800",
lat: 50.0753, lon: 14.5032,
address: "Mezitraťová 420, Praha 9 Hrdlořezy",
desc: "Indoor Karting · 270m Strecke · 40 karts · Rennen mit Zeitmessung.",
price: "ca. 30 € p.P. / 15 min",
url: "https://www.kartplanet.cz",
category: "action"
},
{
name: "Level Minigolf · Národní",
emoji: "⛳",
color: "#66bb6a",
lat: 50.080850, lon: 14.425050,
address: "Národní 63/26 (Máj-Haus, 5. OG), Praha 1",
desc: "Rooftop Minigolf mit Bar · 12 Bahnen · Blick über die Dächer Prags.",
price: "ca. 12 € p.P.",
url: "https://level-minigolf.cz",
category: "fun"
},
{
name: "Bowling Ovčín",
emoji: "🎳",
color: "#ab47bc",
lat: 50.0730, lon: 14.4802,
address: "Záběhlická 82, Praha 10 Záběhlice",
desc: "Bowling + Bar · 4 Bahnen · idealer Abend-Abstecher.",
price: "ca. 12 € p.P. / Bahn",
url: null,
category: "fun"
},
{
name: "Mysterium Prag · Escape",
emoji: "👻",
color: "#7e57c2",
lat: 50.087800, lon: 14.420500,
address: "Cartier-Ecke, Altstädter Ring NW, Praha 1",
desc: "Outdoor Escape Game · 90 Min · Rätsel durch die Altstadt.",
price: "ca. 28 € p.P.",
url: "https://www.mysteriumprague.com",
category: "fun"
},
{
name: "Prague Ranger · Schießstand",
emoji: "🎯",
color: "#5d4037",
lat: 50.0721, lon: 14.4267,
address: "Lublaňská 1729/23, Praha 2 Vinohrady",
desc: "Schießstand & Messerwerfen · Schießtraining mit .38 Special, AK-47 etc.",
price: "ca. 65 € p.P. / 1h",
url: "https://pragueranger.com",
category: "action"
},
{
name: "Beer Boat Prague",
emoji: "⛵",
color: "#ffb300",
lat: 50.0941774, lon: 14.4269959,
address: "Startpunkt: Štefánikův most (Dvořákovo nábřeží), Praha 1",
desc: "Tretboot-Biertour auf der Moldau. Privater Kapitän, unbegrenzt Bier. Büro: Týnská 639/4.",
price: "ca. 45 € p.P. / 1h",
url: "https://beerboatsprague.com/de/Prague-Beer-Boat-Tour",
category: "fun"
},
{
name: "Paintball Game Praha",
emoji: "🎨",
color: "#ef5350",
lat: 50.0748169, lon: 14.3713262,
address: "Pod Císařkou, Praha 5 Buďánka",
desc: "Paintball mit Reball (kein Schmerz, wiederverwendbare Bälle). Indoor + Outdoor.",
price: "ca. 24 € p.P. / 1h",
url: "https://www.paintballgame.cz/de/paintball-pakete/reball",
category: "action"
},
{
name: "Mercuria Laser Game Pankrác",
emoji: "🔫",
color: "#26c6da",
lat: 50.0501649, lon: 14.4432250,
address: "Budějovická 409/1a, Praha 4 Pankrác (Metro C)",
desc: "Lasertag Arena. Mehrere Etagen mit Hindernissen.",
price: "ca. 7 € p.P. / 20 min",
url: "https://mercurialaser.cz/en/pankrac/",
category: "action"
},
{
name: "Enigma Outdoor City Adventure",
emoji: "🔍",
color: "#ffa726",
lat: 50.0875, lon: 14.4213,
address: "Symbolischer Startpunkt: Altstädter Ring (Staroměstské náměstí)",
desc: "Stadtweites Mobile-App Mystery-Spiel. Per GPS durch ganz Prag.",
price: "ca. 5 € p.P. / 12h",
url: "https://enigma.swallnet.com/index.php/jak-hrat-en/",
category: "fun"
}
];
const IMPORTANT_STOPS = [
{ name: "Na Hroudě", lines: ["4","13","26"], lat: 50.0700, lon: 14.4893, near: "Hotel Uno" },
{ name: "Kubánské náměstí", lines: ["5","7","10","16"], lat: 50.0701, lon: 14.4596, near: "Endorfin" },
{ name: "Národní divadlo", lines: ["2","9","18","22"], lat: 50.0813, lon: 14.4127, near: "Level Minigolf" },
{ name: "Vinice", lines: ["4","7","13","22"], lat: 50.0703, lon: 14.4771, near: "Bowling Ovčín" },
{ name: "Staroměstská", lines: ["2","17","18","41"],lat: 50.0880, lon: 14.4208, near: "Mysterium" },
{ name: "Lublaňská", lines: ["4","13","16"], lat: 50.0721, lon: 14.4267, near: "Prague Ranger" },
{ name: "Štefánikův most", lines: ["2","41"], lat: 50.0942, lon: 14.4182, near: "Beer Boat" },
{ name: "Náměstí Míru (A)", lines: ["A"], lat: 50.0752, lon: 14.4379, near: "Vinohrady" },
{ name: "Můstek (A/B)", lines: ["A","B"], lat: 50.0816, lon: 14.4253, near: "Stadtmitte" },
{ name: "Národní třída (B)", lines: ["B"], lat: 50.0814, lon: 14.4186, near: "Level Minigolf" },
{ name: "I. P. Pavlova (C)", lines: ["C"], lat: 50.0756, lon: 14.4279, near: "Prague Ranger" },
{ name: "Vyšehrad (C)", lines: ["C"], lat: 50.0646, lon: 14.4175, near: "Süd-Altstadt" },
{ name: "Budějovická (C)", lines: ["C"], lat: 50.0632, lon: 14.4470, near: "Mercuria" },
{ name: "Strašnická (A)", lines: ["A"], lat: 50.0726, lon: 14.4905, near: "Hotel Uno" },
{ name: "Anděl (B)", lines: ["B"], lat: 50.0707, lon: 14.4028, near: "Smíchov" }
];
const LINES_CONFIG = {
"metro_A": { color: "#00B140", weight: 7, opacity: 0.95 },
"metro_B": { color: "#FFD700", weight: 7, opacity: 0.95 },
"metro_C": { color: "#E2231A", weight: 7, opacity: 0.95 },
"tram_2": { color: "#F4A261", weight: 4, opacity: 0.85 },
"tram_4": { color: "#E76F51", weight: 4, opacity: 0.85 },
"tram_7": { color: "#E9C46A", weight: 4, opacity: 0.85 },
"tram_13": { color: "#F4A261", weight: 4, opacity: 0.85 },
"tram_17": { color: "#E76F51", weight: 4, opacity: 0.85 },
"tram_18": { color: "#E9C46A", weight: 4, opacity: 0.85 },
"tram_22": { color: "#F4A261", weight: 4, opacity: 0.85 }
};
const LINES = {
"metro_A": [[50.0746494, 14.5148942], [50.0684704, 14.5072254], [50.0734955, 14.4898308], [50.0785255, 14.4749729], [50.0776512, 14.4500378], [50.0754079, 14.4383608], [50.0754082, 14.4399298], [50.0753981, 14.4383246], [50.0752247, 14.4399328], [50.0798885, 14.4313252], [50.0840322, 14.4240382], [50.0884403, 14.4171810], [50.0920385, 14.4092261], [50.0976787, 14.4025876], [50.1004998, 14.3925901], [50.0983746, 14.3622467], [50.0957441, 14.3478613], [50.0859655, 14.3453253], [50.0751055, 14.3405246], [50.0755546, 14.5153208], [50.0746494, 14.5148942], [50.0737222, 14.5144565], [50.0730030, 14.5143349], [50.0722636, 14.5145190], [50.0714123, 14.5143004], [50.0706578, 14.5139366], [50.0699283, 14.5134891], [50.0693210, 14.5126280], [50.0688930, 14.5115743], [50.0686592, 14.5104042], [50.0685512, 14.5086535], [50.0684704, 14.5072254], [50.0683919, 14.5057930], [50.0685468, 14.5034337], [50.0686624, 14.5023032], [50.0688894, 14.5009150], [50.0691336, 14.4998380], [50.0695384, 14.4984920], [50.0701728, 14.4968768], [50.0709701, 14.4950208], [50.0724758, 14.4918121], [50.0734955, 14.4898308], [50.0739087, 14.4888665], [50.0742345, 14.4877940], [50.0745761, 14.4864913], [50.0749463, 14.4853552], [50.0753627, 14.4843336], [50.0763812, 14.4823459], [50.0768072, 14.4812865], [50.0772938, 14.4795256], [50.0778318, 14.4775655], [50.0781197, 14.4764607], [50.0785255, 14.4749729], [50.0789321, 14.4734875], [50.0791609, 14.4720943], [50.0792384, 14.4707564], [50.0791954, 14.4696107], [50.0786441, 14.4649034], [50.0784291, 14.4630023], [50.0782611, 14.4614881], [50.0781548, 14.4603566], [50.0781477, 14.4589594], [50.0783717, 14.4551407], [50.0783909, 14.4539041], [50.0782872, 14.4527827], [50.0779777, 14.4513153], [50.0776512, 14.4500378], [50.0772906, 14.4487934], [50.0762308, 14.4465223], [50.0757764, 14.4453554], [50.0755157, 14.4440792], [50.0754424, 14.4423575], [50.0754148, 14.4399304], [50.0754079, 14.4383608], [50.0755413, 14.4370248], [50.0758627, 14.4359077], [50.0764194, 14.4348453], [50.0770123, 14.4341766], [50.0779495, 14.4335062], [50.0787055, 14.4328859], [50.0798885, 14.4313252], [50.0804510, 14.4305786], [50.0810909, 14.4294253], [50.0816208, 14.4279935], [50.0820583, 14.4268672], [50.0825671, 14.4260201], [50.0833059, 14.4250059], [50.0840322, 14.4240382], [50.0848125, 14.4231422], [50.0855791, 14.4225671], [50.0865054, 14.4219162], [50.0872358, 14.4210108], [50.0877624, 14.4198373], [50.0881345, 14.4184035], [50.0884403, 14.4171810], [50.0887289, 14.4158979], [50.0888647, 14.4147123], [50.0889859, 14.4135061], [50.0892137, 14.4123950], [50.0896090, 14.4113725], [50.0901914, 14.4104925], [50.0909318, 14.4098531], [50.0920385, 14.4092261], [50.0930620, 14.4086089], [50.0939510, 14.4081757], [50.0946629, 14.4078934], [50.0953900, 14.4075845], [50.0961345, 14.4069577], [50.0966977, 14.4061249], [50.0971636, 14.4049728], [50.0976787, 14.4025876], [50.0979480, 14.4014325], [50.0983443, 14.4004543], [50.0995720, 14.3986525], [50.1001251, 14.3976406], [50.1004774, 14.3964452], [50.1006092, 14.3951670], [50.1004998, 14.3925901], [50.1003082, 14.3885779], [50.1000402, 14.3836011], [50.0997710, 14.3786588], [50.0996432, 14.3768288], [50.0994904, 14.3750036], [50.0992851, 14.3725328], [50.0988051, 14.3666142], [50.0986464, 14.3650754], [50.0985050, 14.3638234], [50.0983746, 14.3622467], [50.0982243, 14.3604658], [50.0978203, 14.3547213], [50.0976670, 14.3535077], [50.0974311, 14.3523267], [50.0970497, 14.3509924], [50.0962380, 14.3489973], [50.0957441, 14.3478613], [50.0953305, 14.3469275], [50.0947147, 14.3458354], [50.0939971, 14.3449064], [50.0932401, 14.3441981], [50.0924243, 14.3436719], [50.0915484, 14.3433424], [50.0906319, 14.3432215], [50.0896919, 14.3433150], [50.0889824, 14.3435348], [50.0871577, 14.3445934], [50.0859655, 14.3453253], [50.0838244, 14.3466697], [50.0830680, 14.3471345], [50.0822552, 14.3475258], [50.0813791, 14.3477407], [50.0802378, 14.3477020], [50.0791827, 14.3473452], [50.0783853, 14.3468471], [50.0776798, 14.3461986], [50.0770460, 14.3453970], [50.0765231, 14.3445247], [50.0760051, 14.3433601], [50.0756627, 14.3423313], [50.0751055, 14.3405246]],
"metro_B": [[50.0527870, 14.2915060], [50.0466400, 14.3068359], [50.0453703, 14.3218229], [50.0445225, 14.3311818], [50.0500093, 14.3434088], [50.0508493, 14.3528376], [50.0542704, 14.3704822], [50.0579310, 14.3883323], [50.0616201, 14.4091195], [50.0704170, 14.4040451], [50.0747881, 14.4175683], [50.0803667, 14.4204570], [50.0835908, 14.4239929], [50.0889841, 14.4313410], [50.0904202, 14.4383582], [50.0926282, 14.4521064], [50.0970969, 14.4641292], [50.1041241, 14.4752935], [50.1102538, 14.5019942], [50.1103163, 14.5171773], [50.1065058, 14.5373528], [50.1069522, 14.5611972], [50.1090106, 14.5775378], [50.0536395, 14.2906695], [50.0527870, 14.2915060], [50.0521414, 14.2921813], [50.0486170, 14.2955775], [50.0479413, 14.2963607], [50.0473607, 14.2973110], [50.0469044, 14.2983686], [50.0465685, 14.2995302], [50.0463597, 14.3007863], [50.0462917, 14.3020873], [50.0465063, 14.3052422], [50.0466400, 14.3068359], [50.0467713, 14.3080046], [50.0472080, 14.3129554], [50.0473899, 14.3150181], [50.0473942, 14.3161985], [50.0472469, 14.3173510], [50.0469594, 14.3184203], [50.0458639, 14.3207977], [50.0453703, 14.3218229], [50.0449245, 14.3227377], [50.0445391, 14.3237711], [50.0442824, 14.3248973], [50.0441630, 14.3260776], [50.0441850, 14.3272720], [50.0443931, 14.3297872], [50.0445225, 14.3311818], [50.0446642, 14.3324916], [50.0449629, 14.3337007], [50.0454194, 14.3347515], [50.0459999, 14.3355685], [50.0473204, 14.3367080], [50.0480179, 14.3372742], [50.0487352, 14.3380017], [50.0493211, 14.3390407], [50.0496479, 14.3401669], [50.0498425, 14.3415364], [50.0500093, 14.3434088], [50.0501963, 14.3455077], [50.0507164, 14.3513464], [50.0508493, 14.3528376], [50.0516694, 14.3620445], [50.0518241, 14.3632609], [50.0521394, 14.3643337], [50.0528075, 14.3659193], [50.0532733, 14.3671113], [50.0536903, 14.3683762], [50.0542704, 14.3704822], [50.0560403, 14.3768012], [50.0565145, 14.3782252], [50.0569795, 14.3794161], [50.0578458, 14.3814295], [50.0582007, 14.3824763], [50.0584158, 14.3836117], [50.0584823, 14.3848076], [50.0583821, 14.3860554], [50.0579310, 14.3883323], [50.0575799, 14.3900083], [50.0571924, 14.3911698], [50.0556002, 14.3937794], [50.0550833, 14.3948983], [50.0547568, 14.3961785], [50.0546398, 14.3975405], [50.0548490, 14.4000930], [50.0550023, 14.4016556], [50.0553774, 14.4053946], [50.0555903, 14.4066270], [50.0559992, 14.4077329], [50.0565718, 14.4086322], [50.0572713, 14.4092735], [50.0580526, 14.4096165], [50.0588678, 14.4096078], [50.0602630, 14.4093503], [50.0616201, 14.4091195], [50.0626771, 14.4089683], [50.0634248, 14.4086022], [50.0640615, 14.4080343], [50.0646294, 14.4072612], [50.0653858, 14.4058815], [50.0661061, 14.4047668], [50.0668036, 14.4041251], [50.0675152, 14.4037534], [50.0682688, 14.4036099], [50.0694912, 14.4038442], [50.0703607, 14.4040329], [50.0712371, 14.4043048], [50.0719182, 14.4047811], [50.0725104, 14.4054895], [50.0729821, 14.4063437], [50.0733548, 14.4075731], [50.0734886, 14.4087541], [50.0732202, 14.4120654], [50.0732049, 14.4132742], [50.0733699, 14.4144498], [50.0737047, 14.4155028], [50.0742140, 14.4164920], [50.0747881, 14.4175683], [50.0753750, 14.4185639], [50.0760792, 14.4194329], [50.0768720, 14.4200234], [50.0777155, 14.4203259], [50.0794580, 14.4204209], [50.0803667, 14.4204570], [50.0811943, 14.4206590], [50.0819585, 14.4211792], [50.0825870, 14.4219672], [50.0830638, 14.4228921], [50.0835908, 14.4239929], [50.0840489, 14.4249006], [50.0846712, 14.4257696], [50.0853157, 14.4262970], [50.0866013, 14.4269949], [50.0873059, 14.4275904], [50.0878503, 14.4283728], [50.0884977, 14.4299620], [50.0889841, 14.4313410], [50.0898705, 14.4338716], [50.0901806, 14.4349863], [50.0903480, 14.4363500], [50.0904202, 14.4383582], [50.0904746, 14.4398637], [50.0905237, 14.4414261], [50.0905745, 14.4427675], [50.0907320, 14.4440366], [50.0909805, 14.4451524], [50.0917720, 14.4485021], [50.0922864, 14.4506622], [50.0926282, 14.4521064], [50.0931492, 14.4542507], [50.0935358, 14.4553808], [50.0940271, 14.4565735], [50.0965700, 14.4628366], [50.0970969, 14.4641292], [50.0975303, 14.4652138], [50.0980136, 14.4662348], [50.0985717, 14.4670948], [50.0992664, 14.4678955], [50.1018952, 14.4709506], [50.1024900, 14.4716700], [50.1030401, 14.4725864], [50.1035725, 14.4738984], [50.1041241, 14.4752935], [50.1046176, 14.4767288], [50.1048589, 14.4778145], [50.1049496, 14.4789301], [50.1048844, 14.4804499], [50.1047691, 14.4818580], [50.1045478, 14.4846538], [50.1045376, 14.4860023], [50.1046735, 14.4872660], [50.1049627, 14.4885495], [50.1058206, 14.4911086], [50.1062565, 14.4924044], [50.1070127, 14.4944737], [50.1074253, 14.4955856], [50.1079416, 14.4965357], [50.1087946, 14.4978440], [50.1093381, 14.4990402], [50.1097630, 14.5003825], [50.1102538, 14.5019942], [50.1105422, 14.5031038], [50.1107797, 14.5049571], [50.1107549, 14.5062382], [50.1104253, 14.5085433], [50.1102320, 14.5100032], [50.1101933, 14.5120039], [50.1102429, 14.5139587], [50.1102810, 14.5156967], [50.1103163, 14.5171773], [50.1104029, 14.5206857], [50.1103823, 14.5218524], [50.1101481, 14.5236039], [50.1096410, 14.5253014], [50.1086752, 14.5272747], [50.1079553, 14.5286825], [50.1074838, 14.5300037], [50.1071377, 14.5316039], [50.1070072, 14.5327395], [50.1068541, 14.5340404], [50.1066559, 14.5358938], [50.1065058, 14.5373528], [50.1063553, 14.5385814], [50.1062736, 14.5398790], [50.1063205, 14.5413633], [50.1069852, 14.5476199], [50.1070587, 14.5488896], [50.1069847, 14.5502313], [50.1068082, 14.5513460], [50.1063492, 14.5538003], [50.1061934, 14.5554108], [50.1062706, 14.5569023], [50.1067315, 14.5598681], [50.1069522, 14.5611972], [50.1074246, 14.5639875], [50.1075976, 14.5650786], [50.1078959, 14.5674729], [50.1083476, 14.5723459], [50.1085566, 14.5741342], [50.1087779, 14.5758448], [50.1090106, 14.5775378]],
"metro_C": [[50.0308148, 14.5266461], [50.0278779, 14.5083653], [50.0319217, 14.4905805], [50.0378346, 14.4764393], [50.0420049, 14.4586580], [50.0447806, 14.4483011], [50.0514768, 14.4394361], [50.0572317, 14.4328723], [50.0636004, 14.4305328], [50.0748012, 14.4303469], [50.0805501, 14.4315675], [50.0838930, 14.4344482], [50.0904326, 14.4394698], [50.1006337, 14.4385972], [50.1094195, 14.4398180], [50.1243208, 14.4550721], [50.1266276, 14.4701933], [50.1258123, 14.4899732], [50.1184752, 14.4995572], [50.1251097, 14.5163215], [50.0309667, 14.5279363], [50.0308148, 14.5266461], [50.0305698, 14.5245719], [50.0303734, 14.5233174], [50.0299583, 14.5212196], [50.0285388, 14.5138061], [50.0283623, 14.5127110], [50.0282149, 14.5115558], [50.0280263, 14.5097568], [50.0278779, 14.5083653], [50.0275419, 14.5054128], [50.0275282, 14.5041454], [50.0276448, 14.5029023], [50.0278799, 14.5017359], [50.0286001, 14.4993943], [50.0300346, 14.4948182], [50.0304556, 14.4936123], [50.0309009, 14.4926590], [50.0313496, 14.4917290], [50.0319217, 14.4905805], [50.0337048, 14.4870545], [50.0351280, 14.4842309], [50.0355765, 14.4832813], [50.0360137, 14.4819861], [50.0370964, 14.4786956], [50.0378346, 14.4764393], [50.0383376, 14.4748844], [50.0394266, 14.4715550], [50.0399696, 14.4698926], [50.0404030, 14.4685642], [50.0409112, 14.4670163], [50.0411799, 14.4658411], [50.0413046, 14.4644572], [50.0413571, 14.4632086], [50.0416323, 14.4610779], [50.0420049, 14.4586580], [50.0429127, 14.4525939], [50.0431986, 14.4512709], [50.0435904, 14.4502987], [50.0441038, 14.4494134], [50.0447806, 14.4483011], [50.0453207, 14.4474345], [50.0460643, 14.4462979], [50.0484463, 14.4424449], [50.0489980, 14.4416275], [50.0496938, 14.4409168], [50.0504826, 14.4401966], [50.0514768, 14.4394361], [50.0528191, 14.4384296], [50.0535144, 14.4377564], [50.0550133, 14.4361610], [50.0557023, 14.4352552], [50.0565799, 14.4339077], [50.0572317, 14.4328723], [50.0578609, 14.4318721], [50.0584547, 14.4310688], [50.0592002, 14.4304676], [50.0600097, 14.4301961], [50.0608197, 14.4302579], [50.0618025, 14.4305103], [50.0625943, 14.4305753], [50.0633856, 14.4305411], [50.0679265, 14.4303664], [50.0695056, 14.4303354], [50.0702450, 14.4304737], [50.0711395, 14.4306561], [50.0718979, 14.4307108], [50.0726830, 14.4306255], [50.0738630, 14.4304791], [50.0748012, 14.4303469], [50.0757556, 14.4301787], [50.0770163, 14.4297326], [50.0777482, 14.4295891], [50.0786102, 14.4297706], [50.0795225, 14.4304089], [50.0805501, 14.4315675], [50.0815351, 14.4326215], [50.0823448, 14.4332877], [50.0830834, 14.4338639], [50.0838930, 14.4344482], [50.0846243, 14.4350824], [50.0858711, 14.4367397], [50.0865252, 14.4374333], [50.0885823, 14.4385402], [50.0895226, 14.4390195], [50.0904326, 14.4394698], [50.0922129, 14.4403495], [50.0930616, 14.4407710], [50.0939586, 14.4409944], [50.0947144, 14.4409061], [50.0955058, 14.4405380], [50.0963354, 14.4399698], [50.0974595, 14.4391761], [50.0982120, 14.4387819], [50.0989392, 14.4386200], [50.0997172, 14.4386096], [50.1006337, 14.4385972], [50.1013581, 14.4385985], [50.1022326, 14.4388527], [50.1030023, 14.4393977], [50.1042876, 14.4407218], [50.1049222, 14.4412556], [50.1056118, 14.4415845], [50.1063466, 14.4416955], [50.1070807, 14.4415736], [50.1078171, 14.4411942], [50.1085954, 14.4405609], [50.1094195, 14.4398180], [50.1107648, 14.4385777], [50.1116040, 14.4376471], [50.1123445, 14.4368015], [50.1131353, 14.4361675], [50.1139514, 14.4357420], [50.1147357, 14.4354314], [50.1155030, 14.4352182], [50.1163321, 14.4350580], [50.1171767, 14.4350747], [50.1182051, 14.4353337], [50.1192581, 14.4358924], [50.1203295, 14.4368383], [50.1209535, 14.4376118], [50.1217584, 14.4389813], [50.1222694, 14.4402195], [50.1226219, 14.4413934], [50.1228734, 14.4426429], [50.1230159, 14.4439472], [50.1231062, 14.4485219], [50.1231491, 14.4496758], [50.1233019, 14.4509467], [50.1235506, 14.4521541], [50.1238800, 14.4534138], [50.1243208, 14.4550721], [50.1248685, 14.4571536], [50.1255733, 14.4595537], [50.1259027, 14.4609072], [50.1260936, 14.4620555], [50.1262148, 14.4632773], [50.1264423, 14.4667559], [50.1265174, 14.4684501], [50.1266276, 14.4701933], [50.1267559, 14.4720562], [50.1269785, 14.4736463], [50.1275446, 14.4761749], [50.1285284, 14.4799551], [50.1287547, 14.4810437], [50.1288721, 14.4822743], [50.1288517, 14.4835057], [50.1286631, 14.4848423], [50.1283577, 14.4859599], [50.1279312, 14.4869974], [50.1274077, 14.4878650], [50.1264922, 14.4890947], [50.1258123, 14.4899732], [50.1249658, 14.4910214], [50.1240248, 14.4921098], [50.1229862, 14.4934169], [50.1220665, 14.4946185], [50.1213587, 14.4955961], [50.1206024, 14.4966888], [50.1191544, 14.4986423], [50.1184752, 14.4995572], [50.1178278, 14.5005120], [50.1173338, 14.5015491], [50.1169689, 14.5027089], [50.1167451, 14.5039541], [50.1166704, 14.5052459], [50.1167480, 14.5065372], [50.1170130, 14.5079109], [50.1174279, 14.5091524], [50.1186231, 14.5118038], [50.1192740, 14.5132079], [50.1201546, 14.5145128], [50.1210087, 14.5153428], [50.1220240, 14.5159203], [50.1230613, 14.5162155], [50.1242146, 14.5162715], [50.1251097, 14.5163215], [50.1274000, 14.5164553]],
"tram_13": [[50.0787314, 14.4345759], [50.0783401, 14.4355771], [50.0771095, 14.4413257], [50.0771264, 14.4487040], [50.0775821, 14.4571734], [50.0778447, 14.4614542], [50.0777646, 14.4673490], [50.0787222, 14.4346094], [50.0783401, 14.4355771], [50.0778549, 14.4370332], [50.0774428, 14.4392268], [50.0771937, 14.4407163], [50.0770341, 14.4418535], [50.0769648, 14.4437512], [50.0770486, 14.4462534], [50.0771264, 14.4487040], [50.0772018, 14.4502731], [50.0773101, 14.4522976], [50.0773744, 14.4536420], [50.0774827, 14.4556898], [50.0775886, 14.4570271], [50.0776564, 14.4582219], [50.0777270, 14.4596095], [50.0778203, 14.4608570], [50.0779055, 14.4624225], [50.0780022, 14.4647405], [50.0780547, 14.4658765], [50.0777646, 14.4673490]],
"tram_17": [[50.1328394, 14.4535927], [50.1318642, 14.4537113], [50.1287403, 14.4555962], [50.1260434, 14.4571802], [50.1243897, 14.4560528], [50.1220532, 14.4513821], [50.1203130, 14.4388877], [50.1163759, 14.4331702], [50.1096386, 14.4375463], [50.1043774, 14.4318979], [50.1022887, 14.4327921], [50.0992506, 14.4332569], [50.0963138, 14.4314222], [50.0940088, 14.4169052], [50.0917271, 14.4178768], [50.0882050, 14.4153515], [50.0846279, 14.4135450], [50.0798389, 14.4138309], [50.0764757, 14.4141431], [50.0719074, 14.4141374], [50.0677316, 14.4149906], [50.0584527, 14.4193885], [50.0545158, 14.4180953], [50.0471823, 14.4139892], [50.0397199, 14.4092528], [50.0336757, 14.4079100], [50.0288194, 14.4048251], [50.0225474, 14.4035703], [50.0130689, 14.4018260], [50.0084911, 14.4031304], [50.0040409, 14.4034153], [50.0022164, 14.4104969], [50.0047979, 14.4195199], [50.0056972, 14.4237572], [50.0061092, 14.4296608], [50.0050690, 14.4332968], [50.0060005, 14.4401494], [50.0064062, 14.4473011], [50.0059339, 14.4541370], [50.0081889, 14.4558897], [50.1328394, 14.4535927], [50.1320527, 14.4536064], [50.1312631, 14.4540856], [50.1303304, 14.4546573], [50.1287403, 14.4555962], [50.1280041, 14.4560432], [50.1273271, 14.4564345], [50.1265448, 14.4569006], [50.1258089, 14.4572385], [50.1251323, 14.4567491], [50.1243897, 14.4560528], [50.1234788, 14.4559761], [50.1227271, 14.4559881], [50.1219316, 14.4554420], [50.1218297, 14.4542445], [50.1219801, 14.4530420], [50.1220591, 14.4518155], [50.1220270, 14.4500293], [50.1219685, 14.4488697], [50.1218066, 14.4472687], [50.1216528, 14.4459298], [50.1213272, 14.4442976], [50.1210431, 14.4429208], [50.1207207, 14.4413623], [50.1205109, 14.4402465], [50.1203130, 14.4388877], [50.1201391, 14.4377263], [50.1198328, 14.4365545], [50.1194290, 14.4355194], [50.1189667, 14.4345851], [50.1183015, 14.4336965], [50.1175367, 14.4331594], [50.1163759, 14.4331702], [50.1158646, 14.4342880], [50.1151328, 14.4349370], [50.1144155, 14.4351323], [50.1137082, 14.4354009], [50.1113484, 14.4364696], [50.1103151, 14.4372468], [50.1096197, 14.4375523], [50.1085224, 14.4371010], [50.1077559, 14.4367491], [50.1071005, 14.4362815], [50.1066168, 14.4354157], [50.1059015, 14.4342729], [50.1053738, 14.4334541], [50.1048295, 14.4326036], [50.1042920, 14.4317607], [50.1031952, 14.4321793], [50.1022887, 14.4327921], [50.1011755, 14.4331688], [50.1004150, 14.4333354], [50.0995375, 14.4332809], [50.0987970, 14.4332451], [50.0979046, 14.4332335], [50.0972006, 14.4328866], [50.0965667, 14.4322878], [50.0962641, 14.4312405], [50.0959974, 14.4301554], [50.0958526, 14.4289525], [50.0956731, 14.4278138], [50.0954495, 14.4266208], [50.0953027, 14.4255107], [50.0952232, 14.4243222], [50.0948320, 14.4233202], [50.0946720, 14.4216861], [50.0945153, 14.4202904], [50.0942586, 14.4185366], [50.0940490, 14.4171262], [50.0933333, 14.4168292], [50.0923062, 14.4175091], [50.0916084, 14.4179171], [50.0910649, 14.4170106], [50.0904323, 14.4163489], [50.0894652, 14.4158745], [50.0887127, 14.4155654], [50.0878742, 14.4152639], [50.0871332, 14.4149548], [50.0862775, 14.4144601], [50.0853511, 14.4139182], [50.0846279, 14.4135450], [50.0837638, 14.4132927], [50.0829966, 14.4131772], [50.0818049, 14.4130046], [50.0810026, 14.4130947], [50.0802036, 14.4135994], [50.0793822, 14.4139965], [50.0786639, 14.4141532], [50.0775153, 14.4143244], [50.0764757, 14.4141431], [50.0756841, 14.4139383], [50.0745915, 14.4138604], [50.0734716, 14.4139349], [50.0725136, 14.4140240], [50.0716461, 14.4141865], [50.0709134, 14.4143400], [50.0691690, 14.4146728], [50.0683626, 14.4148286], [50.0674978, 14.4150442], [50.0667784, 14.4151484], [50.0658553, 14.4153221], [50.0649818, 14.4154838], [50.0642514, 14.4156815], [50.0635625, 14.4161579], [50.0628124, 14.4164277], [50.0622092, 14.4175514], [50.0615483, 14.4184078], [50.0608773, 14.4189604], [50.0600612, 14.4192609], [50.0592799, 14.4193890], [50.0584527, 14.4193885], [50.0573848, 14.4191771], [50.0562883, 14.4188694], [50.0552115, 14.4184657], [50.0545158, 14.4180953], [50.0524179, 14.4168935], [50.0516699, 14.4164723], [50.0509783, 14.4160861], [50.0502230, 14.4156677], [50.0478177, 14.4143398], [50.0471300, 14.4139600], [50.0463937, 14.4135502], [50.0453601, 14.4129793], [50.0445258, 14.4125055], [50.0435084, 14.4118419], [50.0422354, 14.4109842], [50.0415476, 14.4105047], [50.0409307, 14.4098485], [50.0398414, 14.4093120], [50.0390274, 14.4088198], [50.0382082, 14.4081369], [50.0373766, 14.4075905], [50.0365622, 14.4071361], [50.0357941, 14.4067446], [50.0350292, 14.4067402], [50.0342323, 14.4072926], [50.0335763, 14.4080202], [50.0328811, 14.4085248], [50.0320782, 14.4084761], [50.0314130, 14.4078014], [50.0307381, 14.4069611], [50.0300825, 14.4061866], [50.0293741, 14.4054091], [50.0287287, 14.4047295], [50.0280220, 14.4040850], [50.0271992, 14.4037884], [50.0261506, 14.4037467], [50.0253002, 14.4037504], [50.0244626, 14.4037777], [50.0235424, 14.4037042], [50.0225474, 14.4035703], [50.0216967, 14.4034212], [50.0207633, 14.4031595], [50.0191170, 14.4026684], [50.0180081, 14.4023082], [50.0171821, 14.4020550], [50.0163795, 14.4019020], [50.0156255, 14.4018072], [50.0147372, 14.4017289], [50.0139389, 14.4017633], [50.0130689, 14.4018260], [50.0122496, 14.4018979], [50.0114576, 14.4021040], [50.0105731, 14.4025011], [50.0098264, 14.4028019], [50.0090730, 14.4029858], [50.0082489, 14.4031837], [50.0074854, 14.4031226], [50.0067267, 14.4027641], [50.0059176, 14.4027404], [50.0045937, 14.4032089], [50.0036791, 14.4035439], [50.0029792, 14.4038690], [50.0022840, 14.4044792], [50.0020544, 14.4056131], [50.0021020, 14.4070973], [50.0022164, 14.4104969], [50.0022681, 14.4117773], [50.0024166, 14.4130988], [50.0026932, 14.4143077], [50.0031107, 14.4154755], [50.0037627, 14.4168714], [50.0041838, 14.4177925], [50.0045629, 14.4188312], [50.0049130, 14.4198558], [50.0050864, 14.4210259], [50.0052979, 14.4223285], [50.0056972, 14.4237572], [50.0060288, 14.4249310], [50.0064113, 14.4262995], [50.0065861, 14.4274400], [50.0064884, 14.4286157], [50.0061092, 14.4296608], [50.0055250, 14.4312142], [50.0051758, 14.4324632], [50.0050316, 14.4336191], [50.0050294, 14.4352881], [50.0051021, 14.4364130], [50.0052945, 14.4375531], [50.0055902, 14.4386353], [50.0060005, 14.4401494], [50.0063908, 14.4417509], [50.0066058, 14.4429211], [50.0067021, 14.4440705], [50.0066839, 14.4452352], [50.0065380, 14.4464987], [50.0063586, 14.4475882], [50.0062110, 14.4486927], [50.0060012, 14.4526986], [50.0059339, 14.4541370], [50.0058839, 14.4552610], [50.0065803, 14.4558322], [50.0074223, 14.4559219], [50.0081889, 14.4558897]],
"tram_18": [[50.1112319, 14.3940617], [50.1072108, 14.3945678], [50.1036050, 14.3950199], [50.0994606, 14.3955248], [50.0973071, 14.4048108], [50.0949459, 14.4091714], [50.0903723, 14.4101303], [50.0882050, 14.4153515], [50.0846279, 14.4135450], [50.0814202, 14.4149616], [50.0811840, 14.4196173], [50.0764620, 14.4192986], [50.0740800, 14.4187736], [50.0710592, 14.4189574], [50.0686736, 14.4205392], [50.0651257, 14.4243658], [50.0650409, 14.4300473], [50.0646708, 14.4371117], [50.0641812, 14.4411213], [50.0628130, 14.4408303], [50.0611316, 14.4368646], [50.0561125, 14.4348888], [50.0541807, 14.4369539], [50.0565515, 14.4413673], [50.0568866, 14.4378007], [50.1112319, 14.3940617], [50.1104044, 14.3941739], [50.1094710, 14.3942905], [50.1086884, 14.3943903], [50.1078441, 14.3944905], [50.1070759, 14.3945861], [50.1058679, 14.3947385], [50.1046677, 14.3948893], [50.1036050, 14.3950199], [50.1026631, 14.3951381], [50.1015718, 14.3952708], [50.1006954, 14.3953732], [50.0999608, 14.3954685], [50.0990124, 14.3955842], [50.0982836, 14.3956761], [50.0971529, 14.3958154], [50.0963538, 14.3959134], [50.0955984, 14.3962334], [50.0950406, 14.3969484], [50.0952829, 14.3980818], [50.0958599, 14.3997676], [50.0962366, 14.4008601], [50.0967246, 14.4022839], [50.0970504, 14.4034298], [50.0973071, 14.4048108], [50.0975778, 14.4062803], [50.0976168, 14.4074085], [50.0968585, 14.4079793], [50.0954494, 14.4088690], [50.0947700, 14.4092839], [50.0937965, 14.4094030], [50.0933560, 14.4084179], [50.0932157, 14.4072259], [50.0929662, 14.4061636], [50.0927967, 14.4073247], [50.0928759, 14.4085138], [50.0923082, 14.4093087], [50.0915005, 14.4096452], [50.0903723, 14.4101303], [50.0897983, 14.4112691], [50.0892701, 14.4140832], [50.0887790, 14.4152192], [50.0878742, 14.4152639], [50.0871332, 14.4149548], [50.0862775, 14.4144601], [50.0853511, 14.4139182], [50.0846279, 14.4135450], [50.0837638, 14.4132927], [50.0829966, 14.4131772], [50.0818049, 14.4130046], [50.0814051, 14.4139671], [50.0814311, 14.4151642], [50.0816188, 14.4163921], [50.0819483, 14.4176409], [50.0822669, 14.4188160], [50.0816546, 14.4194162], [50.0807918, 14.4197513], [50.0796142, 14.4196127], [50.0786627, 14.4195180], [50.0779396, 14.4195011], [50.0771197, 14.4194372], [50.0761309, 14.4192278], [50.0746947, 14.4189019], [50.0739633, 14.4187492], [50.0729271, 14.4183036], [50.0722099, 14.4181390], [50.0710779, 14.4189427], [50.0697832, 14.4198790], [50.0690133, 14.4203365], [50.0681137, 14.4209006], [50.0673964, 14.4213405], [50.0667129, 14.4218951], [50.0659004, 14.4230033], [50.0653795, 14.4238597], [50.0649881, 14.4248229], [50.0650068, 14.4268141], [50.0650409, 14.4300473], [50.0650672, 14.4325407], [50.0654175, 14.4335438], [50.0651196, 14.4345814], [50.0648034, 14.4359486], [50.0646708, 14.4371117], [50.0652098, 14.4395042], [50.0646183, 14.4403059], [50.0641505, 14.4411887], [50.0635857, 14.4423722], [50.0628581, 14.4414254], [50.0627658, 14.4401985], [50.0626786, 14.4390196], [50.0623651, 14.4379705], [50.0616320, 14.4372970], [50.0609409, 14.4366943], [50.0602860, 14.4361402], [50.0587267, 14.4358753], [50.0579709, 14.4357719], [50.0572777, 14.4353577], [50.0567732, 14.4344960], [50.0560489, 14.4349521], [50.0548899, 14.4361948], [50.0541807, 14.4369539], [50.0545108, 14.4387246], [50.0551049, 14.4398337], [50.0555823, 14.4407111], [50.0562058, 14.4413478], [50.0569352, 14.4413795], [50.0571857, 14.4397321], [50.0571648, 14.4384497]],
"tram_2": [[50.0646226, 14.4406863], [50.0647870, 14.4363547], [50.0650591, 14.4291874], [50.0650125, 14.4252592], [50.0672387, 14.4214883], [50.0705306, 14.4195295], [50.0752797, 14.4190756], [50.0774712, 14.4195534], [50.0816660, 14.4194713], [50.0814354, 14.4140068], [50.0848092, 14.4136968], [50.0884689, 14.4155104], [50.0909290, 14.4099515], [50.0951955, 14.4090790], [50.0971732, 14.4038912], [50.0947054, 14.3939272], [50.0935758, 14.3891595], [50.0928570, 14.3836791], [50.0928868, 14.3790427], [50.0923576, 14.3694130], [50.0917617, 14.3598355], [50.0896699, 14.3506729], [50.0881281, 14.3445712], [50.0867236, 14.3398383], [50.0646226, 14.4406863], [50.0651634, 14.4399066], [50.0648991, 14.4384653], [50.0646827, 14.4372757], [50.0648109, 14.4361433], [50.0649926, 14.4350486], [50.0653987, 14.4339631], [50.0651701, 14.4328803], [50.0650851, 14.4313778], [50.0650709, 14.4301799], [50.0650330, 14.4269811], [50.0650125, 14.4252592], [50.0654284, 14.4238369], [50.0665555, 14.4221600], [50.0672387, 14.4214883], [50.0680479, 14.4209941], [50.0695072, 14.4200985], [50.0705306, 14.4195295], [50.0714664, 14.4187153], [50.0721228, 14.4182243], [50.0729200, 14.4183473], [50.0736268, 14.4186483], [50.0746901, 14.4189514], [50.0756267, 14.4191486], [50.0764202, 14.4193360], [50.0774712, 14.4195534], [50.0781948, 14.4195516], [50.0789591, 14.4195881], [50.0797850, 14.4197211], [50.0805049, 14.4198536], [50.0816660, 14.4194713], [50.0823191, 14.4189468], [50.0820020, 14.4177463], [50.0816734, 14.4164820], [50.0814706, 14.4153426], [50.0814354, 14.4140068], [50.0823944, 14.4131317], [50.0832155, 14.4132516], [50.0841136, 14.4134004], [50.0848092, 14.4136968], [50.0857799, 14.4142458], [50.0865891, 14.4147012], [50.0872856, 14.4151037], [50.0880560, 14.4153502], [50.0887855, 14.4153677], [50.0892042, 14.4144364], [50.0897907, 14.4114668], [50.0900275, 14.4103829], [50.0909290, 14.4099515], [50.0917319, 14.4096152], [50.0925017, 14.4092652], [50.0928042, 14.4069860], [50.0932617, 14.4079348], [50.0934482, 14.4090709], [50.0941413, 14.4095426], [50.0948804, 14.4092669], [50.0965329, 14.4082430], [50.0973137, 14.4077301], [50.0976809, 14.4067359], [50.0973713, 14.4049601], [50.0971542, 14.4037899], [50.0968677, 14.4025937], [50.0962707, 14.4008444], [50.0958922, 14.3997411], [50.0954605, 14.3984823], [50.0950865, 14.3971601], [50.0949192, 14.3960408], [50.0948005, 14.3949313], [50.0945976, 14.3927775], [50.0944449, 14.3915835], [50.0941920, 14.3904627], [50.0935758, 14.3891595], [50.0929299, 14.3877269], [50.0928466, 14.3854927], [50.0928556, 14.3842387], [50.0928614, 14.3824557], [50.0928832, 14.3795846], [50.0928931, 14.3779637], [50.0929012, 14.3768366], [50.0929318, 14.3755164], [50.0929780, 14.3737047], [50.0929214, 14.3725613], [50.0927967, 14.3713002], [50.0925736, 14.3701438], [50.0922385, 14.3689536], [50.0920743, 14.3675582], [50.0920780, 14.3661268], [50.0919836, 14.3641376], [50.0918116, 14.3607956], [50.0917491, 14.3596161], [50.0915732, 14.3582197], [50.0906113, 14.3544005], [50.0900268, 14.3520898], [50.0896699, 14.3506729], [50.0892782, 14.3491185], [50.0887874, 14.3471793], [50.0883909, 14.3456114], [50.0880864, 14.3444031], [50.0872137, 14.3409468], [50.0867236, 14.3398383]],
"tram_22": [[50.0796520, 14.3467743], [50.0814230, 14.3532290], [50.0831895, 14.3588921], [50.0836486, 14.3632986], [50.0839324, 14.3705532], [50.0845763, 14.3758042], [50.0856029, 14.3824337], [50.0876439, 14.3882554], [50.0929897, 14.3916286], [50.0948607, 14.3958148], [50.0973071, 14.4048108], [50.0949459, 14.4091714], [50.0909402, 14.4098693], [50.0880678, 14.4043713], [50.0856621, 14.4042174], [50.0816738, 14.4044617], [50.0813810, 14.4139680], [50.0811840, 14.4196173], [50.0764620, 14.4192986], [50.0756220, 14.4232917], [50.0754268, 14.4316413], [50.0749421, 14.4369078], [50.0731486, 14.4414081], [50.0718939, 14.4477870], [50.0716868, 14.4509968], [50.0690199, 14.4556366], [50.0680802, 14.4590429], [50.0676949, 14.4621720], [50.0694648, 14.4705209], [50.0707375, 14.4768020], [50.0716078, 14.4865461], [50.0700209, 14.4893126], [50.0683029, 14.4927456], [50.0666289, 14.4969030], [50.0652829, 14.5027330], [50.0618892, 14.5040470], [50.0605954, 14.5059522], [50.0568370, 14.5132355], [50.0538783, 14.5189789], [50.0529278, 14.5237326], [50.0527018, 14.5294105], [50.0532477, 14.5375881], [50.0798988, 14.3476257], [50.0803303, 14.3492447], [50.0808052, 14.3510952], [50.0811775, 14.3524543], [50.0816345, 14.3538324], [50.0821376, 14.3551395], [50.0825295, 14.3561456], [50.0829086, 14.3571688], [50.0831895, 14.3588921], [50.0833289, 14.3601116], [50.0835931, 14.3627567], [50.0837637, 14.3642187], [50.0839763, 14.3656488], [50.0840809, 14.3670047], [50.0840197, 14.3686453], [50.0839324, 14.3705532], [50.0839523, 14.3719741], [50.0842037, 14.3736342], [50.0844561, 14.3750896], [50.0846818, 14.3764554], [50.0849371, 14.3781226], [50.0851444, 14.3794623], [50.0853552, 14.3808285], [50.0856029, 14.3824337], [50.0858476, 14.3835051], [50.0861396, 14.3846653], [50.0865530, 14.3864378], [50.0868282, 14.3875331], [50.0873977, 14.3882570], [50.0882158, 14.3881406], [50.0889385, 14.3880150], [50.0902855, 14.3884839], [50.0909910, 14.3888145], [50.0921148, 14.3890234], [50.0927587, 14.3895614], [50.0929197, 14.3910144], [50.0931081, 14.3921210], [50.0941536, 14.3920563], [50.0946755, 14.3939562], [50.0948607, 14.3958148], [50.0950597, 14.3971710], [50.0953414, 14.3982662], [50.0958599, 14.3997676], [50.0962366, 14.4008601], [50.0967246, 14.4022839], [50.0970504, 14.4034298], [50.0973071, 14.4048108], [50.0975778, 14.4062803], [50.0976168, 14.4074085], [50.0968585, 14.4079793], [50.0954494, 14.4088690], [50.0947700, 14.4092839], [50.0937965, 14.4094030], [50.0933560, 14.4084179], [50.0932157, 14.4072259], [50.0929662, 14.4061636], [50.0927967, 14.4073247], [50.0928759, 14.4085138], [50.0923082, 14.4093087], [50.0915005, 14.4096452], [50.0903723, 14.4101303], [50.0900820, 14.4082375], [50.0894873, 14.4072755], [50.0888296, 14.4066851], [50.0885904, 14.4056105], [50.0884326, 14.4045026], [50.0877535, 14.4040498], [50.0870638, 14.4037054], [50.0863689, 14.4040118], [50.0856283, 14.4042220], [50.0847947, 14.4042755], [50.0839413, 14.4043666], [50.0831660, 14.4044322], [50.0824154, 14.4044332], [50.0816738, 14.4044617], [50.0811860, 14.4061271], [50.0812432, 14.4077903], [50.0812917, 14.4096241], [50.0813503, 14.4117358], [50.0813775, 14.4128628], [50.0814202, 14.4149616], [50.0815801, 14.4162061], [50.0819483, 14.4176409], [50.0822669, 14.4188160], [50.0816546, 14.4194162], [50.0807918, 14.4197513], [50.0796142, 14.4196127], [50.0786627, 14.4195180], [50.0779396, 14.4195011], [50.0771197, 14.4194372], [50.0761309, 14.4192278], [50.0757587, 14.4203736], [50.0756663, 14.4215204], [50.0756220, 14.4232917], [50.0755551, 14.4266578], [50.0755279, 14.4281461], [50.0755052, 14.4300410], [50.0754473, 14.4312659], [50.0754018, 14.4324719], [50.0753954, 14.4350072], [50.0749496, 14.4359751], [50.0749295, 14.4371118], [50.0743832, 14.4384938], [50.0736571, 14.4401969], [50.0731486, 14.4414081], [50.0726989, 14.4426036], [50.0723142, 14.4436722], [50.0721621, 14.4447932], [50.0719958, 14.4461860], [50.0719066, 14.4477571], [50.0719322, 14.4492253], [50.0719829, 14.4504500], [50.0712647, 14.4513582], [50.0705536, 14.4516715], [50.0697989, 14.4515276], [50.0693208, 14.4528149], [50.0691298, 14.4539021], [50.0690199, 14.4556366], [50.0685440, 14.4573393], [50.0681999, 14.4583647], [50.0680863, 14.4595103], [50.0675131, 14.4602108], [50.0675236, 14.4613738], [50.0677580, 14.4624633], [50.0683349, 14.4651992], [50.0687623, 14.4671374], [50.0691006, 14.4686860], [50.0694648, 14.4705209], [50.0697551, 14.4719381], [50.0700915, 14.4735849], [50.0703557, 14.4748743], [50.0705788, 14.4759608], [50.0707577, 14.4770953], [50.0708687, 14.4789083], [50.0709884, 14.4808523], [50.0710919, 14.4825156], [50.0712418, 14.4848996], [50.0716078, 14.4865461], [50.0711616, 14.4877228], [50.0705501, 14.4885393], [50.0700209, 14.4893126], [50.0694818, 14.4902480], [50.0689857, 14.4913713], [50.0685559, 14.4923123], [50.0678443, 14.4935093], [50.0673904, 14.4943941], [50.0668967, 14.4960208], [50.0664442, 14.4975176], [50.0660890, 14.4986890], [50.0657396, 14.5003371], [50.0655153, 14.5015184], [50.0652829, 14.5027330], [50.0648734, 14.5036951], [50.0642598, 14.5044615], [50.0625415, 14.5042594], [50.0617658, 14.5040066], [50.0610240, 14.5038670], [50.0607312, 14.5051522], [50.0604935, 14.5063231], [50.0601359, 14.5073704], [50.0597070, 14.5084232], [50.0591112, 14.5094467], [50.0583485, 14.5107174], [50.0577057, 14.5117889], [50.0571468, 14.5127163], [50.0561622, 14.5143557], [50.0556171, 14.5153366], [50.0544775, 14.5177221], [50.0538783, 14.5189789], [50.0534146, 14.5199675], [50.0530558, 14.5212749], [50.0529708, 14.5225208], [50.0529278, 14.5237326], [50.0528438, 14.5260736], [50.0527290, 14.5293732], [50.0526793, 14.5306648], [50.0526178, 14.5322166], [50.0525847, 14.5334133], [50.0527333, 14.5345538], [50.0529669, 14.5356872], [50.0531471, 14.5370793]],
"tram_4": [[50.0704881, 14.4776079], [50.0695522, 14.4707671], [50.0675589, 14.4614077], [50.0681386, 14.4590732], [50.0691265, 14.4544308], [50.0716911, 14.4510932], [50.0719739, 14.4470634], [50.0734844, 14.4406820], [50.0749841, 14.4360122], [50.0755220, 14.4306117], [50.0756645, 14.4224909], [50.0758555, 14.4197904], [50.0740800, 14.4187736], [50.0732453, 14.4145190], [50.0723916, 14.4072164], [50.0719202, 14.4027826], [50.0629800, 14.4047601], [50.0616449, 14.4010817], [50.0611240, 14.3975488], [50.0593765, 14.3928632], [50.0590150, 14.3890461], [50.0704881, 14.4776079], [50.0707307, 14.4765236], [50.0703903, 14.4748567], [50.0701269, 14.4735675], [50.0698185, 14.4720649], [50.0695522, 14.4707671], [50.0692701, 14.4693760], [50.0688330, 14.4673467], [50.0683706, 14.4651818], [50.0677835, 14.4624498], [50.0675486, 14.4613602], [50.0675649, 14.4602340], [50.0681248, 14.4594131], [50.0682586, 14.4582936], [50.0688865, 14.4565178], [50.0690927, 14.4550693], [50.0691599, 14.4538964], [50.0694475, 14.4524108], [50.0700136, 14.4516102], [50.0707460, 14.4517152], [50.0716911, 14.4510932], [50.0719703, 14.4492215], [50.0719337, 14.4479285], [50.0719935, 14.4465861], [50.0721971, 14.4448017], [50.0723436, 14.4436806], [50.0727204, 14.4426265], [50.0731318, 14.4415330], [50.0735837, 14.4404427], [50.0740851, 14.4392783], [50.0748468, 14.4375080], [50.0749841, 14.4360122], [50.0754331, 14.4351263], [50.0754303, 14.4333645], [50.0754354, 14.4322354], [50.0754931, 14.4310641], [50.0755369, 14.4292962], [50.0755542, 14.4281485], [50.0755829, 14.4267167], [50.0756281, 14.4243694], [50.0756493, 14.4231967], [50.0756747, 14.4220361], [50.0757346, 14.4209017], [50.0758555, 14.4197904], [50.0746947, 14.4189019], [50.0739633, 14.4187492], [50.0737066, 14.4175796], [50.0734239, 14.4161411], [50.0732453, 14.4145190], [50.0729830, 14.4133475], [50.0726777, 14.4102570], [50.0725110, 14.4085091], [50.0723916, 14.4072164], [50.0721280, 14.4043872], [50.0719202, 14.4027826], [50.0718528, 14.4016036], [50.0707607, 14.4011913], [50.0699567, 14.4013875], [50.0690415, 14.4016304], [50.0681391, 14.4020589], [50.0673776, 14.4024575], [50.0666101, 14.4028594], [50.0659164, 14.4032223], [50.0649151, 14.4037708], [50.0641269, 14.4044037], [50.0634070, 14.4045426], [50.0626783, 14.4046251], [50.0621142, 14.4031423], [50.0617774, 14.4016867], [50.0614687, 14.4002228], [50.0612131, 14.3982398], [50.0610272, 14.3969828], [50.0605869, 14.3954624], [50.0601691, 14.3944837], [50.0595378, 14.3932465], [50.0591948, 14.3922272], [50.0591868, 14.3901312]],
"tram_7": [[50.0901465, 14.4354735], [50.0876492, 14.4325301], [50.0857873, 14.4357995], [50.0849485, 14.4453188], [50.0840338, 14.4531401], [50.0824448, 14.4575097], [50.0779055, 14.4624225], [50.0781389, 14.4673596], [50.0783478, 14.4715830], [50.0782304, 14.4751833], [50.0776787, 14.4805144], [50.0771791, 14.4855924], [50.0756555, 14.4896171], [50.0725810, 14.4905445], [50.0714201, 14.4856974], [50.0708436, 14.4779841], [50.0695522, 14.4707671], [50.0675589, 14.4614077], [50.0661846, 14.4541266], [50.0660998, 14.4475539], [50.0654794, 14.4401312], [50.0647870, 14.4363547], [50.0650591, 14.4291874], [50.0650125, 14.4252592], [50.0672387, 14.4214883], [50.0680614, 14.4149480], [50.0724863, 14.4140746], [50.0723916, 14.4072164], [50.0719202, 14.4027826], [50.0722316, 14.3925032], [50.0716206, 14.3874199], [50.0705694, 14.3791845], [50.0700815, 14.3709039], [50.0698698, 14.3636359], [50.0905088, 14.4365924], [50.0901465, 14.4354735], [50.0899022, 14.4339958], [50.0897580, 14.4328306], [50.0887366, 14.4324587], [50.0876492, 14.4325301], [50.0869356, 14.4321922], [50.0862056, 14.4319097], [50.0859535, 14.4332184], [50.0861679, 14.4343481], [50.0857873, 14.4357995], [50.0856861, 14.4369893], [50.0861527, 14.4379728], [50.0858249, 14.4391339], [50.0853741, 14.4400582], [50.0852144, 14.4414541], [50.0851503, 14.4431343], [50.0850594, 14.4443718], [50.0849064, 14.4457494], [50.0847259, 14.4475260], [50.0845784, 14.4488314], [50.0844177, 14.4501149], [50.0842596, 14.4513748], [50.0840338, 14.4531401], [50.0832845, 14.4543111], [50.0827003, 14.4550003], [50.0824714, 14.4562569], [50.0824448, 14.4575097], [50.0825712, 14.4586183], [50.0820590, 14.4594802], [50.0813025, 14.4597301], [50.0796731, 14.4602685], [50.0788710, 14.4605433], [50.0780589, 14.4608014], [50.0779055, 14.4624225], [50.0780022, 14.4647405], [50.0780704, 14.4660675], [50.0781389, 14.4673596], [50.0782325, 14.4692869], [50.0782976, 14.4705740], [50.0783878, 14.4723404], [50.0783204, 14.4741902], [50.0781906, 14.4755514], [50.0780017, 14.4772065], [50.0778671, 14.4785848], [50.0776787, 14.4805144], [50.0774679, 14.4826444], [50.0772751, 14.4846103], [50.0771447, 14.4859282], [50.0769828, 14.4875608], [50.0768518, 14.4888857], [50.0761918, 14.4893419], [50.0754696, 14.4897340], [50.0747903, 14.4901633], [50.0740078, 14.4906602], [50.0732973, 14.4910978], [50.0725810, 14.4905445], [50.0721557, 14.4896190], [50.0719714, 14.4883405], [50.0717454, 14.4870663], [50.0714201, 14.4856974], [50.0712329, 14.4843127], [50.0711322, 14.4827127], [50.0710281, 14.4810468], [50.0709532, 14.4797975], [50.0708436, 14.4779841], [50.0707696, 14.4768250], [50.0705223, 14.4755031], [50.0701269, 14.4735675], [50.0698185, 14.4720649], [50.0695522, 14.4707671], [50.0692701, 14.4693760], [50.0688330, 14.4673467], [50.0683706, 14.4651818], [50.0677835, 14.4624498], [50.0675486, 14.4613602], [50.0672979, 14.4601597], [50.0668656, 14.4581842], [50.0666071, 14.4568871], [50.0663708, 14.4555118], [50.0662138, 14.4544131], [50.0660881, 14.4529923], [50.0660065, 14.4516572], [50.0659846, 14.4503119], [50.0660124, 14.4491479], [50.0660998, 14.4475539], [50.0662148, 14.4462919], [50.0663508, 14.4451888], [50.0664756, 14.4440818], [50.0663729, 14.4428149], [50.0659837, 14.4416111], [50.0654794, 14.4401312], [50.0648991, 14.4384653], [50.0646827, 14.4372757], [50.0648109, 14.4361433], [50.0649926, 14.4350486], [50.0653987, 14.4339631], [50.0651701, 14.4328803], [50.0650851, 14.4313778], [50.0650709, 14.4301799], [50.0650330, 14.4269811], [50.0650125, 14.4252592], [50.0654284, 14.4238369], [50.0665555, 14.4221600], [50.0672387, 14.4214883], [50.0678246, 14.4208055], [50.0680237, 14.4196384], [50.0679499, 14.4184563], [50.0677645, 14.4173624], [50.0675680, 14.4161447], [50.0680614, 14.4149480], [50.0691723, 14.4147162], [50.0706075, 14.4144401], [50.0716076, 14.4142467], [50.0724863, 14.4140746], [50.0726777, 14.4102570], [50.0725110, 14.4085091], [50.0723916, 14.4072164], [50.0721280, 14.4043872], [50.0719202, 14.4027826], [50.0718528, 14.4016036], [50.0718219, 14.4001909], [50.0718453, 14.3989831], [50.0720944, 14.3978734], [50.0723530, 14.3960836], [50.0723602, 14.3948454], [50.0722903, 14.3933762], [50.0721275, 14.3914189], [50.0719155, 14.3897443], [50.0717406, 14.3884337], [50.0714164, 14.3858188], [50.0712335, 14.3843806], [50.0708246, 14.3811093], [50.0705694, 14.3791845], [50.0704345, 14.3780370], [50.0705155, 14.3765872], [50.0704615, 14.3753538], [50.0702006, 14.3742574], [50.0700441, 14.3727540], [50.0700799, 14.3715623], [50.0700568, 14.3696066], [50.0699626, 14.3683297], [50.0698535, 14.3670097], [50.0697302, 14.3654952], [50.0698153, 14.3641811]]
};
const map = L.map('map').setView([50.0718, 14.4999], 11);
L.tileLayer('https://{s}.basemaps.cartocdn.com/dark_all/{z}/{x}/{y}{r}.png', {
attribution: '&copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> &copy; <a href="https://carto.com/attributions">CARTO</a>',
subdomains: 'abcd',
maxZoom: 19
}).addTo(map);
function createIcon(emoji, color, isHotel=false) {
const size = isHotel ? 44 : 38;
const html = `
<div style="
background: ${color};
width: ${size}px;
height: ${size}px;
border-radius: 50% 50% 50% 0;
transform: rotate(-45deg);
display: flex;
align-items: center;
justify-content: center;
border: 3px solid white;
box-shadow: 0 3px 8px rgba(0,0,0,0.5);
">
<span style="transform: rotate(45deg); font-size: ${isHotel ? 22 : 19}px;">${emoji}</span>
</div>
`;
return L.divIcon({
html: html,
className: 'custom-marker',
iconSize: [size, size],
iconAnchor: [size/2, size],
popupAnchor: [0, -size]
});
}
const bounds = [];
locations.forEach(loc => {
const isHotel = loc.category === 'hotel';
const marker = L.marker([loc.lat, loc.lon], {
icon: createIcon(loc.emoji, loc.color, isHotel)
}).addTo(map);
const popupContent = `
<div class="popup-content">
<h3><span class="emoji-big">${loc.emoji}</span>${loc.name}</h3>
<div class="meta">📍 ${loc.address}</div>
<div class="desc">${loc.desc}</div>
${loc.price ? `<div class="price">${loc.price}</div>` : ''}
${loc.url ? `<a href="${loc.url}" target="_blank" rel="noopener">🔗 Website öffnen</a>` : ''}
</div>
`;
marker.bindPopup(popupContent, { maxWidth: 320 });
bounds.push([loc.lat, loc.lon]);
});
const lineLayers = {};
function renderLine(lineKey, color, weight, opacity) {
const coords = LINES[lineKey];
if (!coords) return null;
const shadow = L.polyline(coords, {
color: "#000", weight: weight + 4, opacity: 0.25,
lineCap: "round", lineJoin: "round", interactive: false
}).addTo(map);
const line = L.polyline(coords, {
color: color, weight: weight, opacity: opacity,
lineCap: "round", lineJoin: "round"
}).addTo(map);
const isMetro = lineKey.startsWith('metro_');
const lineNum = lineKey.split('_')[1];
const popupHtml = isMetro
? `<div class="popup-content"><h3>🚇 Metro Linie ${lineNum}</h3><div class="desc">Schnellster Weg durch Prag. Takt: 24 Min zur Hauptverkehrszeit. Ticket: 40 CZK (30 Min) oder 120 CZK (Tageskarte).</div></div>`
: `<div class="popup-content"><h3>🚋 Tram Linie ${lineNum}</h3><div class="desc">Hauptverkehrsmittel in Prag. Takt: 510 Min tagsüber. Ticket: 40 CZK (30 Min).</div></div>`;
line.bindPopup(popupHtml, {className: 'tram-popup'});
lineLayers[lineKey] = { main: line, shadow: shadow };
return line;
}
function removeLine(lineKey) {
const layers = lineLayers[lineKey];
if (layers) {
map.removeLayer(layers.main);
map.removeLayer(layers.shadow);
delete lineLayers[lineKey];
}
}
function toggleLine(lineKey, visible) {
if (visible) {
const cfg = LINES_CONFIG[lineKey];
if (cfg) renderLine(lineKey, cfg.color, cfg.weight, cfg.opacity);
} else {
removeLine(lineKey);
}
}
Object.entries(LINES_CONFIG).forEach(([key, cfg]) => {
renderLine(key, cfg.color, cfg.weight, cfg.opacity);
});
IMPORTANT_STOPS.forEach(stop => {
const stopMarker = L.circleMarker([stop.lat, stop.lon], {
radius: 4, fillColor: "#ffffff", color: "#1a1a1a",
weight: 2, opacity: 1, fillOpacity: 1
}).addTo(map);
const lineBadges = stop.lines.map(l => {
const isMetro = ['A','B','C'].includes(l);
const colorMap = { A: '#00B140', B: '#FFD700', C: '#E2231A' };
const bg = isMetro ? colorMap[l] : '#F4A261';
const fg = isMetro && l === 'B' ? '#1a1a1a' : 'white';
return `<span style="display:inline-block;background:${bg};color:${fg};padding:1px 5px;border-radius:3px;font-size:10px;font-weight:700;margin-right:3px;">${l}</span>`;
}).join('');
const popupHtml = `<div class="popup-content"><h3>🚏 ${stop.name}</h3><div class="meta">Linien: ${lineBadges}</div><div class="desc">📍 Nähe: ${stop.near}</div></div>`;
stopMarker.bindPopup(popupHtml, {className: 'tram-popup'});
const labelMarker = L.marker([stop.lat, stop.lon], {
icon: L.divIcon({
html: `<div class="tram-stop-label">${stop.name}</div>`,
className: 'tram-stop-label-wrapper',
iconSize: null,
iconAnchor: [0, 0]
}),
interactive: false
}).addTo(map);
});
const toggleControl = L.control({ position: 'topright' });
toggleControl.onAdd = function() {
const div = L.DomUtil.create('div', 'lines-toggle');
let html = '<h4>🚇 ÖPNV an/aus</h4>';
html += '<div class="group-header">Metro</div>';
['metro_A','metro_B','metro_C'].forEach(key => {
const cfg = LINES_CONFIG[key];
const num = key.split('_')[1];
html += `<label>
<input type="checkbox" data-line="${key}" checked>
<span class="swatch" style="background:${cfg.color}"></span>
<strong>${num}</strong>
</label>`;
});
html += '<div class="group-header">Tram</div>';
Object.keys(LINES_CONFIG).filter(k => k.startsWith('tram_')).sort((a,b) => parseInt(a.split('_')[1])-parseInt(b.split('_')[1])).forEach(key => {
const cfg = LINES_CONFIG[key];
const num = key.split('_')[1];
html += `<label>
<input type="checkbox" data-line="${key}" checked>
<span class="swatch" style="background:${cfg.color}"></span>
${num}
</label>`;
});
div.innerHTML = html;
div.addEventListener('change', (e) => {
const lineKey = e.target.dataset.line;
if (!lineKey) return;
toggleLine(lineKey, e.target.checked);
});
L.DomEvent.disableClickPropagation(div);
L.DomEvent.disableScrollPropagation(div);
return div;
};
toggleControl.addTo(map);
map.fitBounds(bounds, { padding: [80, 80] });
const legend = L.control({ position: 'bottomright' });
legend.onAdd = function() {
const div = L.DomUtil.create('div', 'legend');
div.innerHTML = `
<h4>🥳 JGA Prag Tourenplan</h4>
<div class="item"><span class="dot" style="background:#4fc3f7"></span>🏨 Hotel (Basis)</div>
<div class="item"><span class="dot" style="background:#e91e63"></span>🔐 Escape Room</div>
<div class="item"><span class="dot" style="background:#ff9800"></span>🏎️ KartPlanet</div>
<div class="item"><span class="dot" style="background:#66bb6a"></span>⛳ Minigolf</div>
<div class="item"><span class="dot" style="background:#ab47bc"></span>🎳 Bowling</div>
<div class="item"><span class="dot" style="background:#7e57c2"></span>👻 Geister-Tour</div>
<div class="item"><span class="dot" style="background:#5d4037"></span>🎯 Schießstand</div>
<div class="item"><span class="dot" style="background:#ffb300"></span>⛵ Beer Boat</div>
<div class="item"><span class="dot" style="background:#ef5350"></span>🎨 Paintball</div>
<div class="item"><span class="dot" style="background:#26c6da"></span>🔫 Lasertag</div>
<div class="item"><span class="dot" style="background:#ffa726"></span>🔍 Enigma</div>
<div style="margin-top:8px;padding-top:6px;border-top:1px solid #555;font-size:11px;color:#aaa;">
🚇 Metro: <span style="color:#00B140;font-weight:700">A</span> ·
<span style="color:#FFD700;font-weight:700">B</span> ·
<span style="color:#E2231A;font-weight:700">C</span><br>
🚋 Tram: 2/4/7/13/17/18/22<br>
<span style="font-size:10px;">Toggle oben rechts</span>
</div>
`;
return div;
};
legend.addTo(map);
// ============================================================
// 🎫 ÖPNV-TICKETS MODAL
// ============================================================
const ticketControl = L.control({ position: 'topleft' });
ticketControl.onAdd = function() {
const div = L.DomUtil.create('div', '');
div.innerHTML = '<button class="ticket-btn" id="ticketBtn">🎫 ÖPNV-Tickets</button>';
L.DomEvent.disableClickPropagation(div);
L.DomEvent.disableScrollPropagation(div);
return div;
};
ticketControl.addTo(map);
document.getElementById('ticketBtn').addEventListener('click', () => {
document.getElementById('ticketModal').classList.add('active');
});
document.getElementById('modalClose').addEventListener('click', () => {
document.getElementById('ticketModal').classList.remove('active');
});
document.getElementById('ticketModal').addEventListener('click', (e) => {
if (e.target.id === 'ticketModal') {
document.getElementById('ticketModal').classList.remove('active');
}
});
document.addEventListener('keydown', (e) => {
if (e.key === 'Escape') {
document.getElementById('ticketModal').classList.remove('active');
}
});
</script>
<!-- TICKET-MODAL HTML -->
<div class="modal-overlay" id="ticketModal">
<div class="modal">
<button class="modal-close" id="modalClose" aria-label="Schließen"></button>
<h2>🎫 ÖPNV-Tickets für Prag</h2>
<div class="modal-sub">Tram + Metro + Bus + Fähre · 8 Personen · 25.26.07.2026 (2 Tage) · Bezahlung in CZK oder €</div>
<div class="gruppe-tipp">
<strong>💡 JGA-Gruppen-Tipp:</strong> Eine Person kauft für alle online (oder jeder selbst), Tickets kommen direkt aufs Handy. Vor Reise buchbar, keine Wartezeit am Automaten, kontaktlos. Bezahlung per Kreditkarte/Apple Pay.
</div>
<div class="ticket-option recommended">
<h3>🏆 Prag Visitor Pass <span class="badge">Empfehlung für JGA</span></h3>
<div class="price-row">
<span><strong>2 Tage</strong> · ca. 28 € p.P.</span>
<span><strong>3 Tage</strong> · ca. 38 € p.P.</span>
<span><strong>4 Tage</strong> · ca. 48 € p.P.</span>
<span><strong>5 Tage</strong> · ca. 60 € p.P.</span>
</div>
<ul>
<li><strong>Alle Tram/Metro/Bus/Fähre</strong> inklusive</li>
<li>✅ ~70 Top-Sehenswürdigkeiten gratis (z.B. Burg, Zoo, Geister-Touren)</li>
<li><strong>8 × 38 € (3 Tage) = 304 €</strong> · günstiger als Einzeltickets ab 4 Fahrten/Tag</li>
<li>✅ Digital aufs Handy, kein Automat nötig</li>
</ul>
<a href="https://www.praguevisitorpass.eu/" target="_blank" rel="noopener" class="btn-link green">🌐 Auf visitor.prague.eu kaufen →</a>
</div>
<div class="ticket-option prepaid">
<h3>📱 PID Lítačka App (DPP offiziell)</h3>
<div class="price-row">
<span>Einzelticket 30 Min: <strong>40 CZK</strong> (~1,60 €)</span>
<span>Einzelticket 90 Min: <strong>50 CZK</strong> (~2 €)</span>
<span>24h-Ticket: <strong>120 CZK</strong> (~5 €)</span>
<span>72h-Ticket: <strong>330 CZK</strong> (~13,50 €)</span>
</div>
<ul>
<li>✅ Jeder kauft selbst in der App · Kreditkarte/Apple Pay</li>
<li>✅ Aktiviert erst beim Einsteigen (kein Verlust)</li>
<li>✅ Ideal wenn ihr <strong>nur wenige Fahrten</strong> plant</li>
<li><strong>Für 8 Pers × 3 Tage = 8 × 330 CZK = 108 €</strong> (günstiger als Visitor Pass!)</li>
</ul>
<a href="https://www.dpp.cz/en/fares/app-pid-litacka" target="_blank" rel="noopener" class="btn-link">📲 App-Infos auf dpp.cz →</a>
</div>
<div class="ticket-option basic">
<h3>📲 SMS-Ticket (schnellste Option)</h3>
<div class="price-row">
<span>Einzelticket 30 Min: <strong>40 CZK</strong> (~1,60 €)</span>
<span>Einzelticket 90 Min: <strong>50 CZK</strong> (~2 €)</span>
<span><strong>Für 8 Pers × 1 Fahrt: 320 CZK</strong> (~13 €)</span>
</div>
<ul>
<li>✅ SMS an <strong>902 06</strong> mit Text <strong>DPT40</strong> (30 Min) oder <strong>DPT50</strong> (90 Min)</li>
<li>✅ Ticket kommt sofort als SMS zurück · bei Einsteigen Kontrolleur zeigen</li>
<li>⚠️ Benötigt tschechische SIM oder Roaming · <strong>nur für 1 Fahrt</strong> sinnvoll</li>
</ul>
</div>
<div class="ticket-option basic">
<h3>🏧 Ticket-Automat (jede Metrostation)</h3>
<div class="price-row">
<span>24h-Ticket: <strong>120 CZK</strong> (~5 €)</span>
<span>72h-Ticket: <strong>330 CZK</strong> (~13,50 €)</span>
</div>
<ul>
<li>✅ In jeder Metrostation · Touchscreen, DE/EN/CZ</li>
<li>✅ Bezahlung: Münzen (CZK) oder Kreditkarte</li>
<li>⚠️ Kann bei großem Andrang Wartezeit geben</li>
<li>⚠️ <strong>Papier-Ticket kann verloren gehen</strong> — Personalisierung nicht vergessen!</li>
</ul>
</div>
<div class="gruppe-tipp">
<strong>📊 Unsere Empfehlung für eure 2 Tage:</strong><br>
<strong>Wenn ihr viele Aktivitäten plant</strong><strong>Prag Visitor Pass 3 Tage (38 € p.P.)</strong>, weil viele Sehenswürdigkeiten inklusive sind<br>
<strong>Wenn ihr nur Hotel↔Aktivität pendelt</strong><strong>72h-Ticket in der PID-App (13,50 € p.P.)</strong>, billigste Lösung<br>
<strong>Spartipp:</strong> Immer <strong>vor der Reise</strong> online kaufen, vor Ort keine Wartezeit am Automaten!
</div>
<div style="text-align:center;color:#777;font-size:11px;margin-top:12px;">
Preise Stand 2024/2025 · vor Reise nochmal checken (kann sich ändern) · Quelle: dpp.cz, visitor.prague.eu
</div>
</div>
</div>
</body>
</html>